aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorrick <rick@spacemonkey.local>2008-04-23 12:14:59 -0700
committerrick <rick@spacemonkey.local>2008-04-23 12:14:59 -0700
commiteacb5cf0cab6447db78085c8bda6c94dd329ce6b (patch)
treedf4bc7789c4d1fe83085b725be0d1fe4a6223880 /actionpack/test
parent69d29e80f76079262f2e98e350592be1cfdfcd1e (diff)
parent6c1c16bfd9eb865dffa68c12c7df66d5a59a8714 (diff)
downloadrails-eacb5cf0cab6447db78085c8bda6c94dd329ce6b.tar.gz
rails-eacb5cf0cab6447db78085c8bda6c94dd329ce6b.tar.bz2
rails-eacb5cf0cab6447db78085c8bda6c94dd329ce6b.zip
Merge branch 'master' of git@github.com:rails/rails
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/abstract_unit.rb2
-rw-r--r--actionpack/test/controller/caching_test.rb9
-rw-r--r--actionpack/test/controller/cookie_test.rb2
-rw-r--r--actionpack/test/controller/custom_handler_test.rb6
-rw-r--r--actionpack/test/controller/dispatcher_test.rb55
-rw-r--r--actionpack/test/controller/flash_test.rb2
-rw-r--r--actionpack/test/controller/layout_test.rb2
-rw-r--r--actionpack/test/controller/mime_responds_test.rb2
-rw-r--r--actionpack/test/controller/new_render_test.rb37
-rw-r--r--actionpack/test/controller/rescue_test.rb2
-rw-r--r--actionpack/test/controller/resources_test.rb45
-rw-r--r--actionpack/test/template/active_record_helper_test.rb9
-rw-r--r--actionpack/test/template/asset_tag_helper_test.rb12
-rw-r--r--actionpack/test/template/benchmark_helper_test.rb4
-rwxr-xr-xactionpack/test/template/date_helper_test.rb59
-rw-r--r--actionpack/test/template/form_helper_test.rb11
-rw-r--r--actionpack/test/template/form_options_helper_test.rb5
-rw-r--r--actionpack/test/template/form_tag_helper_test.rb8
-rw-r--r--actionpack/test/template/javascript_helper_test.rb10
-rw-r--r--actionpack/test/template/number_helper_test.rb4
-rw-r--r--actionpack/test/template/prototype_helper_test.rb56
-rw-r--r--actionpack/test/template/record_tag_helper_test.rb11
-rw-r--r--actionpack/test/template/sanitize_helper_test.rb5
-rw-r--r--actionpack/test/template/scriptaculous_helper_test.rb14
-rw-r--r--actionpack/test/template/tag_helper_test.rb7
-rw-r--r--actionpack/test/template/template_object_test.rb2
-rw-r--r--actionpack/test/template/test_test.rb56
-rw-r--r--actionpack/test/template/text_helper_test.rb5
-rw-r--r--actionpack/test/template/url_helper_test.rb18
29 files changed, 258 insertions, 202 deletions
diff --git a/actionpack/test/abstract_unit.rb b/actionpack/test/abstract_unit.rb
index 700bc1f5e3..fa1c3293b4 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'
@@ -19,7 +20,6 @@ end
ActiveSupport::Deprecation.debug = true
ActionController::Base.logger = nil
-ActionController::Base.ignore_missing_templates = false
ActionController::Routing::Routes.reload rescue nil
diff --git a/actionpack/test/controller/caching_test.rb b/actionpack/test/controller/caching_test.rb
index 7bd64e2870..ddc1c68383 100644
--- a/actionpack/test/controller/caching_test.rb
+++ b/actionpack/test/controller/caching_test.rb
@@ -8,7 +8,8 @@ ActionController::Base.page_cache_directory = FILE_STORE_PATH
ActionController::Base.cache_store = :file_store, FILE_STORE_PATH
class PageCachingTestController < ActionController::Base
- caches_page :ok, :no_content, :found, :not_found
+ caches_page :ok, :no_content, :if => Proc.new { |c| !c.request.format.json? }
+ caches_page :found, :not_found
def ok
head :ok
@@ -127,6 +128,12 @@ class PageCachingTest < Test::Unit::TestCase
end
end
end
+
+ def test_page_caching_conditional_options
+ @request.env['HTTP_ACCEPT'] = 'application/json'
+ get :ok
+ assert_page_not_cached :ok
+ end
private
def assert_page_cached(action, message = "#{action} should have been cached")
diff --git a/actionpack/test/controller/cookie_test.rb b/actionpack/test/controller/cookie_test.rb
index 0483fe918a..42f3bd26a4 100644
--- a/actionpack/test/controller/cookie_test.rb
+++ b/actionpack/test/controller/cookie_test.rb
@@ -37,7 +37,7 @@ class CookieTest < Test::Unit::TestCase
end
def rescue_action(e)
- raise unless ActionController::MissingTemplate # No templates here, and we don't care about the output
+ raise unless ActionView::MissingTemplate # No templates here, and we don't care about the output
end
end
diff --git a/actionpack/test/controller/custom_handler_test.rb b/actionpack/test/controller/custom_handler_test.rb
index cf1e2361bd..ac484ae17e 100644
--- a/actionpack/test/controller/custom_handler_test.rb
+++ b/actionpack/test/controller/custom_handler_test.rb
@@ -20,7 +20,7 @@ class CustomHandlerTest < Test::Unit::TestCase
end
def test_custom_render
- template = ActionView::Template.new(@view, "hello <%= one %>", false, { :one => "two" }, true, "foo")
+ template = ActionView::InlineTemplate.new(@view, "hello <%= one %>", { :one => "two" }, "foo")
result = @view.render_template(template)
assert_equal(
@@ -29,7 +29,7 @@ class CustomHandlerTest < Test::Unit::TestCase
end
def test_custom_render2
- template = ActionView::Template.new(@view, "hello <%= one %>", false, { :one => "two" }, true, "foo2")
+ template = ActionView::InlineTemplate.new(@view, "hello <%= one %>", { :one => "two" }, "foo2")
result = @view.render_template(template)
assert_equal(
[ "hello <%= one %>", { :one => "two" }, @view ],
@@ -38,7 +38,7 @@ class CustomHandlerTest < Test::Unit::TestCase
def test_unhandled_extension
# uses the ERb handler by default if the extension isn't recognized
- template = ActionView::Template.new(@view, "hello <%= one %>", false, { :one => "two" }, true, "bar")
+ template = ActionView::InlineTemplate.new(@view, "hello <%= one %>", { :one => "two" }, "bar")
result = @view.render_template(template)
assert_equal "hello two", result
end
diff --git a/actionpack/test/controller/dispatcher_test.rb b/actionpack/test/controller/dispatcher_test.rb
index c4f49f1e16..eea0813ed5 100644
--- a/actionpack/test/controller/dispatcher_test.rb
+++ b/actionpack/test/controller/dispatcher_test.rb
@@ -11,7 +11,13 @@ class DispatcherTest < Test::Unit::TestCase
@output = StringIO.new
ENV['REQUEST_METHOD'] = 'GET'
+ # Clear callbacks as they are redefined by Dispatcher#define_dispatcher_callbacks
Dispatcher.instance_variable_set("@prepare_dispatch_callbacks", ActiveSupport::Callbacks::CallbackChain.new)
+ Dispatcher.instance_variable_set("@before_dispatch_callbacks", ActiveSupport::Callbacks::CallbackChain.new)
+ Dispatcher.instance_variable_set("@after_dispatch_callbacks", ActiveSupport::Callbacks::CallbackChain.new)
+
+ Dispatcher.stubs(:require_dependency)
+
@dispatcher = Dispatcher.new(@output)
end
@@ -20,17 +26,13 @@ class DispatcherTest < Test::Unit::TestCase
end
def test_clears_dependencies_after_dispatch_if_in_loading_mode
- Dependencies.stubs(:load?).returns(true)
-
ActionController::Routing::Routes.expects(:reload).once
Dependencies.expects(:clear).once
- dispatch
+ dispatch(@output, false)
end
def test_leaves_dependencies_after_dispatch_if_not_in_loading_mode
- Dependencies.stubs(:load?).returns(false)
-
ActionController::Routing::Routes.expects(:reload).never
Dependencies.expects(:clear).never
@@ -51,40 +53,25 @@ class DispatcherTest < Test::Unit::TestCase
assert_equal "Status: 400 Bad Request\r\nContent-Type: text/html\r\n\r\n<html><body><h1>400 Bad Request</h1></body></html>", @output.string
end
- def test_reload_application_sets_unprepared_if_loading_dependencies
- Dependencies.stubs(:load?).returns(false)
- ActionController::Routing::Routes.expects(:reload).never
- @dispatcher.unprepared = false
- @dispatcher.send!(:reload_application)
- assert !@dispatcher.unprepared
-
- Dependencies.stubs(:load?).returns(true)
- ActionController::Routing::Routes.expects(:reload).once
- @dispatcher.send!(:reload_application)
- assert @dispatcher.unprepared
- end
-
- def test_prepare_application_runs_callbacks_if_unprepared
+ def test_prepare_callbacks
a = b = c = nil
Dispatcher.to_prepare { |*args| a = b = c = 1 }
Dispatcher.to_prepare { |*args| b = c = 2 }
Dispatcher.to_prepare { |*args| c = 3 }
- # Skip the callbacks when already prepared.
- @dispatcher.unprepared = false
- @dispatcher.send! :prepare_application
+ # Ensure to_prepare callbacks are not run when defined
assert_nil a || b || c
- # Perform the callbacks when unprepared.
- @dispatcher.unprepared = true
- @dispatcher.send! :prepare_application
+ # Run callbacks
+ @dispatcher.send :run_callbacks, :prepare_dispatch
+
assert_equal 1, a
assert_equal 2, b
assert_equal 3, c
- # But when not :load, make sure they are only run once
+ # Make sure they are only run once
a = b = c = nil
- @dispatcher.send! :prepare_application
+ @dispatcher.send :dispatch
assert_nil a || b || c
end
@@ -93,28 +80,20 @@ class DispatcherTest < Test::Unit::TestCase
Dispatcher.to_prepare(:unique_id) { |*args| a = b = 1 }
Dispatcher.to_prepare(:unique_id) { |*args| a = 2 }
- @dispatcher.unprepared = true
- @dispatcher.send! :prepare_application
+ @dispatcher.send :run_callbacks, :prepare_dispatch
assert_equal 2, a
assert_equal nil, b
end
- def test_to_prepare_only_runs_once_if_not_loading_dependencies
- Dependencies.stubs(:load?).returns(false)
- called = 0
- Dispatcher.to_prepare(:unprepared_test) { |*args| called += 1 }
- 2.times { dispatch }
- assert_equal 1, called
- end
-
private
- def dispatch(output = @output)
+ def dispatch(output = @output, cache_classes = true)
controller = mock
controller.stubs(:process).returns(controller)
controller.stubs(:out).with(output).returns('response')
ActionController::Routing::Routes.stubs(:recognize).returns(controller)
+ Dispatcher.define_dispatcher_callbacks(cache_classes)
Dispatcher.dispatch(nil, {}, output)
end
diff --git a/actionpack/test/controller/flash_test.rb b/actionpack/test/controller/flash_test.rb
index f672f2f427..e562531bf3 100644
--- a/actionpack/test/controller/flash_test.rb
+++ b/actionpack/test/controller/flash_test.rb
@@ -52,7 +52,7 @@ class FlashTest < Test::Unit::TestCase
end
def rescue_action(e)
- raise unless ActionController::MissingTemplate === e
+ raise unless ActionView::MissingTemplate === e
end
# methods for test_sweep_after_halted_filter_chain
diff --git a/actionpack/test/controller/layout_test.rb b/actionpack/test/controller/layout_test.rb
index 145543a357..3dc311b78a 100644
--- a/actionpack/test/controller/layout_test.rb
+++ b/actionpack/test/controller/layout_test.rb
@@ -216,7 +216,7 @@ class LayoutExceptionRaised < Test::Unit::TestCase
@controller = SetsNonExistentLayoutFile.new
get :hello
@response.template.class.module_eval { attr_accessor :exception }
- assert_equal ActionController::MissingTemplate, @response.template.exception.class
+ assert_equal ActionView::MissingTemplate, @response.template.exception.class
end
end
diff --git a/actionpack/test/controller/mime_responds_test.rb b/actionpack/test/controller/mime_responds_test.rb
index c34643ddd5..c617cb2e84 100644
--- a/actionpack/test/controller/mime_responds_test.rb
+++ b/actionpack/test/controller/mime_responds_test.rb
@@ -468,7 +468,7 @@ class MimeControllerTest < Test::Unit::TestCase
assert_equal '<html><div id="html_missing">Hello future from Firefox!</div></html>', @response.body
@request.env["HTTP_ACCEPT"] = "text/iphone"
- assert_raises(ActionController::MissingTemplate) { get :iphone_with_html_response_type_without_layout }
+ assert_raises(ActionView::MissingTemplate) { get :iphone_with_html_response_type_without_layout }
end
end
diff --git a/actionpack/test/controller/new_render_test.rb b/actionpack/test/controller/new_render_test.rb
index 342e2e7f87..8e39057f55 100644
--- a/actionpack/test/controller/new_render_test.rb
+++ b/actionpack/test/controller/new_render_test.rb
@@ -239,6 +239,14 @@ class NewRenderTestController < ActionController::Base
render :inline => "Hello: <%= params[:name] %>"
end
+ def accessing_request_in_template
+ render :inline => "Hello: <%= request.host %>"
+ end
+
+ def accessing_logger_in_template
+ render :inline => "<%= logger.class %>"
+ end
+
def accessing_params_in_template_with_layout
render :layout => nil, :inline => "Hello: <%= params[:name] %>"
end
@@ -529,26 +537,13 @@ class NewRenderTest < Test::Unit::TestCase
end
def test_access_to_request_in_view
- view_internals_old_value = ActionController::Base.view_controller_internals
-
- ActionController::Base.view_controller_internals = false
- ActionController::Base.protected_variables_cache = nil
-
- get :hello_world
- assert !assigns.include?('_request'), '_request should not be in assigns'
- assert !assigns.include?('request'), 'request should not be in assigns'
-
- ActionController::Base.view_controller_internals = true
- ActionController::Base.protected_variables_cache = nil
-
- get :hello_world
- assert !assigns.include?('request'), 'request should not be in assigns'
- assert_kind_of ActionController::AbstractRequest, assigns['_request']
- assert_kind_of ActionController::AbstractRequest, @response.template.request
+ get :accessing_request_in_template
+ assert_equal "Hello: www.nextangle.com", @response.body
+ end
- ensure
- ActionController::Base.view_controller_internals = view_internals_old_value
- ActionController::Base.protected_variables_cache = nil
+ def test_access_to_logger_in_view
+ get :accessing_logger_in_template
+ assert_equal "Logger", @response.body
end
def test_render_xml
@@ -652,7 +647,7 @@ EOS
end
def test_bad_render_to_string_still_throws_exception
- assert_raises(ActionController::MissingTemplate) { get :render_to_string_with_exception }
+ assert_raises(ActionView::MissingTemplate) { get :render_to_string_with_exception }
end
def test_render_to_string_that_throws_caught_exception_doesnt_break_assigns
@@ -787,7 +782,7 @@ EOS
end
def test_render_missing_partial_template
- assert_raises(ActionView::ActionViewError) do
+ assert_raises(ActionView::MissingTemplate) do
get :missing_partial
end
end
diff --git a/actionpack/test/controller/rescue_test.rb b/actionpack/test/controller/rescue_test.rb
index 011992474f..27fcc5e04c 100644
--- a/actionpack/test/controller/rescue_test.rb
+++ b/actionpack/test/controller/rescue_test.rb
@@ -279,7 +279,7 @@ class RescueTest < Test::Unit::TestCase
assert_equal ActionController::Rescue::DEFAULT_RESCUE_TEMPLATE, templates.default
assert_equal ActionController::Rescue::DEFAULT_RESCUE_TEMPLATE, templates[Exception.new]
- assert_equal 'missing_template', templates[ActionController::MissingTemplate.name]
+ assert_equal 'missing_template', templates[ActionView::MissingTemplate.name]
assert_equal 'routing_error', templates[ActionController::RoutingError.name]
assert_equal 'unknown_action', templates[ActionController::UnknownAction.name]
assert_equal 'template_error', templates[ActionView::TemplateError.name]
diff --git a/actionpack/test/controller/resources_test.rb b/actionpack/test/controller/resources_test.rb
index 0f1ac30f04..b138cee29f 100644
--- a/actionpack/test/controller/resources_test.rb
+++ b/actionpack/test/controller/resources_test.rb
@@ -209,6 +209,23 @@ class ResourcesTest < Test::Unit::TestCase
end
end
+ def test_member_when_override_paths_for_default_restful_actions_with
+ [:put, :post].each do |method|
+ with_restful_routing :messages, :member => { :mark => method }, :path_names => {:new => 'nuevo'} do
+ mark_options = {:action => 'mark', :id => '1', :controller => "messages"}
+ mark_path = "/messages/1/mark"
+
+ assert_restful_routes_for :messages, :path_names => {:new => 'nuevo'} do |options|
+ assert_recognizes(options.merge(mark_options), :path => mark_path, :method => method)
+ end
+
+ assert_restful_named_routes_for :messages, :path_names => {:new => 'nuevo'} do |options|
+ assert_named_route mark_path, :mark_message_path, mark_options
+ end
+ end
+ end
+ end
+
def test_with_two_member_actions_with_same_method
[:put, :post].each do |method|
with_restful_routing :messages, :member => { :mark => method, :unmark => method } do
@@ -674,11 +691,18 @@ class ResourcesTest < Test::Unit::TestCase
options[:options] ||= {}
options[:options][:controller] = options[:controller] || controller_name.to_s
+ new_action = "new"
+ edit_action = "edit"
+ if options[:path_names]
+ new_action = options[:path_names][:new] || "new"
+ edit_action = options[:path_names][:edit] || "edit"
+ end
+
collection_path = "/#{options[:path_prefix]}#{options[:as] || controller_name}"
member_path = "#{collection_path}/1"
- new_path = "#{collection_path}/new"
- edit_member_path = "#{member_path}/edit"
- formatted_edit_member_path = "#{member_path}/edit.xml"
+ new_path = "#{collection_path}/#{new_action}"
+ edit_member_path = "#{member_path}/#{edit_action}"
+ formatted_edit_member_path = "#{member_path}/#{edit_action}.xml"
with_options(options[:options]) do |controller|
controller.assert_routing collection_path, :action => 'index'
@@ -730,15 +754,22 @@ class ResourcesTest < Test::Unit::TestCase
full_prefix = "/#{options[:path_prefix]}#{options[:as] || controller_name}"
name_prefix = options[:name_prefix]
+ new_action = "new"
+ edit_action = "edit"
+ if options[:path_names]
+ new_action = options[:path_names][:new] || "new"
+ edit_action = options[:path_names][:edit] || "edit"
+ end
+
assert_named_route "#{full_prefix}", "#{name_prefix}#{controller_name}_path", options[:options]
assert_named_route "#{full_prefix}.xml", "formatted_#{name_prefix}#{controller_name}_path", options[:options].merge( :format => 'xml')
assert_named_route "#{full_prefix}/1", "#{name_prefix}#{singular_name}_path", options[:options].merge(:id => '1')
assert_named_route "#{full_prefix}/1.xml", "formatted_#{name_prefix}#{singular_name}_path", options[:options].merge(:id => '1', :format => 'xml')
- assert_named_route "#{full_prefix}/new", "new_#{name_prefix}#{singular_name}_path", options[:options]
- assert_named_route "#{full_prefix}/new.xml", "formatted_new_#{name_prefix}#{singular_name}_path", options[:options].merge( :format => 'xml')
- assert_named_route "#{full_prefix}/1/edit", "edit_#{name_prefix}#{singular_name}_path", options[:options].merge(:id => '1')
- assert_named_route "#{full_prefix}/1/edit.xml", "formatted_edit_#{name_prefix}#{singular_name}_path", options[:options].merge(:id => '1', :format => 'xml')
+ assert_named_route "#{full_prefix}/#{new_action}", "new_#{name_prefix}#{singular_name}_path", options[:options]
+ assert_named_route "#{full_prefix}/#{new_action}.xml", "formatted_new_#{name_prefix}#{singular_name}_path", options[:options].merge( :format => 'xml')
+ assert_named_route "#{full_prefix}/1/#{edit_action}", "edit_#{name_prefix}#{singular_name}_path", options[:options].merge(:id => '1')
+ assert_named_route "#{full_prefix}/1/#{edit_action}.xml", "formatted_edit_#{name_prefix}#{singular_name}_path", options[:options].merge(:id => '1', :format => 'xml')
yield options[:options] if block_given?
end
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..2373600bfe 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)
@@ -934,6 +933,24 @@ class DateHelperTest < Test::Unit::TestCase
assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), {}, :class => 'selector')
assert_dom_equal expected, select_time(Time.mktime(2003, 8, 16, 8, 4, 18), {:include_seconds => false}, :class => 'selector')
end
+
+ uses_mocha 'TestDatetimeAndTimeSelectUseTimeCurrentAsDefault' do
+ def test_select_datetime_uses_time_current_as_default
+ time = stub(:year => 2004, :month => 6, :day => 15, :hour => 16, :min => 35, :sec => 0)
+ Time.expects(:current).returns time
+ expects(:select_date).with(time, anything, anything).returns('')
+ expects(:select_time).with(time, anything, anything).returns('')
+ select_datetime
+ end
+
+ def test_select_time_uses_time_current_as_default
+ time = stub(:year => 2004, :month => 6, :day => 15, :hour => 16, :min => 35, :sec => 0)
+ Time.expects(:current).returns time
+ expects(:select_hour).with(time, anything, anything).returns('')
+ expects(:select_minute).with(time, anything, anything).returns('')
+ select_time
+ end
+ end
def test_date_select
@post = Post.new
@@ -1220,6 +1237,42 @@ class DateHelperTest < Test::Unit::TestCase
assert_dom_equal expected, datetime_select("post", "updated_at")
end
+
+ uses_mocha 'TestDatetimeSelectDefaultsToTimeZoneNowWhenConfigTimeZoneIsSet' do
+ def test_datetime_select_defaults_to_time_zone_now_when_config_time_zone_is_set
+ time = stub(:year => 2004, :month => 6, :day => 15, :hour => 16, :min => 35, :sec => 0)
+ time_zone = mock()
+ time_zone.expects(:now).returns time
+ Time.zone_default = time_zone
+ @post = Post.new
+
+ expected = %{<select id="post_updated_at_1i" name="post[updated_at(1i)]">\n}
+ expected << %{<option value="1999">1999</option>\n<option value="2000">2000</option>\n<option value="2001">2001</option>\n<option value="2002">2002</option>\n<option value="2003">2003</option>\n<option value="2004" selected="selected">2004</option>\n<option value="2005">2005</option>\n<option value="2006">2006</option>\n<option value="2007">2007</option>\n<option value="2008">2008</option>\n<option value="2009">2009</option>\n}
+ expected << "</select>\n"
+
+ expected << %{<select id="post_updated_at_2i" name="post[updated_at(2i)]">\n}
+ expected << %{<option value="1">January</option>\n<option value="2">February</option>\n<option value="3">March</option>\n<option value="4">April</option>\n<option value="5">May</option>\n<option value="6" selected="selected">June</option>\n<option value="7">July</option>\n<option value="8">August</option>\n<option value="9">September</option>\n<option value="10">October</option>\n<option value="11">November</option>\n<option value="12">December</option>\n}
+ expected << "</select>\n"
+
+ expected << %{<select id="post_updated_at_3i" name="post[updated_at(3i)]">\n}
+ expected << %{<option value="1">1</option>\n<option value="2">2</option>\n<option value="3">3</option>\n<option value="4">4</option>\n<option value="5">5</option>\n<option value="6">6</option>\n<option value="7">7</option>\n<option value="8">8</option>\n<option value="9">9</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15" selected="selected">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n}
+ expected << "</select>\n"
+
+ expected << " &mdash; "
+
+ expected << %{<select id="post_updated_at_4i" name="post[updated_at(4i)]">\n}
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16" selected="selected">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n}
+ expected << "</select>\n"
+ expected << " : "
+ expected << %{<select id="post_updated_at_5i" name="post[updated_at(5i)]">\n}
+ expected << %{<option value="00">00</option>\n<option value="01">01</option>\n<option value="02">02</option>\n<option value="03">03</option>\n<option value="04">04</option>\n<option value="05">05</option>\n<option value="06">06</option>\n<option value="07">07</option>\n<option value="08">08</option>\n<option value="09">09</option>\n<option value="10">10</option>\n<option value="11">11</option>\n<option value="12">12</option>\n<option value="13">13</option>\n<option value="14">14</option>\n<option value="15">15</option>\n<option value="16">16</option>\n<option value="17">17</option>\n<option value="18">18</option>\n<option value="19">19</option>\n<option value="20">20</option>\n<option value="21">21</option>\n<option value="22">22</option>\n<option value="23">23</option>\n<option value="24">24</option>\n<option value="25">25</option>\n<option value="26">26</option>\n<option value="27">27</option>\n<option value="28">28</option>\n<option value="29">29</option>\n<option value="30">30</option>\n<option value="31">31</option>\n<option value="32">32</option>\n<option value="33">33</option>\n<option value="34">34</option>\n<option value="35" selected="selected">35</option>\n<option value="36">36</option>\n<option value="37">37</option>\n<option value="38">38</option>\n<option value="39">39</option>\n<option value="40">40</option>\n<option value="41">41</option>\n<option value="42">42</option>\n<option value="43">43</option>\n<option value="44">44</option>\n<option value="45">45</option>\n<option value="46">46</option>\n<option value="47">47</option>\n<option value="48">48</option>\n<option value="49">49</option>\n<option value="50">50</option>\n<option value="51">51</option>\n<option value="52">52</option>\n<option value="53">53</option>\n<option value="54">54</option>\n<option value="55">55</option>\n<option value="56">56</option>\n<option value="57">57</option>\n<option value="58">58</option>\n<option value="59">59</option>\n}
+ expected << "</select>\n"
+
+ assert_dom_equal expected, datetime_select("post", "updated_at")
+ ensure
+ Time.zone_default = nil
+ end
+ end
def test_datetime_select_within_fields_for
@post = Post.new
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/template_object_test.rb b/actionpack/test/template/template_object_test.rb
index b3a33938cf..7adcde421f 100644
--- a/actionpack/test/template/template_object_test.rb
+++ b/actionpack/test/template/template_object_test.rb
@@ -82,7 +82,7 @@ class TemplateObjectTest < Test::Unit::TestCase
def test_xml
@view.template_format = :xml
- assert_raise ActionView::ActionViewError do
+ assert_raise ActionView::MissingTemplate do
ActionView::PartialTemplate.new(@view, @path, nil)
end
end
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