#!/usr/bin/env ruby require 'rubygems' require 'active_support' require 'action_controller' require 'action_view' require 'test/unit' require File.dirname(__FILE__) + '/../../lib/haml' require 'haml/template' class HelperTest < Test::Unit::TestCase include Haml::Helpers def setup ActionView::Base.register_template_handler("haml", Haml::Template) @base = ActionView::Base.new @base.controller = ActionController::Base.new end def render(text, options = {}) if options == :action_view @base.render :inline => text, :type => :haml else scope = options.delete :scope_object Haml::Engine.new(text, options).to_html(scope ? scope : Object.new) end end def test_flatten assert_equal(flatten("FooBar"), "FooBar") assert_equal(flatten("Foo\rBar"), "FooBar") assert_equal(flatten("Foo\nBar"), "Foo Bar") assert_equal(flatten("Hello\nWorld!\nYOU ARE \rFLAT?\n\rOMGZ!"), "Hello World! YOU ARE FLAT? OMGZ!") end def test_list_of_should_render_correctly assert_equal("
A word!
\nA word!
\nA word!
\nA word!
\n13
\\n\"\n", render("- foo = capture_haml(13) do |a|\n %p= a\n= foo.dump")) end def test_is_haml assert(!ActionView::Base.new.is_haml?) assert_equal("true\n", render("= is_haml?")) assert_equal("true\n", render("= is_haml?", :action_view)) assert_equal("false", @base.render(:inline => '<%= is_haml? %>')) assert_equal("false\n", render("= render :inline => '<%= is_haml? %>'", :action_view)) end def test_page_class controller = Struct.new(:controller_name, :action_name).new('troller', 'tion') scope = Struct.new(:controller).new(controller) result = render("%div{:class => page_class} MyDiv", :scope_object => scope) expected = "