From 17d4164a16e5fe7b252375211424a2999a331291 Mon Sep 17 00:00:00 2001
From: Joshua Peek <josh@joshpeek.com>
Date: Sat, 19 Apr 2008 13:06:57 -0500
Subject: Introduce ActionView::TestCase for testing view helpers.

---
 actionpack/lib/action_view.rb                      |  6 +-
 actionpack/lib/action_view/base.rb                 | 10 ++--
 actionpack/lib/action_view/test_case.rb            | 64 ++++++++++++++++++++++
 actionpack/test/abstract_unit.rb                   |  1 +
 .../test/template/active_record_helper_test.rb     |  9 +--
 actionpack/test/template/asset_tag_helper_test.rb  | 12 ++--
 actionpack/test/template/benchmark_helper_test.rb  |  4 +-
 actionpack/test/template/date_helper_test.rb       |  5 +-
 actionpack/test/template/form_helper_test.rb       | 11 +---
 .../test/template/form_options_helper_test.rb      |  5 +-
 actionpack/test/template/form_tag_helper_test.rb   |  8 +--
 actionpack/test/template/javascript_helper_test.rb | 10 +---
 actionpack/test/template/number_helper_test.rb     |  4 +-
 actionpack/test/template/prototype_helper_test.rb  | 56 +++++++------------
 actionpack/test/template/record_tag_helper_test.rb | 11 +---
 actionpack/test/template/sanitize_helper_test.rb   |  5 +-
 .../test/template/scriptaculous_helper_test.rb     | 14 +----
 actionpack/test/template/tag_helper_test.rb        |  7 +--
 actionpack/test/template/test_test.rb              | 56 +++++++++++++++++++
 actionpack/test/template/text_helper_test.rb       |  5 +-
 actionpack/test/template/url_helper_test.rb        | 18 +++---
 21 files changed, 190 insertions(+), 131 deletions(-)
 create mode 100644 actionpack/lib/action_view/test_case.rb
 create mode 100644 actionpack/test/template/test_test.rb

diff --git a/actionpack/lib/action_view.rb b/actionpack/lib/action_view.rb
index f9de5c1307..609334d52d 100644
--- a/actionpack/lib/action_view.rb
+++ b/actionpack/lib/action_view.rb
@@ -38,6 +38,8 @@ require 'action_view/template_error'
 
 ActionView::Base.class_eval do
   include ActionView::Partials
-end
 
-ActionView::Base.load_helpers
+  ActionView::Base.helper_modules.each do |helper_module|
+    include helper_module
+  end
+end
diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb
index e57c447682..12dd7d2bc9 100644
--- a/actionpack/lib/action_view/base.rb
+++ b/actionpack/lib/action_view/base.rb
@@ -205,15 +205,17 @@ module ActionView #:nodoc:
     class ObjectWrapper < Struct.new(:value) #:nodoc:
     end
 
-    def self.load_helpers #:nodoc:
-      Dir.entries("#{File.dirname(__FILE__)}/helpers").sort.each do |file|
+    def self.helper_modules #:nodoc:
+      helpers = []
+      Dir.entries(File.expand_path("#{File.dirname(__FILE__)}/helpers")).sort.each do |file|
         next unless file =~ /^([a-z][a-z_]*_helper).rb$/
         require "action_view/helpers/#{$1}"
         helper_module_name = $1.camelize
         if Helpers.const_defined?(helper_module_name)
-          include Helpers.const_get(helper_module_name)
+          helpers << Helpers.const_get(helper_module_name)
         end
       end
+      return helpers
     end
 
     def initialize(view_paths = [], assigns_for_first_render = {}, controller = nil)#:nodoc:
@@ -323,7 +325,7 @@ If you are rendering a subtemplate, you must now use controller-like partial syn
       end
     end
 
-    private    
+    private
       def wrap_content_for_layout(content)
         original_content_for_layout = @content_for_layout
         @content_for_layout = content
