Prepare haml-spec for both pretty and ugly

This commit is contained in:
Takashi Kokubun 2015-10-11 13:31:15 +09:00
parent b89c57eca6
commit 522ed5699c
3 changed files with 28 additions and 24 deletions

View File

@ -6,7 +6,7 @@ task default: :test
Rake::TestTask.new do |t|
t.libs << 'lib' << 'test'
files = Dir['test/*_test.rb']
files << 'test/haml-spec/hamlit_test.rb'
files << 'test/haml-spec/*_test.rb'
t.ruby_opts = %w[-rtest_helper]
t.test_files = files
t.verbose = true

View File

@ -0,0 +1,27 @@
require 'rubygems'
require 'minitest/autorun'
require 'json'
require 'haml'
require 'hamlit'
class HamlTest < MiniTest::Test
contexts = JSON.parse(File.read(File.dirname(__FILE__) + '/tests.json'))
contexts.each do |context|
context[1].each do |name, test|
[{ ugly: true }].each do |base_options|
define_method("test_#{base_options[:ugly] ? 'ugly' : 'pretty'}_spec: #{name} (#{context[0]})") do
haml = test['haml']
locals = Hash[(test['locals'] || {}).map {|x, y| [x.to_sym, y]}]
options = Hash[(test['config'] || {}).map {|x, y| [x.to_sym, y]}]
options[:format] = options[:format].to_sym if options.key?(:format)
options = base_options.merge(options)
haml_result = Haml::Engine.new(haml, options).render(Object.new, locals)
hamlit_result = Hamlit::HamlEngine.new(haml, options).render(Object.new, locals)
assert_equal haml_result, hamlit_result
end
end
end
end
end

View File

@ -1,23 +0,0 @@
require "rubygems"
require "minitest/autorun"
require "json"
require "hamlit"
class HamlTest < MiniTest::Unit::TestCase
contexts = JSON.parse(File.read(File.dirname(__FILE__) + "/tests.json"))
contexts.each do |context|
context[1].each do |name, test|
define_method("test_spec: #{name} (#{context[0]})") do
html = test["html"]
haml = test["haml"]
locals = Hash[(test["locals"] || {}).map {|x, y| [x.to_sym, y]}]
options = Hash[(test["config"] || {}).map {|x, y| [x.to_sym, y]}]
options[:format] = options[:format].to_sym if options.key?(:format)
engine = Hamlit::HamlEngine.new(haml, options)
result = engine.render(Object.new, locals)
assert_equal html, result.strip
end
end
end
end