Sha256: 8dd006d8d5bcddd9adfb01696406a886c77f0d5ab925c932eed8f1e0ae1f8e8f
Contents?: true
Size: 1.97 KB
Versions: 2
Compression:
Stored size: 1.97 KB
Contents
require 'test/spec' require 'sinatra/base' require 'sinatra/test' describe 'Templating' do include Sinatra::Test def render_app(&block) mock_app { def render_test(template, data, options, &block) inner = block ? block.call : '' data + inner end set :views, File.dirname(__FILE__) + '/views' get '/', &block template(:layout3) { "Layout 3!\n" } } get '/' end def with_default_layout layout = File.dirname(__FILE__) + '/views/layout.test' File.open(layout, 'wb') { |io| io.write "Layout!\n" } yield ensure File.unlink(layout) rescue nil end it 'renders String templates directly' do render_app { render :test, 'Hello World' } should.be.ok body.should.equal 'Hello World' end it 'renders Proc templates using the call result' do render_app { render :test, Proc.new {'Hello World'} } should.be.ok body.should.equal 'Hello World' end it 'looks up Symbol templates in views directory' do render_app { render :test, :hello } should.be.ok body.should.equal "Hello World!\n" end it 'uses the default layout template if not explicitly overridden' do with_default_layout do render_app { render :test, :hello } should.be.ok body.should.equal "Layout!\nHello World!\n" end end it 'uses the layout template specified' do render_app { render :test, :hello, :layout => :layout2 } should.be.ok body.should.equal "Layout 2!\nHello World!\n" end it 'uses layout templates defined with the #template method' do render_app { render :test, :hello, :layout => :layout3 } should.be.ok body.should.equal "Layout 3!\nHello World!\n" end it 'loads templates from source file with use_in_file_templates!' do mock_app { use_in_file_templates! } @app.templates[:foo].should.equal "this is foo\n\n" @app.templates[:layout].should.equal "X\n= yield\nX\n" end end __END__ @@ foo this is foo @@ layout X = yield X
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
bmizerany-sinatra-0.9.0 | test/templates_test.rb |
rtomayko-sinatra-0.9.0 | test/templates_test.rb |