diff --git a/actionpack/lib/action_view/test_case.rb b/actionpack/lib/action_view/test_case.rb
new file mode 100644
index 0000000000..b2e6589d81
--- /dev/null
+++ b/actionpack/lib/action_view/test_case.rb
@@ -0,0 +1,64 @@
+require 'active_support/test_case'
+
+module ActionView
+  class NonInferrableHelperError < ActionViewError
+    def initialize(name)
+      super "Unable to determine the helper to test from #{name}. " +
+        "You'll need to specify it using tests YourHelper in your " +
+        "test case definition"
+    end
+  end
+
+  class TestCase < ActiveSupport::TestCase
+    class_inheritable_accessor :helper_class
+    @@helper_class = nil
+
+    class << self
+      def tests(helper_class)
+        self.helper_class = helper_class
+      end
+
+      def helper_class
+        if current_helper_class = read_inheritable_attribute(:helper_class)
+          current_helper_class
+        else
+          self.helper_class = determine_default_helper_class(name)
+        end
+      end
+
+      def determine_default_helper_class(name)
+        name.sub(/Test$/, '').constantize
+      rescue NameError
+        raise NonInferrableHelperError.new(name)
+      end
+    end
+
+    ActionView::Base.helper_modules.each do |helper_module|
+      include helper_module
+    end
+    include ActionController::PolymorphicRoutes
+    include ActionController::RecordIdentifier
+
+    setup :setup_with_helper_class
+
+    def setup_with_helper_class
+      self.class.send(:include, helper_class)
+    end
+
+    class TestController < ActionController::Base
+      attr_accessor :request, :response
+
+      def initialize
+        @request = ActionController::TestRequest.new
+        @response = ActionController::TestResponse.new
+      end
+    end
+
+    private
+      def method_missing(selector, *args)
+        controller = TestController.new
+        return controller.send!(selector, *args) if ActionController::Routing::Routes.named_routes.helpers.include?(selector)
+        super
+      end
+  end
+end
diff --git a/actionpack/test/abstract_unit.rb b/actionpack/test/abstract_unit.rb
index 700bc1f5e3..d90f299b8a 100644
--- a/actionpack/test/abstract_unit.rb
+++ b/actionpack/test/abstract_unit.rb
@@ -8,6 +8,7 @@ require 'test/unit'
 require 'action_controller'
 require 'action_controller/cgi_ext'
 require 'action_controller/test_process'
+require 'action_view/test_case'
 
 begin
   require 'ruby-debug'
diff --git a/actionpack/test/template/active_record_helper_test.rb b/actionpack/test/template/active_record_helper_test.rb
index 31fe7bbc29..dfc30e651a 100644
--- a/actionpack/test/template/active_record_helper_test.rb
+++ b/actionpack/test/template/active_record_helper_test.rb
@@ -1,12 +1,7 @@
 require 'abstract_unit'
 
-class ActiveRecordHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::FormHelper
-  include ActionView::Helpers::ActiveRecordHelper
-  include ActionView::Helpers::TextHelper
-  include ActionView::Helpers::TagHelper
-  include ActionView::Helpers::UrlHelper
-  include ActionView::Helpers::FormTagHelper
+class ActiveRecordHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::ActiveRecordHelper
 
   silence_warnings do
     Post = Struct.new("Post", :title, :author_name, :body, :secret, :written_on)
diff --git a/actionpack/test/template/asset_tag_helper_test.rb b/actionpack/test/template/asset_tag_helper_test.rb
index ffb8856a59..4a8117a88a 100644
--- a/actionpack/test/template/asset_tag_helper_test.rb
+++ b/actionpack/test/template/asset_tag_helper_test.rb
@@ -1,9 +1,7 @@
 require 'abstract_unit'
 
-class AssetTagHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::TagHelper
-  include ActionView::Helpers::UrlHelper
-  include ActionView::Helpers::AssetTagHelper
+class AssetTagHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::AssetTagHelper
 
   def setup
     silence_warnings do
@@ -445,10 +443,8 @@ class AssetTagHelperTest < Test::Unit::TestCase
   end
 end
 
