Sha256: 80584bcfacd48b33a4e88aef4a990e78c99c662685cfb90d556b85e16e0c151c

Contents?: true

Size: 1.62 KB

Versions: 4

Compression:

Stored size: 1.62 KB

Contents

require 'test/spec'
require 'sinatra/base'
require 'sinatra/test'

describe "HAML Templates" do
  include Sinatra::Test

  def haml_app(&block)
    mock_app {
      set :views, File.dirname(__FILE__) + '/views'
      get '/', &block
    }
    get '/'
  end

  it 'renders inline HAML strings' do
    haml_app { haml '%h1 Hiya' }
    should.be.ok
    body.should.equal "<h1>Hiya</h1>\n"
  end

  it 'renders .haml files in views path' do
    haml_app { haml :hello }
    should.be.ok
    body.should.equal "<h1>Hello From Haml</h1>\n"
  end

  it "renders with inline layouts" do
    mock_app {
      layout { %q(%h1= 'THIS. IS. ' + yield.upcase) }
      get('/') { haml '%em Sparta' }
    }
    get '/'
    should.be.ok
    body.should.equal "<h1>THIS. IS. <EM>SPARTA</EM></h1>\n"
  end

  it "renders with file layouts" do
    haml_app {
      haml 'Hello World', :layout => :layout2
    }
    should.be.ok
    body.should.equal "<h1>HAML Layout!</h1>\n<p>Hello World</p>\n"
  end

  it "raises error if template not found" do
    mock_app {
      get('/') { haml :no_such_template }
    }
    lambda { get('/') }.should.raise(Errno::ENOENT)
  end

  it "passes HAML options to the Haml engine" do
    haml_app {
      haml "!!!\n%h1 Hello World", :options => {:format => :html5}
    }
    should.be.ok
    body.should.equal "<!DOCTYPE html>\n<h1>Hello World</h1>\n"
  end

  it "passes default HAML options to the Haml engine" do
    mock_app {
      set :haml, {:format => :html5}
      get '/' do
        haml "!!!\n%h1 Hello World"
      end
    }
    get '/'
    should.be.ok
    body.should.equal "<!DOCTYPE html>\n<h1>Hello World</h1>\n"
  end
end

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
adamwiggins-sinatra-0.8.9 test/haml_test.rb
bmizerany-sinatra-0.9.0 test/haml_test.rb
rtomayko-sinatra-0.8.9 test/haml_test.rb
rtomayko-sinatra-0.9.0 test/haml_test.rb