1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

ActionPack components should no longer have undeclared dependencies.

* Tests can be run in isolation
  * Dependencies added
  * A few tests modified to avoid depending on AS deps 
    not depended on my files they were testing
This commit is contained in:
Yehuda Katz + Carl Lerche 2009-06-08 13:33:18 -07:00
parent 00ee990443
commit 86fc43fd58
16 changed files with 72 additions and 34 deletions

View file

@ -35,6 +35,14 @@ Rake::TestTask.new(:test_action_pack) do |t|
t.verbose = true
#t.warning = true
end
task :test_action_pack_isolated do
test_files = Dir.glob( "test/{controller,dispatch,template,html-scanner}/**/*_test.rb" ).sort
test_lib = test_lib_dirs.map { |lib| "-I#{lib}" }.join(' ')
test_files.map! { |f| "ruby #{test_lib} #{f}" }
exec test_files.join(" && ")
end
task :isolated_test do
ruby = File.join(*RbConfig::CONFIG.values_at('bindir', 'RUBY_INSTALL_NAME'))
Dir.glob("test/{controller,dispatch,template}/**/*_test.rb").all? do |file|

View file

@ -150,9 +150,9 @@ module ActionController
end
if only
@allowed_actions[:only] = Array(only).map(&:to_sym)
@allowed_actions[:only] = Array(only).map {|a| a.to_sym }
elsif except
@allowed_actions[:except] = Array(except).map(&:to_sym)
@allowed_actions[:except] = Array(except).map {|a| a.to_sym }
end
end

View file

@ -1,3 +1,4 @@
require "active_support/core_ext/kernel/requires"
begin
require_library_or_gem 'memcache'

View file

@ -1,3 +1,5 @@
require "active_support/core_ext/exception"
module ActionDispatch
class ShowExceptions
include StatusCodes

View file

@ -1,6 +1,8 @@
require 'cgi'
require 'action_view/helpers/form_helper'
require 'active_support/core_ext/class/attribute_accessors'
require 'active_support/core_ext/enumerable'
require 'active_support/core_ext/kernel/reporting'
module ActionView
class Base

View file

@ -1,4 +1,4 @@
require 'benchmark'
require 'active_support/core_ext/benchmark'
module ActionView
module Helpers

View file

@ -221,9 +221,9 @@ module ActionView
html_options = args.second
concat(link_to(capture(&block), options, html_options))
else
name = args.first
options = args.second || {}
html_options = args.third
name = args[0]
options = args[1] || {}
html_options = args[2]
url = url_for(options)

View file

@ -1,3 +1,5 @@
require "active_support/core_ext/enumerable"
module ActionView
# The TemplateError exception is raised when the compilation of the template fails. This exception then gathers a
# bunch of intimate details and uses it to report a very precise exception message.

View file

@ -127,7 +127,7 @@ class HelperTest < Test::Unit::TestCase
end
def test_all_helpers
methods = AllHelpersController.master_helper_module.instance_methods.map(&:to_s)
methods = AllHelpersController.master_helper_module.instance_methods.map {|m| m.to_s}
# abc_helper.rb
assert methods.include?('bare_a')
@ -171,11 +171,11 @@ class HelperTest < Test::Unit::TestCase
private
def expected_helper_methods
TestHelper.instance_methods.map(&:to_s)
TestHelper.instance_methods.map {|m| m.to_s }
end
def master_helper_methods
@controller_class.master_helper_module.instance_methods.map(&:to_s)
@controller_class.master_helper_module.instance_methods.map {|m| m.to_s }
end
def missing_methods

View file

