mirror of
https://github.com/haml/haml.git
synced 2022-11-09 12:33:31 -05:00
2a29521ab6
Rather than hard-code the entire output, use Nokogiri to check for the expected structure and content. This conceptually cleaner and makes Haml's test suite less vulnerable to changes in Rails's HTML helper output.
85 lines
1.7 KiB
Ruby
85 lines
1.7 KiB
Ruby
if ENV["COVERAGE"]
|
|
require "simplecov"
|
|
SimpleCov.start
|
|
end
|
|
|
|
require 'rubygems'
|
|
gem "minitest"
|
|
require 'bundler/setup'
|
|
require 'minitest/autorun'
|
|
require 'action_pack'
|
|
require 'action_controller'
|
|
require 'action_view'
|
|
require 'nokogiri'
|
|
|
|
require 'rails'
|
|
class TestApp < Rails::Application
|
|
config.root = ""
|
|
end
|
|
Rails.application = TestApp
|
|
|
|
ActionController::Base.logger = Logger.new(nil)
|
|
|
|
require 'fileutils'
|
|
|
|
$VERBOSE = true
|
|
|
|
require 'haml'
|
|
require 'haml/template'
|
|
|
|
Haml::Template.options[:ugly] = false
|
|
Haml::Template.options[:format] = :xhtml
|
|
|
|
module Declarative
|
|
def test(name, &block)
|
|
define_method("test #{name}", &block)
|
|
end
|
|
end
|
|
|
|
class MiniTest::Unit::TestCase
|
|
|
|
extend Declarative
|
|
|
|
def render(text, options = {}, base = nil, &block)
|
|
scope = options.delete(:scope) || Object.new
|
|
locals = options.delete(:locals) || {}
|
|
engine = Haml::Engine.new(text, options)
|
|
return engine.to_html(base) if base
|
|
engine.to_html(scope, locals, &block)
|
|
end
|
|
|
|
def assert_warning(message)
|
|
the_real_stderr, $stderr = $stderr, StringIO.new
|
|
yield
|
|
|
|
if message.is_a?(Regexp)
|
|
assert_match message, $stderr.string.strip
|
|
else
|
|
assert_equal message.strip, $stderr.string.strip
|
|
end
|
|
ensure
|
|
$stderr = the_real_stderr
|
|
end
|
|
|
|
def silence_warnings(&block)
|
|
Haml::Util.silence_warnings(&block)
|
|
end
|
|
|
|
def rails_form_opener
|
|
'<div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div>'
|
|
end
|
|
|
|
def assert_raises_message(klass, message)
|
|
yield
|
|
rescue Exception => e
|
|
assert_instance_of(klass, e)
|
|
assert_equal(message, e.message)
|
|
else
|
|
flunk "Expected exception #{klass}, none raised"
|
|
end
|
|
|
|
def self.error(*args)
|
|
Haml::Error.message(*args)
|
|
end
|
|
|
|
end
|