aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-08-07 12:03:13 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2015-08-07 15:37:31 -0700
commit27eddbb332c4adb533e0699e4b1532c3bd4de222 (patch)
treefc7697591d8d14a3d32f35694f5d96245d3c17ba /actionpack/test/dispatch
parente4f9a0b92531fa68cc2cdbd52b66904515fcd486 (diff)
downloadrails-27eddbb332c4adb533e0699e4b1532c3bd4de222.tar.gz
rails-27eddbb332c4adb533e0699e4b1532c3bd4de222.tar.bz2
rails-27eddbb332c4adb533e0699e4b1532c3bd4de222.zip
simplify the Middleware constructor
We should do the hard work outside the constructor. Also fix the tests to not directly construct middleware objects, but to go through the stack object.
Diffstat (limited to 'actionpack/test/dispatch')
-rw-r--r--actionpack/test/dispatch/middleware_stack/middleware_test.rb63
1 files changed, 24 insertions, 39 deletions
diff --git a/actionpack/test/dispatch/middleware_stack/middleware_test.rb b/actionpack/test/dispatch/middleware_stack/middleware_test.rb
index 9607f026db..6366d37aa4 100644
--- a/actionpack/test/dispatch/middleware_stack/middleware_test.rb
+++ b/actionpack/test/dispatch/middleware_stack/middleware_test.rb
@@ -12,65 +12,50 @@ module ActionDispatch
}.each do |name, klass|
define_method("test_#{name}_klass") do
- mw = Middleware.new klass
- assert_equal klass, mw.klass
+ stack = ActionDispatch::MiddlewareStack.new
+ stack.use klass
+ assert_equal klass, stack.first.klass
end
define_method("test_#{name}_==") do
- mw1 = Middleware.new klass
- mw2 = Middleware.new klass
- assert_equal mw1, mw2
+ stack = ActionDispatch::MiddlewareStack.new
+ stack.use klass
+ stack.use klass
+ assert_equal 2, stack.size
+ assert_equal stack.first, stack.last
end
end
+ attr_reader :stack
+
+ def setup
+ @stack = ActionDispatch::MiddlewareStack.new
+ end
+
def test_string_class
- mw = Middleware.new Omg.name
- assert_equal Omg, mw.klass
+ stack = ActionDispatch::MiddlewareStack.new
+ stack.use Omg.name
+ assert_equal Omg, stack.first.klass
end
def test_double_equal_works_with_classes
k = Class.new
- mw = Middleware.new k
- assert_operator mw, :==, k
+ stack.use k
+ assert_operator stack.first, :==, k
- result = mw != Class.new
+ result = stack.first != Class.new
assert result, 'middleware should not equal other anon class'
end
def test_double_equal_works_with_strings
- mw = Middleware.new Omg
- assert_operator mw, :==, Omg.name
+ stack.use Omg
+ assert_operator stack.first, :==, Omg.name
end
def test_double_equal_normalizes_strings
- mw = Middleware.new Omg
- assert_operator mw, :==, "::#{Omg.name}"
- end
-
- def test_middleware_loads_classnames_from_cache
- mw = Class.new(Middleware) {
- attr_accessor :classcache
- }.new(Omg.name)
-
- fake_cache = { mw.name => Omg }
- mw.classcache = fake_cache
-
- assert_equal Omg, mw.klass
-
- fake_cache[mw.name] = Middleware
- assert_equal Middleware, mw.klass
- end
-
- def test_middleware_always_returns_class
- mw = Class.new(Middleware) {
- attr_accessor :classcache
- }.new(Omg)
-
- fake_cache = { mw.name => Middleware }
- mw.classcache = fake_cache
-
- assert_equal Omg, mw.klass
+ stack.use Omg
+ assert_operator stack.first, :==, "::#{Omg.name}"
end
end
end