-class AssetTagHelperNonVhostTest < Test::Unit::TestCase
-  include ActionView::Helpers::TagHelper
-  include ActionView::Helpers::UrlHelper
-  include ActionView::Helpers::AssetTagHelper
+class AssetTagHelperNonVhostTest < ActionView::TestCase
+  tests ActionView::Helpers::AssetTagHelper
 
   def setup
     @controller = Class.new do
diff --git a/actionpack/test/template/benchmark_helper_test.rb b/actionpack/test/template/benchmark_helper_test.rb
index 76c0780482..d95a3dee26 100644
--- a/actionpack/test/template/benchmark_helper_test.rb
+++ b/actionpack/test/template/benchmark_helper_test.rb
@@ -1,8 +1,8 @@
 require 'abstract_unit'
 require 'action_view/helpers/benchmark_helper'
 
-class BenchmarkHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::BenchmarkHelper
+class BenchmarkHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::BenchmarkHelper
 
   class MockLogger
     attr_reader :logged
diff --git a/actionpack/test/template/date_helper_test.rb b/actionpack/test/template/date_helper_test.rb
index 25b1f9f002..9bd433e76b 100755
--- a/actionpack/test/template/date_helper_test.rb
+++ b/actionpack/test/template/date_helper_test.rb
@@ -1,8 +1,7 @@
 require 'abstract_unit'
 
-class DateHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::DateHelper
-  include ActionView::Helpers::FormHelper
+class DateHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::DateHelper
 
   silence_warnings do
     Post = Struct.new("Post", :id, :written_on, :updated_at)
diff --git a/actionpack/test/template/form_helper_test.rb b/actionpack/test/template/form_helper_test.rb
index 766e88375b..c48d5dfd2d 100644
--- a/actionpack/test/template/form_helper_test.rb
+++ b/actionpack/test/template/form_helper_test.rb
@@ -30,15 +30,8 @@ end
 class Comment::Nested < Comment; end
 
 
-class FormHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::FormHelper
-  include ActionView::Helpers::FormTagHelper
-  include ActionView::Helpers::UrlHelper
-  include ActionView::Helpers::TagHelper
-  include ActionView::Helpers::TextHelper
-  include ActionView::Helpers::ActiveRecordHelper
-  include ActionView::Helpers::RecordIdentificationHelper
-  include ActionController::PolymorphicRoutes
+class FormHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::FormHelper
 
   def setup
     @post = Post.new
diff --git a/actionpack/test/template/form_options_helper_test.rb b/actionpack/test/template/form_options_helper_test.rb
index f3ecc18233..48a26deea9 100644
--- a/actionpack/test/template/form_options_helper_test.rb
+++ b/actionpack/test/template/form_options_helper_test.rb
@@ -22,9 +22,8 @@ end
 
 ActionView::Helpers::FormOptionsHelper::TimeZone = MockTimeZone
 
-class FormOptionsHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::FormHelper
-  include ActionView::Helpers::FormOptionsHelper
+class FormOptionsHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::FormOptionsHelper
 
   silence_warnings do
     Post      = Struct.new('Post', :title, :author_name, :body, :secret, :written_on, :category, :origin)
diff --git a/actionpack/test/template/form_tag_helper_test.rb b/actionpack/test/template/form_tag_helper_test.rb
index 7caa85802a..73a8bd4d87 100644
--- a/actionpack/test/template/form_tag_helper_test.rb
+++ b/actionpack/test/template/form_tag_helper_test.rb
@@ -1,11 +1,7 @@
 require 'abstract_unit'
 
-class FormTagHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::UrlHelper
-  include ActionView::Helpers::TagHelper
-  include ActionView::Helpers::FormTagHelper
-  include ActionView::Helpers::TextHelper
-  include ActionView::Helpers::CaptureHelper
+class FormTagHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::FormTagHelper
 
   def setup
     @controller = Class.new do
