aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/abstract_controller/abstract_controller_test.rb5
-rw-r--r--actionpack/test/abstract_controller/layouts_test.rb9
-rw-r--r--actionpack/test/abstract_unit.rb111
-rw-r--r--actionpack/test/controller/content_type_test.rb4
-rw-r--r--actionpack/test/controller/layout_test.rb9
-rw-r--r--actionpack/test/controller/mime_responds_test.rb5
-rw-r--r--actionpack/test/controller/send_file_test.rb10
-rw-r--r--actionpack/test/new_base/abstract_unit.rb173
-rw-r--r--actionpack/test/new_base/render_text_test.rb4
-rw-r--r--actionpack/test/new_base/test_helper.rb12
-rw-r--r--actionpack/test/old_base/abstract_unit.rb46
-rw-r--r--actionpack/test/template/asset_tag_helper_test.rb30
12 files changed, 175 insertions, 243 deletions
diff --git a/actionpack/test/abstract_controller/abstract_controller_test.rb b/actionpack/test/abstract_controller/abstract_controller_test.rb
index 05b55216c8..56ec6a6a31 100644
--- a/actionpack/test/abstract_controller/abstract_controller_test.rb
+++ b/actionpack/test/abstract_controller/abstract_controller_test.rb
@@ -136,11 +136,6 @@ module AbstractController
class WithLayouts < PrefixedViews
include Layouts
- def self.inherited(klass)
- klass._write_layout_method
- super
- end
-
private
def self.layout(formats)
begin
diff --git a/actionpack/test/abstract_controller/layouts_test.rb b/actionpack/test/abstract_controller/layouts_test.rb
index 64c435abb7..37eb55ec98 100644
--- a/actionpack/test/abstract_controller/layouts_test.rb
+++ b/actionpack/test/abstract_controller/layouts_test.rb
@@ -141,15 +141,6 @@ module AbstractControllerTests
end
end
- # TODO Move to bootloader
- AbstractController::Base.descendants.each do |klass|
- klass = klass.constantize
- next unless klass < AbstractController::Layouts
- klass.class_eval do
- _write_layout_method
- end
- end
-
class TestBase < ActiveSupport::TestCase
test "when no layout is specified, and no default is available, render without a layout" do
result = Blank.new.process(:index)
diff --git a/actionpack/test/abstract_unit.rb b/actionpack/test/abstract_unit.rb
index c71da7fa6c..1333a9d71a 100644
--- a/actionpack/test/abstract_unit.rb
+++ b/actionpack/test/abstract_unit.rb
@@ -1,19 +1,26 @@
-if ENV['new_base']
- puts *caller
- raise 'new_base/abstract_unit already loaded'
-end
$:.unshift(File.dirname(__FILE__) + '/../lib')
$:.unshift(File.dirname(__FILE__) + '/../../activesupport/lib')
+$:.unshift(File.dirname(__FILE__) + '/lib')
+
$:.unshift(File.dirname(__FILE__) + '/fixtures/helpers')
$:.unshift(File.dirname(__FILE__) + '/fixtures/alternate_helpers')
-require 'rubygems'
-require 'yaml'
-require 'stringio'
+ENV['new_base'] = "true"
+$stderr.puts "Running old tests on new_base"
+
require 'test/unit'
+require 'active_support'
+
+require 'active_support/test_case'
+require 'action_controller/abstract'
+require 'action_controller'
+require 'fixture_template'
+require 'action_controller/testing/process'
+require 'action_view/test_case'
+require 'action_controller/testing/integration'
+require 'active_support/dependencies'
-gem 'mocha', '>= 0.9.5'
-require 'mocha'
+$tags[:new_base] = true
begin
require 'ruby-debug'
@@ -23,24 +30,88 @@ rescue LoadError
# Debugging disabled. `gem install ruby-debug` to enable.
end
-require 'action_controller'
-require 'action_controller/testing/process'
-require 'action_view/test_case'
-
-$tags[:old_base] = true
+ActiveSupport::Dependencies.hook!
# Show backtraces for deprecated behavior for quicker cleanup.
ActiveSupport::Deprecation.debug = true
-ActionController::Base.logger = nil
-ActionController::Routing::Routes.reload rescue nil
-
-ActionController::Base.session_store = nil
-
# Register danish language for testing
I18n.backend.store_translations 'da', {}
I18n.backend.store_translations 'pt-BR', {}
ORIGINAL_LOCALES = I18n.available_locales.map {|locale| locale.to_s }.sort
FIXTURE_LOAD_PATH = File.join(File.dirname(__FILE__), 'fixtures')
-ActionController::Base.view_paths = FIXTURE_LOAD_PATH
+
+module ActionView
+ class TestCase
+ setup do
+ ActionController::Routing::Routes.draw do |map|
+ map.connect ':controller/:action/:id'
+ end
+ end
+ end
+end
+
+module ActionController
+ Base.session = {
+ :key => '_testing_session',
+ :secret => '8273f16463985e2b3747dc25e30f2528'
+ }
+ Base.session_store = nil
+
+ class Base
+ include ActionController::Testing
+ end
+
+ Base.view_paths = FIXTURE_LOAD_PATH
+
+ class TestCase
+ include TestProcess
+ setup do
+ ActionController::Routing::Routes.draw do |map|
+ map.connect ':controller/:action/:id'
+ end
+ end
+
+ def assert_template(options = {}, message = nil)
+ validate_request!
+
+ hax = @controller._action_view.instance_variable_get(:@_rendered)
+
+ case options
+ when NilClass, String
+ rendered = (hax[:template] || []).map { |t| t.identifier }
+ msg = build_message(message,
+ "expecting <?> but rendering with <?>",
+ options, rendered.join(', '))
+ assert_block(msg) do
+ if options.nil?
+ hax[:template].blank?
+ else
+ rendered.any? { |t| t.match(options) }
+ end
+ end
+ when Hash
+ if expected_partial = options[:partial]
+ partials = hax[:partials]
+ if expected_count = options[:count]
+ found = partials.detect { |p, _| p.identifier.match(expected_partial) }
+ actual_count = found.nil? ? 0 : found.second
+ msg = build_message(message,
+ "expecting ? to be rendered ? time(s) but rendered ? time(s)",
+ expected_partial, expected_count, actual_count)
+ assert(actual_count == expected_count.to_i, msg)
+ else
+ msg = build_message(message,
+ "expecting partial <?> but action rendered <?>",
+ options[:partial], partials.keys)
+ assert(partials.keys.any? { |p| p.identifier.match(expected_partial) }, msg)
+ end
+ else
+ assert hax[:partials].empty?,
+ "Expected no partials to be rendered"
+ end
+ end
+ end
+ end
+end
diff --git a/actionpack/test/controller/content_type_test.rb b/actionpack/test/controller/content_type_test.rb
index d622ac1e85..511788aec8 100644
--- a/actionpack/test/controller/content_type_test.rb
+++ b/actionpack/test/controller/content_type_test.rb
@@ -83,14 +83,14 @@ class ContentTypeTest < ActionController::TestCase
# :ported:
def test_content_type_from_body
get :render_content_type_from_body
- assert_equal "application/rss+xml", @response.content_type
+ assert_equal Mime::RSS, @response.content_type
assert_equal "utf-8", @response.charset
end
# :ported:
def test_content_type_from_render
get :render_content_type_from_render
- assert_equal "application/rss+xml", @response.content_type
+ assert_equal Mime::RSS, @response.content_type
assert_equal "utf-8", @response.charset
end
diff --git a/actionpack/test/controller/layout_test.rb b/actionpack/test/controller/layout_test.rb
index cb9bdf57bb..c3d7b0778d 100644
--- a/actionpack/test/controller/layout_test.rb
+++ b/actionpack/test/controller/layout_test.rb
@@ -38,15 +38,6 @@ end
class MultipleExtensions < LayoutTest
end
-if defined?(ActionController::Http)
- LayoutTest._write_layout_method
- ProductController._write_layout_method
- ItemController._write_layout_method
- ThirdPartyTemplateLibraryController._write_layout_method
- MultipleExtensions._write_layout_method
- ControllerNameSpace::NestedController._write_layout_method
-end
-
class LayoutAutoDiscoveryTest < ActionController::TestCase
def setup
super
diff --git a/actionpack/test/controller/mime_responds_test.rb b/actionpack/test/controller/mime_responds_test.rb
index 56b49251c6..0c6822a5b1 100644
--- a/actionpack/test/controller/mime_responds_test.rb
+++ b/actionpack/test/controller/mime_responds_test.rb
@@ -512,11 +512,6 @@ class SuperPostController < PostController
end
end
-if defined?(ActionController::Http)
- PostController._write_layout_method
- SuperPostController._write_layout_method
-end
-
class MimeControllerLayoutsTest < ActionController::TestCase
tests PostController
diff --git a/actionpack/test/controller/send_file_test.rb b/actionpack/test/controller/send_file_test.rb
index 0bc0eb2df6..4134da3b9e 100644
--- a/actionpack/test/controller/send_file_test.rb
+++ b/actionpack/test/controller/send_file_test.rb
@@ -91,10 +91,10 @@ class SendFileTest < ActionController::TestCase
def test_headers_after_send_shouldnt_include_charset
response = process('data')
- assert_equal "application/octet-stream", response.content_type
+ assert_equal "application/octet-stream", response.headers["Content-Type"]
response = process('file')
- assert_equal "application/octet-stream", response.content_type
+ assert_equal "application/octet-stream", response.headers["Content-Type"]
end
# Test that send_file_headers! is setting the correct HTTP headers.
@@ -116,7 +116,7 @@ class SendFileTest < ActionController::TestCase
h = @controller.headers
assert_equal 1, h['Content-Length']
- assert_equal 'image/png', h['Content-Type']
+ assert_equal 'image/png', @controller.content_type
assert_equal 'disposition; filename="filename"', h['Content-Disposition']
assert_equal 'binary', h['Content-Transfer-Encoding']
@@ -136,9 +136,7 @@ class SendFileTest < ActionController::TestCase
@controller.headers = {}
@controller.send(:send_file_headers!, options)
- headers = @controller.headers
-
- assert_equal 'image/png', headers['Content-Type']
+ assert_equal 'image/png', @controller.content_type
end
diff --git a/actionpack/test/new_base/abstract_unit.rb b/actionpack/test/new_base/abstract_unit.rb
deleted file mode 100644
index 7d72f8393b..0000000000
--- a/actionpack/test/new_base/abstract_unit.rb
+++ /dev/null
@@ -1,173 +0,0 @@
-$:.unshift(File.dirname(__FILE__) + '/../../lib')
-$:.unshift(File.dirname(__FILE__) + '/../../../activesupport/lib')
-$:.unshift(File.dirname(__FILE__) + '/../lib')
-
-$:.unshift(File.dirname(__FILE__) + '/../fixtures/helpers')
-$:.unshift(File.dirname(__FILE__) + '/../fixtures/alternate_helpers')
-
-ENV['new_base'] = "true"
-$stderr.puts "Running old tests on new_base"
-
-require 'test/unit'
-require 'active_support'
-
-require 'active_support/test_case'
-require 'action_controller/abstract'
-require 'action_controller/new_base'
-require 'fixture_template'
-require 'action_controller/testing/process2'
-require 'action_view/test_case'
-require 'action_controller/testing/integration'
-require 'active_support/dependencies'
-
-$tags[:new_base] = true
-
-begin
- require 'ruby-debug'
- Debugger.settings[:autoeval] = true
- Debugger.start
-rescue LoadError
- # Debugging disabled. `gem install ruby-debug` to enable.
-end
-
-ActiveSupport::Dependencies.hook!
-
-# Show backtraces for deprecated behavior for quicker cleanup.
-ActiveSupport::Deprecation.debug = true
-
-# Register danish language for testing
-I18n.backend.store_translations 'da', {}
-I18n.backend.store_translations 'pt-BR', {}
-ORIGINAL_LOCALES = I18n.available_locales.map {|locale| locale.to_s }.sort
-
-FIXTURE_LOAD_PATH = File.join(File.dirname(__FILE__), '../fixtures')
-
-module ActionView
- class TestCase
- setup do
- ActionController::Routing::Routes.draw do |map|
- map.connect ':controller/:action/:id'
- end
- end
- end
-end
-
-module ActionController
- Base.session = {
- :key => '_testing_session',
- :secret => '8273f16463985e2b3747dc25e30f2528'
-}
-
- class ActionControllerError < StandardError #:nodoc:
- end
-
- class SessionRestoreError < ActionControllerError #:nodoc:
- end
-
- class RenderError < ActionControllerError #:nodoc:
- end
-
- class RoutingError < ActionControllerError #:nodoc:
- attr_reader :failures
- def initialize(message, failures=[])
- super(message)
- @failures = failures
- end
- end
-
- class MethodNotAllowed < ActionControllerError #:nodoc:
- attr_reader :allowed_methods
-
- def initialize(*allowed_methods)
- super("Only #{allowed_methods.to_sentence(:locale => :en)} requests are allowed.")
- @allowed_methods = allowed_methods
- end
-
- def allowed_methods_header
- allowed_methods.map { |method_symbol| method_symbol.to_s.upcase } * ', '
- end
-
- def handle_response!(response)
- response.headers['Allow'] ||= allowed_methods_header
- end
- end
-
- class NotImplemented < MethodNotAllowed #:nodoc:
- end
-
- class UnknownController < ActionControllerError #:nodoc:
- end
-
- class MissingFile < ActionControllerError #:nodoc:
- end
-
- class RenderError < ActionControllerError #:nodoc:
- end
-
- class SessionOverflowError < ActionControllerError #:nodoc:
- DEFAULT_MESSAGE = 'Your session data is larger than the data column in which it is to be stored. You must increase the size of your data column if you intend to store large data.'
-
- def initialize(message = nil)
- super(message || DEFAULT_MESSAGE)
- end
- end
-
- class UnknownHttpMethod < ActionControllerError #:nodoc:
- end
-
- class Base
- include ActionController::Testing
- end
-
- Base.view_paths = FIXTURE_LOAD_PATH
-
- class TestCase
- include TestProcess
- setup do
- ActionController::Routing::Routes.draw do |map|
- map.connect ':controller/:action/:id'
- end
- end
-
- def assert_template(options = {}, message = nil)
- validate_request!
-
- hax = @controller._action_view.instance_variable_get(:@_rendered)
-
- case options
- when NilClass, String
- rendered = (hax[:template] || []).map { |t| t.identifier }
- msg = build_message(message,
- "expecting <?> but rendering with <?>",
- options, rendered.join(', '))
- assert_block(msg) do
- if options.nil?
- hax[:template].blank?
- else
- rendered.any? { |t| t.match(options) }
- end
- end
- when Hash
- if expected_partial = options[:partial]
- partials = hax[:partials]
- if expected_count = options[:count]
- found = partials.detect { |p, _| p.identifier.match(expected_partial) }
- actual_count = found.nil? ? 0 : found.second
- msg = build_message(message,
- "expecting ? to be rendered ? time(s) but rendered ? time(s)",
- expected_partial, expected_count, actual_count)
- assert(actual_count == expected_count.to_i, msg)
- else
- msg = build_message(message,
- "expecting partial <?> but action rendered <?>",
- options[:partial], partials.keys)
- assert(partials.keys.any? { |p| p.identifier.match(expected_partial) }, msg)
- end
- else
- assert hax[:partials].empty?,
- "Expected no partials to be rendered"
- end
- end
- end
- end
-end
diff --git a/actionpack/test/new_base/render_text_test.rb b/actionpack/test/new_base/render_text_test.rb
index ffc149283b..4a90eaac40 100644
--- a/actionpack/test/new_base/render_text_test.rb
+++ b/actionpack/test/new_base/render_text_test.rb
@@ -134,6 +134,4 @@ module RenderText
assert_status 200
end
end
-end
-
-ActionController::Base.app_loaded!
+end \ No newline at end of file
diff --git a/actionpack/test/new_base/test_helper.rb b/actionpack/test/new_base/test_helper.rb
index d92029df7f..9271b2dd59 100644
--- a/actionpack/test/new_base/test_helper.rb
+++ b/actionpack/test/new_base/test_helper.rb
@@ -16,8 +16,7 @@ rescue LoadError
# Debugging disabled. `gem install ruby-debug` to enable.
end
-require 'action_controller/abstract'
-require 'action_controller/new_base'
+require 'action_controller'
require 'pp' # require 'pp' early to prevent hidden_methods from not picking up the pretty-print methods until too late
require 'action_controller/testing/process'
@@ -42,15 +41,6 @@ class Rack::TestCase < ActionController::IntegrationTest
end
ActionController::Routing.use_controllers!(controllers)
-
- # Move into a bootloader
- ActionController::Base.subclasses.each do |klass|
- klass = klass.constantize
- next unless klass < AbstractController::Layouts
- klass.class_eval do
- _write_layout_method
- end
- end
end
def app
diff --git a/actionpack/test/old_base/abstract_unit.rb b/actionpack/test/old_base/abstract_unit.rb
new file mode 100644
index 0000000000..c71da7fa6c
--- /dev/null
+++ b/actionpack/test/old_base/abstract_unit.rb
@@ -0,0 +1,46 @@
+if ENV['new_base']
+ puts *caller
+ raise 'new_base/abstract_unit already loaded'
+end
+$:.unshift(File.dirname(__FILE__) + '/../lib')
+$:.unshift(File.dirname(__FILE__) + '/../../activesupport/lib')
+$:.unshift(File.dirname(__FILE__) + '/fixtures/helpers')
+$:.unshift(File.dirname(__FILE__) + '/fixtures/alternate_helpers')
+
+require 'rubygems'
+require 'yaml'
+require 'stringio'
+require 'test/unit'
+
+gem 'mocha', '>= 0.9.5'
+require 'mocha'
+
+begin
+ require 'ruby-debug'
+ Debugger.settings[:autoeval] = true
+ Debugger.start
+rescue LoadError
+ # Debugging disabled. `gem install ruby-debug` to enable.
+end
+
+require 'action_controller'
+require 'action_controller/testing/process'
+require 'action_view/test_case'
+
+$tags[:old_base] = true
+
+# Show backtraces for deprecated behavior for quicker cleanup.
+ActiveSupport::Deprecation.debug = true
+
+ActionController::Base.logger = nil
+ActionController::Routing::Routes.reload rescue nil
+
+ActionController::Base.session_store = nil
+
+# Register danish language for testing
+I18n.backend.store_translations 'da', {}
+I18n.backend.store_translations 'pt-BR', {}
+ORIGINAL_LOCALES = I18n.available_locales.map {|locale| locale.to_s }.sort
+
+FIXTURE_LOAD_PATH = File.join(File.dirname(__FILE__), 'fixtures')
+ActionController::Base.view_paths = FIXTURE_LOAD_PATH
diff --git a/actionpack/test/template/asset_tag_helper_test.rb b/actionpack/test/template/asset_tag_helper_test.rb
index d586afdef6..f1dad9f50e 100644
--- a/actionpack/test/template/asset_tag_helper_test.rb
+++ b/actionpack/test/template/asset_tag_helper_test.rb
@@ -568,6 +568,36 @@ class AssetTagHelperTest < ActionView::TestCase
FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::ASSETS_DIR, 'absolute'))
end
+ def test_concat_stylesheet_link_tag_when_caching_off
+ ENV["RAILS_ASSET_ID"] = ""
+
+ assert_dom_equal(
+ %(<link href="/stylesheets/all.css" media="screen" rel="stylesheet" type="text/css" />),
+ stylesheet_link_tag(:all, :concat => true)
+ )
+
+ expected = Dir["#{ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR}/*.css"].map { |p| File.mtime(p) }.max
+ assert_equal expected, File.mtime(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'all.css'))
+
+ assert_dom_equal(
+ %(<link href="/stylesheets/money.css" media="screen" rel="stylesheet" type="text/css" />),
+ stylesheet_link_tag(:all, :concat => "money")
+ )
+
+ assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'money.css'))
+
+ assert_dom_equal(
+ %(<link href="/absolute/test.css" media="screen" rel="stylesheet" type="text/css" />),
+ stylesheet_link_tag(:all, :concat => "/absolute/test")
+ )
+
+ assert File.exist?(File.join(ActionView::Helpers::AssetTagHelper::ASSETS_DIR, 'absolute', 'test.css'))
+ ensure
+ FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'all.css'))
+ FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::STYLESHEETS_DIR, 'money.css'))
+ FileUtils.rm_f(File.join(ActionView::Helpers::AssetTagHelper::ASSETS_DIR, 'absolute'))
+ end
+
def test_caching_stylesheet_link_tag_when_caching_on_with_proc_asset_host
ENV["RAILS_ASSET_ID"] = ""
ActionController::Base.asset_host = Proc.new { |source| "http://a#{source.length}.example.com" }