@ -1623,13 +1623,13 @@ class RouteSetTest < Test::Unit::TestCase
set.draw { |m| m.connect ':controller/:action/:id' }
path, extras = set.generate_extras(:controller => "foo", :action => "bar", :id => 15, :this => "hello", :that => "world")
assert_equal "/foo/bar/15", path
assert_equal %w(that this), extras.map(&:to_s).sort
assert_equal %w(that this), extras.map { |e| e.to_s }.sort
end
def test_extra_keys
set.draw { |m| m.connect ':controller/:action/:id' }
extras = set.extra_keys(:controller => "foo", :action => "bar", :id => 15, :this => "hello", :that => "world")
assert_equal %w(that this), extras.map(&:to_s).sort
assert_equal %w(that this), extras.map { |e| e.to_s }.sort
end
def test_generate_extras_not_first
@ -1639,7 +1639,7 @@ class RouteSetTest < Test::Unit::TestCase
end
path, extras = set.generate_extras(:controller => "foo", :action => "bar", :id => 15, :this => "hello", :that => "world")
assert_equal "/foo/bar/15", path
assert_equal %w(that this), extras.map(&:to_s).sort
assert_equal %w(that this), extras.map { |e| e.to_s }.sort
end
def test_generate_not_first
@ -1656,7 +1656,7 @@ class RouteSetTest < Test::Unit::TestCase
map.connect ':controller/:action/:id'
end
extras = set.extra_keys(:controller => "foo", :action => "bar", :id => 15, :this => "hello", :that => "world")
assert_equal %w(that this), extras.map(&:to_s).sort
assert_equal %w(that this), extras.map { |e| e.to_s }.sort
end
def test_draw

View file

@ -56,7 +56,7 @@ class MimeTypeTest < ActiveSupport::TestCase
test "type convenience methods" do
# Don't test Mime::ALL, since it Mime::ALL#html? == true
types = Mime::SET.to_a.map(&:to_sym).uniq - [:all]
types = Mime::SET.to_a.map{|m| m.to_sym }.uniq - [:all]
# Remove custom Mime::Type instances set in other tests, like Mime::GIF and Mime::IPHONE
types.delete_if { |type| !Mime.const_defined?(type.to_s.upcase) }
@ -76,7 +76,7 @@ class MimeTypeTest < ActiveSupport::TestCase
end
test "verifiable mime types" do
all_types = Mime::SET.to_a.map(&:to_sym)
all_types = Mime::SET.to_a.map{|m| m.to_sym}
all_types.uniq!
# Remove custom Mime::Type instances set in other tests, like Mime::GIF and Mime::IPHONE
all_types.delete_if { |type| !Mime.const_defined?(type.to_s.upcase) }

View file

@ -1 +1 @@
<%= local_assigns.keys.map(&:to_s).sort.join(",") -%>
<%= local_assigns.keys.map {|k| k.to_s }.sort.join(",") -%>

View file

@ -11,9 +11,6 @@ $stderr.puts "Running old tests on new_base"
require 'test/unit'
require 'active_support'
# TODO : Revisit requiring all the core extensions here
require 'active_support/core_ext'
require 'active_support/test_case'
require 'action_controller/abstract'
require 'action_controller/new_base'
@ -45,6 +42,16 @@ 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',

View file

