Sha256: 44d75e1a5bde1f4ef6551fd89a0e05d4a92c92eb4dbe1763e201b4ac5dc4d9b2

Contents?: true

Size: 1.83 KB

Versions: 93

Compression:

Stored size: 1.83 KB

Contents

require File.dirname(__FILE__) + '/helper'

context "Builder" do

  setup do
    Sinatra.application = nil
  end

  context "without layouts" do

    setup do
      Sinatra.application = nil
    end

    specify "should render" do

      get '/no_layout' do
        builder 'xml.instruct!'
      end

      get_it '/no_layout'
      should.be.ok
      body.should == %(<?xml version="1.0" encoding="UTF-8"?>\n)

    end

    specify "should render inline block" do

      get '/no_layout_and_inlined' do
        @name = "Frank & Mary"
        builder do |xml|
          xml.couple @name
        end
      end

      get_it '/no_layout_and_inlined'
      should.be.ok
      body.should == %(<couple>Frank &amp; Mary</couple>\n)

    end

  end



  context "Templates (in general)" do

    setup do
      Sinatra.application = nil
    end

    specify "are read from files if Symbols" do

      get '/from_file' do
        @name = 'Blue'
        builder :foo, :views_directory => File.dirname(__FILE__) + "/views"
      end

      get_it '/from_file'
      should.be.ok
      body.should.equal %(<exclaim>You rock Blue!</exclaim>\n)

    end

    specify "use layout.ext by default if available" do

      get '/' do
        builder :foo, :views_directory => File.dirname(__FILE__) + "/views/layout_test"
      end

      get_it '/'
      should.be.ok
      body.should.equal "<layout>\n<this>is foo!</this>\n</layout>\n"

    end

    specify "renders without layout" do

      get '/' do
        builder :no_layout, :views_directory => File.dirname(__FILE__) + "/views/no_layout"
      end

      get_it '/'
      should.be.ok
      body.should.equal "<foo>No Layout!</foo>\n"

    end

    specify "raises error if template not found" do

      get '/' do
        builder :not_found
      end

      lambda { get_it '/' }.should.raise(Errno::ENOENT)

    end

  end

end

Version data entries

93 entries across 93 versions & 14 rubygems

Version Path
3mix-castronaut-0.5.0.2 vendor/sinatra/test/builder_test.rb
Syd-sinatra-0.3.2 test/builder_test.rb
Syd-sinatra-0.9.0.2 compat/builder_test.rb
Syd-sinatra-0.9.0.4 compat/builder_test.rb
adamwiggins-sinatra-0.8.9 compat/builder_test.rb
bmizerany-sinatra-0.3.2 test/builder_test.rb
bmizerany-sinatra-0.8.10 compat/builder_test.rb
bmizerany-sinatra-0.8.9 compat/builder_test.rb
bmizerany-sinatra-0.9.0.2 compat/builder_test.rb
bmizerany-sinatra-0.9.0.4 compat/builder_test.rb
bmizerany-sinatra-0.9.0.5 compat/builder_test.rb
bmizerany-sinatra-0.9.0 compat/builder_test.rb
bmizerany-sinatra-0.9.1 compat/builder_test.rb
darkhelmet-sinatra-0.9.0.5 compat/builder_test.rb
darkhelmet-sinatra-0.9.1.1 compat/builder_test.rb
darkhelmet-sinatra-0.9.1 compat/builder_test.rb
masover-castronaut-0.4.4.4 vendor/sinatra/test/builder_test.rb
masover-castronaut-0.4.4.5 vendor/sinatra/test/builder_test.rb
masover-castronaut-0.5.0.1 vendor/sinatra/test/builder_test.rb
p8-castronaut-0.6.1.1 vendor/sinatra/compat/builder_test.rb