diff --git a/actionpack/test/template/javascript_helper_test.rb b/actionpack/test/template/javascript_helper_test.rb
index 581ca58f89..f18adb990c 100644
--- a/actionpack/test/template/javascript_helper_test.rb
+++ b/actionpack/test/template/javascript_helper_test.rb
@@ -1,13 +1,7 @@
 require 'abstract_unit'
 
-class JavaScriptHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::JavaScriptHelper
-
-  include ActionView::Helpers::UrlHelper
-  include ActionView::Helpers::TagHelper
-  include ActionView::Helpers::TextHelper
-  include ActionView::Helpers::FormHelper
-  include ActionView::Helpers::CaptureHelper
+class JavaScriptHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::JavaScriptHelper
 
   def test_define_javascript_functions
     # check if prototype.js is included first
diff --git a/actionpack/test/template/number_helper_test.rb b/actionpack/test/template/number_helper_test.rb
index 7065ca7a84..4a8d09b544 100644
--- a/actionpack/test/template/number_helper_test.rb
+++ b/actionpack/test/template/number_helper_test.rb
@@ -1,7 +1,7 @@
 require 'abstract_unit'
 
-class NumberHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::NumberHelper
+class NumberHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::NumberHelper
 
   def test_number_to_phone
     assert_equal("800-555-1212", number_to_phone(8005551212))
diff --git a/actionpack/test/template/prototype_helper_test.rb b/actionpack/test/template/prototype_helper_test.rb
index 28e58b0a08..a84d4e72af 100644
--- a/actionpack/test/template/prototype_helper_test.rb
+++ b/actionpack/test/template/prototype_helper_test.rb
@@ -24,24 +24,11 @@ end
 class Author::Nested < Author; end
 
 
-module BaseTest
-  def self.included(base)
-    base.send :attr_accessor, :template_format
-  end
+class PrototypeHelperBaseTest < ActionView::TestCase
+  tests ActionView::Helpers::PrototypeHelper
+
+  attr_accessor :template_format
 
-  include ActionView::Helpers::JavaScriptHelper
-  include ActionView::Helpers::PrototypeHelper
-  include ActionView::Helpers::ScriptaculousHelper
-  
-  include ActionView::Helpers::UrlHelper
-  include ActionView::Helpers::TagHelper
-  include ActionView::Helpers::TextHelper
-  include ActionView::Helpers::FormTagHelper
-  include ActionView::Helpers::FormHelper
-  include ActionView::Helpers::CaptureHelper
-  include ActionView::Helpers::RecordIdentificationHelper
-  include ActionController::PolymorphicRoutes
-  
   def setup
     @template = nil
     @controller = Class.new do
@@ -59,25 +46,22 @@ module BaseTest
     end.new
   end
 
-protected
-  
-  def request_forgery_protection_token
-    nil
-  end
-  
-  def protect_against_forgery?
-    false
-  end
-  
-  def create_generator
-    block = Proc.new { |*args| yield *args if block_given? } 
-    JavaScriptGenerator.new self, &block
-  end
+  protected
+    def request_forgery_protection_token
+      nil
+    end
+
+    def protect_against_forgery?
+      false
+    end
+
+    def create_generator
+      block = Proc.new { |*args| yield *args if block_given? } 
+      JavaScriptGenerator.new self, &block
+    end
 end
 
-class PrototypeHelperTest < Test::Unit::TestCase
-  include BaseTest
-  
+class PrototypeHelperTest < PrototypeHelperBaseTest
   def setup
     @record = @author = Author.new
     @article = Article.new
@@ -294,9 +278,7 @@ class PrototypeHelperTest < Test::Unit::TestCase
     end
 end
 
-class JavaScriptGeneratorTest < Test::Unit::TestCase
-  include BaseTest
-  
+class JavaScriptGeneratorTest < PrototypeHelperBaseTest
   def setup
     super
     @generator = create_generator
diff --git a/actionpack/test/template/record_tag_helper_test.rb b/actionpack/test/template/record_tag_helper_test.rb
index bb5440be20..0afbb54f57 100644
--- a/actionpack/test/template/record_tag_helper_test.rb
+++ b/actionpack/test/template/record_tag_helper_test.rb
@@ -9,14 +9,9 @@ class Post
   end
 end
 
