remove irrelevant warnings
[sinatra.git] / test / sinatra / renderer_test.rb
blobf4ffca7ffeb536d07e007d328444aa4ddabd0927
1 require File.dirname(__FILE__) + '/../helper'
3 class Sinatra::EventContext # :nodoc:
5   def render_foo(template)
6     require 'erb'
7     ERB.new(template).result(binding)
8   end
9   
10 end
12 describe "Renderer" do
14   before(:each) do
15     @context = Sinatra::EventContext.new(stub())
16   end
18   it "should render render a tempalate" do
19     @context.render('foo', :foo).should.equal 'foo'
20   end
21   
22   it "should render with a layout if given" do
23     result = @context.render('content', :foo) do
24       'X <%= yield %> X'
25     end
26     
27     result.should.equal 'X content X'
28   end
29   
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'
33     
34     Sinatra::Renderer::Layouts[:foo] = 'Foo <%= yield %> Layout'
35     @context.render('bar', :foo, :layout => :foo).should.equal 'Foo bar Layout'
36   end
37   
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'
41     
42     File.expects(:read).with('views2/bar.foo').returns('foo content')
43     @context.render(:bar, :foo, :views_directory => 'views2').should.equal 'foo content'
44   end
45     
46 end