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
16 @context = Sinatra::EventContext.new(stub())
19 it "should render render a tempalate" do
20 @context.render('foo', :foo).should.equal 'foo'
23 it "should render with a layout if given" do
24 result = @context.render('content', :foo) do
28 result.should.equal 'X content X'
31 it "should render default layout if it exists and layout if no layout name given" do
32 Layouts[:layout] = 'X <%= yield %> Y'
33 @context.render('foo', :foo).should.equal 'X foo Y'
35 Layouts[:foo] = 'Foo <%= yield %> Layout'
36 @context.render('bar', :foo, :layout => :foo).should.equal 'Foo bar Layout'
39 it "should read template from a file if exists" do
40 File.expects(:read).with('views/bar.foo').returns('foo content')
41 @context.render(:bar, :foo).should.equal 'foo content'
43 File.expects(:read).with('views2/bar.foo').returns('foo content')
44 @context.render(:bar, :foo, :views_directory => 'views2').should.equal 'foo content'