-class RecordTagHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::RecordTagHelper
-  include ActionView::Helpers::CaptureHelper
-  include ActionView::Helpers::RecordIdentificationHelper  
-  include ActionView::Helpers::TagHelper
-  include ActionView::Helpers::TextHelper  
-  include ActionView::Helpers::UrlHelper  
-    
+class RecordTagHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::RecordTagHelper
+
   def setup
     @post = Post.new
   end
diff --git a/actionpack/test/template/sanitize_helper_test.rb b/actionpack/test/template/sanitize_helper_test.rb
index a840c8b4cb..e5427d9dc1 100644
--- a/actionpack/test/template/sanitize_helper_test.rb
+++ b/actionpack/test/template/sanitize_helper_test.rb
@@ -3,9 +3,8 @@ require 'testing_sandbox'
 
 # The exhaustive tests are in test/controller/html/sanitizer_test.rb.
 # This tests the that the helpers hook up correctly to the sanitizer classes.
-class SanitizeHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::SanitizeHelper
-  include ActionView::Helpers::TagHelper
+class SanitizeHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::SanitizeHelper
   include TestingSandbox
 
   def test_strip_links
diff --git a/actionpack/test/template/scriptaculous_helper_test.rb b/actionpack/test/template/scriptaculous_helper_test.rb
index 91856ff980..690a7751b5 100644
--- a/actionpack/test/template/scriptaculous_helper_test.rb
+++ b/actionpack/test/template/scriptaculous_helper_test.rb
@@ -1,16 +1,8 @@
 require 'abstract_unit'
 
-class ScriptaculousHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::JavaScriptHelper
-  include ActionView::Helpers::PrototypeHelper
-  include ActionView::Helpers::ScriptaculousHelper
-  
-  include ActionView::Helpers::UrlHelper
-  include ActionView::Helpers::TagHelper
-  include ActionView::Helpers::TextHelper
-  include ActionView::Helpers::FormHelper
-  include ActionView::Helpers::CaptureHelper
-  
+class ScriptaculousHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::ScriptaculousHelper
+
   def setup
     @controller = Class.new do
       def url_for(options)
diff --git a/actionpack/test/template/tag_helper_test.rb b/actionpack/test/template/tag_helper_test.rb
index 4b73289060..4da6116095 100644
--- a/actionpack/test/template/tag_helper_test.rb
+++ b/actionpack/test/template/tag_helper_test.rb
@@ -1,10 +1,7 @@
 require 'abstract_unit'
 
-class TagHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::TagHelper
-  include ActionView::Helpers::UrlHelper
-  include ActionView::Helpers::TextHelper
-  include ActionView::Helpers::CaptureHelper
+class TagHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::TagHelper
 
   def test_tag
     assert_equal "<br />", tag("br")
diff --git a/actionpack/test/template/test_test.rb b/actionpack/test/template/test_test.rb
new file mode 100644
index 0000000000..660f51b3be
--- /dev/null
+++ b/actionpack/test/template/test_test.rb
@@ -0,0 +1,56 @@
+require 'abstract_unit'
+
+module PeopleHelper
+  def title(text)
+    content_tag(:h1, text)
+  end
+
+  def homepage_path
+    people_path
+  end
+
+  def homepage_url
+    people_url
+  end
+
+  def link_to_person(person)
+    link_to person.name, person
+  end
+end
+
+class PeopleHelperTest < ActionView::TestCase
+  def setup
+    ActionController::Routing::Routes.draw do |map|
+      map.people 'people', :controller => 'people', :action => 'index'
+      map.connect ':controller/:action/:id'
+    end
+  end
+
+  def test_title
+    assert_equal "<h1>Ruby on Rails</h1>", title("Ruby on Rails")
+  end
+
+  def test_homepage_path
+    assert_equal "/people", homepage_path
+  end
+
+  def test_homepage_url
+    assert_equal "http://test.host/people", homepage_url
+  end
+
+  uses_mocha "link_to_person" do
+    def test_link_to_person
+      person = mock(:name => "David")
+      expects(:mocha_mock_path).with(person).returns("/people/1")
+      assert_equal '<a href="/people/1">David</a>', link_to_person(person)
+    end
+  end
+end
+
+class CrazyHelperTest < ActionView::TestCase
+  tests PeopleHelper
+
+  def test_helper_class_can_be_set_manually_not_just_inferred
+    assert_equal PeopleHelper, self.class.helper_class
+  end
+end
diff --git a/actionpack/test/template/text_helper_test.rb b/actionpack/test/template/text_helper_test.rb
index 7d92bce4bd..25ecda687f 100644
--- a/actionpack/test/template/text_helper_test.rb
+++ b/actionpack/test/template/text_helper_test.rb
@@ -1,9 +1,8 @@
 require 'abstract_unit'
 require 'testing_sandbox'
 
