-
-
Notifications
You must be signed in to change notification settings - Fork 571
/
test_helper.rb
111 lines (90 loc) · 2.32 KB
/
test_helper.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# frozen_string_literal: true
begin
if ENV['TRAVIS'] && RUBY_VERSION == '2.1.2' && !defined?(Rubinius)
require 'coveralls'
Coveralls.wear!
end
rescue LoadError
# ignore error for other test Gemfiles
end
if ENV["COVERAGE"]
require "simplecov"
SimpleCov.start
end
require 'bundler'
require 'minitest/autorun'
require 'action_pack'
require 'action_controller'
require 'action_view'
require 'action_view/base'
require 'nokogiri'
require 'rails'
Bundler.require(:default)
if defined?(I18n.enforce_available_locales)
I18n.enforce_available_locales = true
end
class TestApp < Rails::Application
config.eager_load = false
config.root = ""
end
Rails.application = TestApp
Rails.backtrace_cleaner.remove_silencers!
ActionController::Base.logger = Logger.new(nil)
require 'fileutils'
$VERBOSE = true
require 'haml'
require 'haml/template'
TestApp.initialize!
Haml::Template.options[:format] = :xhtml
BASE_TEST_CLASS = if defined?(Minitest::Test)
Minitest::Test
else
MiniTest::Unit::TestCase
end
class Haml::TestCase < BASE_TEST_CLASS
module Declarative
def test(name, &block)
define_method("test_ #{name}", &block)
end
end
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 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 action_view_instance
Class.new(ActionView::Base) do
def compiled_method_container
self.class
end
end.new(ActionView::LookupContext.new(''))
end
def self.error(*args)
Haml::Error.message(*args)
end
end