aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
diff options
context:
space:
mode:
authorMikel Lindsaar <raasdnil@gmail.com>2010-03-11 22:05:15 +1100
committerMikel Lindsaar <raasdnil@gmail.com>2010-03-11 22:05:15 +1100
commitf5774e3e3f70a3acfa559b9ff889e9417fb71d4b (patch)
treee738112994d40d6c3792065da80bddfa7439467b /activesupport/test
parentcefe723e285f20d1f2a33f67da03348568f7e0b0 (diff)
parent073852dff0b48296a9a184f94e722183334f3c4c (diff)
downloadrails-f5774e3e3f70a3acfa559b9ff889e9417fb71d4b.tar.gz
rails-f5774e3e3f70a3acfa559b9ff889e9417fb71d4b.tar.bz2
rails-f5774e3e3f70a3acfa559b9ff889e9417fb71d4b.zip
Merge branch 'master' of git://github.com/rails/rails
Diffstat (limited to 'activesupport/test')
-rw-r--r--activesupport/test/core_ext/class/attribute_test.rb35
-rw-r--r--activesupport/test/inflector_test_cases.rb9
-rw-r--r--activesupport/test/whiny_nil_test.rb2
3 files changed, 33 insertions, 13 deletions
diff --git a/activesupport/test/core_ext/class/attribute_test.rb b/activesupport/test/core_ext/class/attribute_test.rb
index ef84b9f255..06b4cf075f 100644
--- a/activesupport/test/core_ext/class/attribute_test.rb
+++ b/activesupport/test/core_ext/class/attribute_test.rb
@@ -2,13 +2,6 @@ require 'abstract_unit'
require 'active_support/core_ext/class/attribute'
class ClassAttributeTest < ActiveSupport::TestCase
- class Base
- class_attribute :setting
- end
-
- class Subclass < Base
- end
-
def setup
@klass = Class.new { class_attribute :setting }
@sub = Class.new(@klass)
@@ -40,8 +33,30 @@ class ClassAttributeTest < ActiveSupport::TestCase
assert_equal true, @klass.setting?
end
- test 'no instance delegates' do
- assert_raise(NoMethodError) { @klass.new.setting }
- assert_raise(NoMethodError) { @klass.new.setting? }
+ test 'instance reader delegates to class' do
+ assert_nil @klass.new.setting
+
+ @klass.setting = 1
+ assert_equal 1, @klass.new.setting
+ end
+
+ test 'instance override' do
+ object = @klass.new
+ object.setting = 1
+ assert_nil @klass.setting
+ @klass.setting = 2
+ assert_equal 1, object.setting
+ end
+
+ test 'instance query' do
+ object = @klass.new
+ assert_equal false, object.setting?
+ object.setting = 1
+ assert_equal true, object.setting?
+ end
+
+ test 'disabling instance writer' do
+ object = Class.new { class_attribute :setting, :instance_writer => false }.new
+ assert_raise(NoMethodError) { object.setting = 'boom' }
end
end
diff --git a/activesupport/test/inflector_test_cases.rb b/activesupport/test/inflector_test_cases.rb
index 2fa94b8e9c..ebd26d3fc6 100644
--- a/activesupport/test/inflector_test_cases.rb
+++ b/activesupport/test/inflector_test_cases.rb
@@ -158,7 +158,8 @@ module InflectorTestCases
"Allow_Under_Scores" => "allow_under_scores",
"Trailing bad characters!@#" => "trailing-bad-characters",
"!@#Leading bad characters" => "leading-bad-characters",
- "Squeeze separators" => "squeeze-separators"
+ "Squeeze separators" => "squeeze-separators",
+ "Test with + sign" => "test-with-sign"
}
StringToParameterizeWithNoSeparator = {
@@ -166,7 +167,8 @@ module InflectorTestCases
"Random text with *(bad)* characters" => "randomtextwithbadcharacters",
"Trailing bad characters!@#" => "trailingbadcharacters",
"!@#Leading bad characters" => "leadingbadcharacters",
- "Squeeze separators" => "squeezeseparators"
+ "Squeeze separators" => "squeezeseparators",
+ "Test with + sign" => "testwithsign"
}
StringToParameterizeWithUnderscore = {
@@ -174,7 +176,8 @@ module InflectorTestCases
"Random text with *(bad)* characters" => "random_text_with_bad_characters",
"Trailing bad characters!@#" => "trailing_bad_characters",
"!@#Leading bad characters" => "leading_bad_characters",
- "Squeeze separators" => "squeeze_separators"
+ "Squeeze separators" => "squeeze_separators",
+ "Test with + sign" => "test_with_sign"
}
# Ruby 1.9 doesn't do Unicode normalization yet.
diff --git a/activesupport/test/whiny_nil_test.rb b/activesupport/test/whiny_nil_test.rb
index 1e4f8d854a..4b9f06dead 100644
--- a/activesupport/test/whiny_nil_test.rb
+++ b/activesupport/test/whiny_nil_test.rb
@@ -9,6 +9,8 @@ end
require 'abstract_unit'
require 'active_support/whiny_nil'
+NilClass.add_whiner ::ActiveRecord::Base
+
class WhinyNilTest < Test::Unit::TestCase
def test_unchanged
nil.method_thats_not_in_whiners