-class TextHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::TextHelper
-  include ActionView::Helpers::TagHelper
+class TextHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::TextHelper
   include TestingSandbox
 
   def setup
diff --git a/actionpack/test/template/url_helper_test.rb b/actionpack/test/template/url_helper_test.rb
index 9cd3b6e2f9..d45ea08a6f 100644
--- a/actionpack/test/template/url_helper_test.rb
+++ b/actionpack/test/template/url_helper_test.rb
@@ -2,10 +2,8 @@ require 'abstract_unit'
 
 RequestMock = Struct.new("Request", :request_uri, :protocol, :host_with_port, :env)
 
-class UrlHelperTest < Test::Unit::TestCase
-  include ActionView::Helpers::AssetTagHelper
-  include ActionView::Helpers::UrlHelper
-  include ActionView::Helpers::TagHelper
+class UrlHelperTest < ActionView::TestCase
+  tests ActionView::Helpers::UrlHelper
 
   def setup
     @controller = Class.new do
@@ -293,7 +291,7 @@ class UrlHelperTest < Test::Unit::TestCase
   end
 end
 
-class UrlHelperWithControllerTest < Test::Unit::TestCase
+class UrlHelperWithControllerTest < ActionView::TestCase
   class UrlHelperController < ActionController::Base
     self.view_paths = [ "#{File.dirname(__FILE__)}/../fixtures/" ]
 
@@ -310,7 +308,7 @@ class UrlHelperWithControllerTest < Test::Unit::TestCase
     def rescue_action(e) raise e end
   end
 
-  include ActionView::Helpers::UrlHelper
+  tests ActionView::Helpers::UrlHelper
 
   def setup
     @request    = ActionController::TestRequest.new
@@ -348,7 +346,7 @@ class UrlHelperWithControllerTest < Test::Unit::TestCase
     end
 end
 
-class LinkToUnlessCurrentWithControllerTest < Test::Unit::TestCase
+class LinkToUnlessCurrentWithControllerTest < ActionView::TestCase
   class TasksController < ActionController::Base
     self.view_paths = ["#{File.dirname(__FILE__)}/../fixtures/"]
 
@@ -372,7 +370,7 @@ class LinkToUnlessCurrentWithControllerTest < Test::Unit::TestCase
       end
   end
 
-  include ActionView::Helpers::UrlHelper
+  tests ActionView::Helpers::UrlHelper
 
   def setup
     @request    = ActionController::TestRequest.new
@@ -440,7 +438,7 @@ class Session
   end
 end
 
-class PolymorphicControllerTest < Test::Unit::TestCase
+class PolymorphicControllerTest < ActionView::TestCase
   class WorkshopsController < ActionController::Base
     self.view_paths = ["#{File.dirname(__FILE__)}/../fixtures/"]
 
@@ -479,7 +477,7 @@ class PolymorphicControllerTest < Test::Unit::TestCase
     def rescue_action(e) raise e end
   end
 
-  include ActionView::Helpers::UrlHelper
+  tests ActionView::Helpers::UrlHelper
 
   def setup
     @request    = ActionController::TestRequest.new
-- 
cgit v1.2.3