Added some shoulda macros for testing.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3269 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
4cf2e7c216
commit
9ffee0a5a4
|
@ -75,4 +75,32 @@ class ActiveSupport::TestCase
|
|||
yield
|
||||
saved_settings.each {|k, v| Setting[k] = v}
|
||||
end
|
||||
|
||||
# Shoulda macros
|
||||
def self.should_render_404
|
||||
should_respond_with :not_found
|
||||
should_render_template 'common/404'
|
||||
end
|
||||
|
||||
def self.should_have_before_filter(expected_method, options = {})
|
||||
should_have_filter('before', expected_method, options)
|
||||
end
|
||||
|
||||
def self.should_have_after_filter(expected_method, options = {})
|
||||
should_have_filter('after', expected_method, options)
|
||||
end
|
||||
|
||||
def self.should_have_filter(filter_type, expected_method, options)
|
||||
description = "have #{filter_type}_filter :#{expected_method}"
|
||||
description << " with #{options.inspect}" unless options.empty?
|
||||
|
||||
should description do
|
||||
klass = "action_controller/filters/#{filter_type}_filter".classify.constantize
|
||||
expected = klass.new(:filter, expected_method.to_sym, options)
|
||||
assert_equal 1, @controller.class.filter_chain.select { |filter|
|
||||
filter.method == expected.method && filter.kind == expected.kind &&
|
||||
filter.options == expected.options && filter.class == expected.class
|
||||
}.size
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue