diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-02-17 19:00:21 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-02-17 19:00:21 +0000 |
commit | 02e382a765bea5632e56d80408ba20762e3ef334 (patch) | |
tree | 49121146c68c91bc2671ca7186c274f2328c4901 /actionpack | |
parent | 04b8bc1bdd13de1a5a47239bea12229ca98dd0cc (diff) | |
download | rails-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.rb | 72 |
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 |