@ -16,7 +16,7 @@ class ErbUtilTest < Test::Unit::TestCase
end
def test_rest_in_ascii
(0..127).to_a.map(&:chr).each do |chr|
(0..127).to_a.map {|int| int.chr }.each do |chr|
next if %w(& " < >).include?(chr)
assert_equal chr, html_escape(chr)
end

View file

@ -3,6 +3,22 @@ require 'abstract_unit'
class NumberHelperTest < ActionView::TestCase
tests ActionView::Helpers::NumberHelper
def kilobytes(number)
number * 1024
end
def megabytes(number)
kilobytes(number) * 1024
end
def gigabytes(number)
megabytes(number) * 1024
end
def terabytes(number)
gigabytes(number) * 1024
end
def test_number_to_phone
assert_equal("555-1234", number_to_phone(5551234))
assert_equal("800-555-1212", number_to_phone(8005551212))
@ -96,16 +112,16 @@ class NumberHelperTest < ActionView::TestCase
assert_equal '1.2 MB', number_to_human_size(1234567)
assert_equal '1.1 GB', number_to_human_size(1234567890)
assert_equal '1.1 TB', number_to_human_size(1234567890123)
assert_equal '1025 TB', number_to_human_size(1025.terabytes)
assert_equal '444 KB', number_to_human_size(444.kilobytes)
assert_equal '1023 MB', number_to_human_size(1023.megabytes)
assert_equal '3 TB', number_to_human_size(3.terabytes)
assert_equal '1025 TB', number_to_human_size(terabytes(1025))
assert_equal '444 KB', number_to_human_size(kilobytes(444))
assert_equal '1023 MB', number_to_human_size(megabytes(1023))
assert_equal '3 TB', number_to_human_size(terabytes(3))
assert_equal '1.18 MB', number_to_human_size(1234567, :precision => 2)
assert_equal '3 Bytes', number_to_human_size(3.14159265, :precision => 4)
assert_equal("123 Bytes", number_to_human_size("123"))
assert_equal '1.01 KB', number_to_human_size(1.0123.kilobytes, :precision => 2)
assert_equal '1.01 KB', number_to_human_size(1.0100.kilobytes, :precision => 4)
assert_equal '10 KB', number_to_human_size(10.000.kilobytes, :precision => 4)
assert_equal '1.01 KB', number_to_human_size(kilobytes(1.0123), :precision => 2)
assert_equal '1.01 KB', number_to_human_size(kilobytes(1.0100), :precision => 4)
assert_equal '10 KB', number_to_human_size(kilobytes(10.000), :precision => 4)
assert_equal '1 Byte', number_to_human_size(1.1)
assert_equal '10 Bytes', number_to_human_size(10)
#assert_nil number_to_human_size('x') # fails due to API consolidation
@ -115,9 +131,9 @@ class NumberHelperTest < ActionView::TestCase
def test_number_to_human_size_with_options_hash
assert_equal '1.18 MB', number_to_human_size(1234567, :precision => 2)
assert_equal '3 Bytes', number_to_human_size(3.14159265, :precision => 4)
assert_equal '1.01 KB', number_to_human_size(1.0123.kilobytes, :precision => 2)
assert_equal '1.01 KB', number_to_human_size(1.0100.kilobytes, :precision => 4)
assert_equal '10 KB', number_to_human_size(10.000.kilobytes, :precision => 4)
assert_equal '1.01 KB', number_to_human_size(kilobytes(1.0123), :precision => 2)
assert_equal '1.01 KB', number_to_human_size(kilobytes(1.0100), :precision => 4)
assert_equal '10 KB', number_to_human_size(kilobytes(10.000), :precision => 4)
assert_equal '1 TB', number_to_human_size(1234567890123, :precision => 0)
assert_equal '500 MB', number_to_human_size(524288000, :precision=>0)
assert_equal '40 KB', number_to_human_size(41010, :precision => 0)
@ -125,8 +141,8 @@ class NumberHelperTest < ActionView::TestCase
end
def test_number_to_human_size_with_custom_delimiter_and_separator
assert_equal '1,01 KB', number_to_human_size(1.0123.kilobytes, :precision => 2, :separator => ',')
assert_equal '1,01 KB', number_to_human_size(1.0100.kilobytes, :precision => 4, :separator => ',')
assert_equal '1.000,1 TB', number_to_human_size(1000.1.terabytes, :delimiter => '.', :separator => ',')
assert_equal '1,01 KB', number_to_human_size(kilobytes(1.0123), :precision => 2, :separator => ',')
assert_equal '1,01 KB', number_to_human_size(kilobytes(1.0100), :precision => 4, :separator => ',')
assert_equal '1.000,1 TB', number_to_human_size(terabytes(1000.1), :delimiter => '.', :separator => ',')
end
end

View file

@ -13,7 +13,7 @@ module RenderTestCases
I18n.backend.store_translations 'pt-BR', {}
# Ensure original are still the same since we are reindexing view paths
assert_equal ORIGINAL_LOCALES, I18n.available_locales.map(&:to_s).sort
assert_equal ORIGINAL_LOCALES, I18n.available_locales.map {|l| l.to_s }.sort
end
def test_render_file