aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport/test/core_ext')
-rw-r--r--activesupport/test/core_ext/array_ext_test.rb4
-rw-r--r--activesupport/test/core_ext/class/attribute_test.rb35
-rw-r--r--activesupport/test/core_ext/class/delegating_attributes_test.rb2
-rw-r--r--activesupport/test/core_ext/file_test.rb4
-rw-r--r--activesupport/test/core_ext/module_test.rb20
-rw-r--r--activesupport/test/core_ext/object_and_class_ext_test.rb11
-rw-r--r--activesupport/test/core_ext/string_ext_test.rb4
7 files changed, 47 insertions, 33 deletions
diff --git a/activesupport/test/core_ext/array_ext_test.rb b/activesupport/test/core_ext/array_ext_test.rb
index d4cd5ddbde..b374eca370 100644
--- a/activesupport/test/core_ext/array_ext_test.rb
+++ b/activesupport/test/core_ext/array_ext_test.rb
@@ -306,7 +306,7 @@ class ArrayUniqByTests < Test::Unit::TestCase
def test_uniq_by
assert_equal [1,2], [1,2,3,4].uniq_by { |i| i.odd? }
assert_equal [1,2], [1,2,3,4].uniq_by(&:even?)
- assert_equal (-5..0).to_a, (-5..5).to_a.uniq_by{ |i| i**2 }
+ assert_equal((-5..0).to_a, (-5..5).to_a.uniq_by{ |i| i**2 })
end
def test_uniq_by!
@@ -320,7 +320,7 @@ class ArrayUniqByTests < Test::Unit::TestCase
a = (-5..5).to_a
a.uniq_by! { |i| i**2 }
- assert_equal (-5..0).to_a, a
+ assert_equal((-5..0).to_a, a)
end
end
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/core_ext/class/delegating_attributes_test.rb b/activesupport/test/core_ext/class/delegating_attributes_test.rb
index 011068ab74..636edb8d4b 100644
--- a/activesupport/test/core_ext/class/delegating_attributes_test.rb
+++ b/activesupport/test/core_ext/class/delegating_attributes_test.rb
@@ -84,6 +84,8 @@ class DelegatingAttributesTest < Test::Unit::TestCase
assert_equal "1", Child.some_attribute
assert_nil Mokopuna.some_attribute
+ ensure
+ Child.some_attribute=nil
end
end
diff --git a/activesupport/test/core_ext/file_test.rb b/activesupport/test/core_ext/file_test.rb
index 26be694176..e1258b872e 100644
--- a/activesupport/test/core_ext/file_test.rb
+++ b/activesupport/test/core_ext/file_test.rb
@@ -57,6 +57,10 @@ class AtomicWriteTest < Test::Unit::TestCase
File.unlink(file_name) rescue nil
end
+ def test_responds_to_to_path
+ assert_equal __FILE__, File.open(__FILE__, "r").to_path
+ end
+
private
def file_name
"atomic.file"
diff --git a/activesupport/test/core_ext/module_test.rb b/activesupport/test/core_ext/module_test.rb
index 1fe75d5930..9edd7cc7c0 100644
--- a/activesupport/test/core_ext/module_test.rb
+++ b/activesupport/test/core_ext/module_test.rb
@@ -55,18 +55,6 @@ class Name
end
end
-$nowhere = <<-EOF
-class Name
- delegate :nowhere
-end
-EOF
-
-$noplace = <<-EOF
-class Name
- delegate :noplace, :tos => :hollywood
-end
-EOF
-
class ModuleTest < Test::Unit::TestCase
def setup
@david = Someone.new("David", Somewhere.new("Paulina", "Chicago"))
@@ -87,8 +75,12 @@ class ModuleTest < Test::Unit::TestCase
end
def test_missing_delegation_target
- assert_raise(ArgumentError) { eval($nowhere) }
- assert_raise(ArgumentError) { eval($noplace) }
+ assert_raise(ArgumentError) do
+ Name.send :delegate, :nowhere
+ end
+ assert_raise(ArgumentError) do
+ Name.send :delegate, :noplace, :tos => :hollywood
+ end
end
def test_delegation_prefix
diff --git a/activesupport/test/core_ext/object_and_class_ext_test.rb b/activesupport/test/core_ext/object_and_class_ext_test.rb
index f31e7774e9..437bb78a4e 100644
--- a/activesupport/test/core_ext/object_and_class_ext_test.rb
+++ b/activesupport/test/core_ext/object_and_class_ext_test.rb
@@ -89,7 +89,7 @@ class ClassExtTest < Test::Unit::TestCase
end
end
-class ObjectTests < Test::Unit::TestCase
+class ObjectTests < ActiveSupport::TestCase
class DuckTime
def acts_like_time?
true
@@ -119,12 +119,9 @@ class ObjectTests < Test::Unit::TestCase
assert !duck.acts_like?(:date)
end
- def test_metaclass
- string = "Hello"
- string.metaclass.instance_eval do
- define_method(:foo) { "bar" }
- end
- assert_equal "bar", string.foo
+ def test_singleton_class
+ o = Object.new
+ assert_equal class << o; self end, o.singleton_class
end
end
diff --git a/activesupport/test/core_ext/string_ext_test.rb b/activesupport/test/core_ext/string_ext_test.rb
index d8145d467b..a50e259726 100644
--- a/activesupport/test/core_ext/string_ext_test.rb
+++ b/activesupport/test/core_ext/string_ext_test.rb
@@ -444,6 +444,10 @@ class OutputSafetyTest < ActiveSupport::TestCase
assert_equal "hello".concat(13), string
assert string.html_safe?
end
+
+ test 'emits normal string yaml' do
+ assert_equal 'foo'.to_yaml, 'foo'.html_safe.to_yaml(:foo => 1)
+ end
end
class StringExcludeTest < ActiveSupport::TestCase