aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-02-17 19:00:21 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-02-17 19:00:21 +0000
commit02e382a765bea5632e56d80408ba20762e3ef334 (patch)
tree49121146c68c91bc2671ca7186c274f2328c4901 /actionpack
parent04b8bc1bdd13de1a5a47239bea12229ca98dd0cc (diff)
downloadrails-02e382a765bea5632e56d80408ba20762e3ef334.tar.gz
rails-02e382a765bea5632e56d80408ba20762e3ef334.tar.bz2
rails-02e382a765bea5632e56d80408ba20762e3ef334.zip
More tests for Routing related stuff
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@647 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/test/controller/base_tests.rb72
1 files changed, 72 insertions, 0 deletions
diff --git a/actionpack/test/controller/base_tests.rb b/actionpack/test/controller/base_tests.rb
new file mode 100644
index 0000000000..e442a95816
--- /dev/null
+++ b/actionpack/test/controller/base_tests.rb
@@ -0,0 +1,72 @@
+require File.dirname(__FILE__) + '/../abstract_unit'
+require 'test/unit'
+
+# This file currently contains a few controller UTs
+# I couldn't find where the current base tests are, so I created this file.
+# If there aren't any base-specific UTs, then this file should grow as they
+# are written. If there are, or there is a better place for these, then I will
+# move them to the correct location.
+#
+# Nicholas Seckar aka. Ulysses
+
+# Provide a static version of the Controllers module instead of the auto-loading version.
+# We don't want these tests to fail when dependencies are to blame.
+module Controllers
+ module Submodule
+ class ContainedEmptyController < ActionController::Base
+ end
+ class ContainedNonEmptyController < ActionController::Base
+ def public_action
+ end
+
+ hide_actions :hidden_action
+ def hidden_action
+ end
+
+ def another_hidden_action
+ end
+ hide_action :another_hidden_action
+ end
+ class SubclassedController < ContainedNonEmptyController
+ hide_action :public_action # Hiding it here should not affect the superclass.
+ end
+ end
+ class EmptyController < ActionController::Base
+ include ActionController::Caching
+ end
+ class NonEmptyController < ActionController::Base
+ def public_action
+ end
+
+ hide_actions :hidden_action
+ def hidden_action
+ end
+ end
+end
+
+class ControllerClassTests < Test::Unit::TestCase
+ def test_controller_path
+ assert_equal 'empty', Controllers::EmptyController.controller_path
+ assert_equal 'submodule/contained_empty', Controllers::Submodule::ContainedEmptyController.controller_path
+ end
+ def test_controller_name
+ assert_equal 'empty', Controllers::EmptyController.controller_name
+ assert_equal 'contained_empty', Controllers::Submodule::ContainedEmptyController.controller_name
+ end
+end
+
+class ControllerInstanceTests < Test::Unit::TestCase
+ def setup
+ @empty = Controllers::EmptyController.new
+ @contained = Controllers::Submodule::ContainedEmptyController.new
+ @empty_controllers = [@empty, @contained, Controllers::Submodule::SubclassedController.new]
+
+ @non_empty_controllers = [Controllers::NonEmptyController.new,
+ Controllers::Submodule::ContainedNonEmptyController.new]
+
+ end
+ def test_action_methods
+ @empty_controllers.each {|c| assert_equal [], c.send(:action_methods), "#{c.class.controller_path} should be empty!"}
+ @non_empty_controllers.each {|c| assert_equal ["public_action"], c.send(:action_methods), "#{c.class.controller_path} should not be empty!"}
+ end
+end