1 require File.dirname(__FILE__) + '/../helper'
3 class Sinatra::EventContext # :nodoc:
5 def render_foo(template)
7 ERB.new(template).result(binding)
12 describe "Renderer" do
15 @context = Sinatra::EventContext.new(stub())
18 it "should render render a tempalate" do
19 @context.render('foo', :foo).should.equal 'foo'
22 it "should render with a layout if given" do
23 result = @context.render('content', :foo) do
27 result.should.equal 'X content X'
30 it "should render default layout if it exists and layout if no layout name given" do
31 Sinatra::Renderer::Layouts[:layout] = 'X <%= yield %> Y'
32 @context.render('foo', :foo).should.equal 'X foo Y'
34 Sinatra::Renderer::Layouts[:foo] = 'Foo <%= yield %> Layout'
35 @context.render('bar', :foo, :layout => :foo).should.equal 'Foo bar Layout'
38 it "should read template from a file if exists" do
39 File.expects(:read).with('views/bar.foo').returns('foo content')
40 @context.render(:bar, :foo).should.equal 'foo content'
42 File.expects(:read).with('views2/bar.foo').returns('foo content')
43 @context.render(:bar, :foo, :views_directory => 'views2').should.equal 'foo content'