aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
diff options
context:
space:
mode:
authorSven Fuchs <svenfuchs@artweb-design.de>2008-08-21 19:04:39 +0200
committerSven Fuchs <svenfuchs@artweb-design.de>2008-08-21 19:04:39 +0200
commitaad429a46e3017fa7ca73f58428693e821be42b6 (patch)
treef749e0cdeab20c7f4be37ff49e064705f17cdfa5 /activesupport/test
parentcf6840773b4f5046151f4d28c286069aabaafa10 (diff)
parent8622787f8748434b4ceb2b925a35b17a38e1f2d6 (diff)
downloadrails-aad429a46e3017fa7ca73f58428693e821be42b6.tar.gz
rails-aad429a46e3017fa7ca73f58428693e821be42b6.tar.bz2
rails-aad429a46e3017fa7ca73f58428693e821be42b6.zip
Merge branch 'master' into i18n
Diffstat (limited to 'activesupport/test')
-rw-r--r--activesupport/test/buffered_logger_test.rb29
-rw-r--r--activesupport/test/caching_test.rb57
-rw-r--r--activesupport/test/callbacks_test.rb8
-rw-r--r--activesupport/test/core_ext/file_test.rb8
-rw-r--r--activesupport/test/memoizable_test.rb20
-rw-r--r--activesupport/test/typed_array_test.rb51
6 files changed, 110 insertions, 63 deletions
diff --git a/activesupport/test/buffered_logger_test.rb b/activesupport/test/buffered_logger_test.rb
index 97649518b7..6319c09210 100644
--- a/activesupport/test/buffered_logger_test.rb
+++ b/activesupport/test/buffered_logger_test.rb
@@ -70,7 +70,7 @@ class BufferedLoggerTest < Test::Unit::TestCase
end
@logger.flush
- assert !@output.string.empty?, @logger.buffer.size
+ assert !@output.string.empty?, @logger.send(:buffer).size
end
define_method "test_disabling_auto_flush_with_#{disable.inspect}_should_flush_at_max_buffer_size_as_failsafe" do
@@ -83,10 +83,10 @@ class BufferedLoggerTest < Test::Unit::TestCase
end
@logger.info 'there it is.'
- assert !@output.string.empty?, @logger.buffer.size
+ assert !@output.string.empty?, @logger.send(:buffer).size
end
end
-
+
def test_should_know_if_its_loglevel_is_below_a_given_level
ActiveSupport::BufferedLogger::Severity.constants.each do |level|
@logger.level = ActiveSupport::BufferedLogger::Severity.const_get(level) - 1
@@ -105,7 +105,7 @@ class BufferedLoggerTest < Test::Unit::TestCase
@logger.info 'there it is.'
assert !@output.string.empty?, @output.string
end
-
+
def test_should_create_the_log_directory_if_it_doesnt_exist
tmp_directory = File.join(File.dirname(__FILE__), "tmp")
log_file = File.join(tmp_directory, "development.log")
@@ -115,4 +115,25 @@ class BufferedLoggerTest < Test::Unit::TestCase
ensure
FileUtils.rm_rf(tmp_directory)
end
+
+ def test_logger_should_maintain_separate_buffers_for_each_thread
+ @logger.auto_flushing = false
+
+ a = Thread.new do
+ @logger.info("a"); Thread.pass;
+ @logger.info("b"); Thread.pass;
+ @logger.info("c"); @logger.flush
+ end
+
+ b = Thread.new do
+ @logger.info("x"); Thread.pass;
+ @logger.info("y"); Thread.pass;
+ @logger.info("z"); @logger.flush
+ end
+
+ a.join
+ b.join
+
+ assert_equal "a\nb\nc\nx\ny\nz\n", @output.string
+ end
end
diff --git a/activesupport/test/caching_test.rb b/activesupport/test/caching_test.rb
index f3220d27aa..9ea9389448 100644
--- a/activesupport/test/caching_test.rb
+++ b/activesupport/test/caching_test.rb
@@ -70,3 +70,60 @@ uses_mocha 'high-level cache store tests' do
end
end
end
+
+class FileStoreTest < Test::Unit::TestCase
+ def setup
+ @cache = ActiveSupport::Cache.lookup_store(:file_store, Dir.pwd)
+ end
+
+ def test_should_read_and_write_strings
+ @cache.write('foo', 'bar')
+ assert_equal 'bar', @cache.read('foo')
+ ensure
+ File.delete("foo.cache")
+ end
+
+ def test_should_read_and_write_hash
+ @cache.write('foo', {:a => "b"})
+ assert_equal({:a => "b"}, @cache.read('foo'))
+ ensure
+ File.delete("foo.cache")
+ end
+
+ def test_should_read_and_write_nil
+ @cache.write('foo', nil)
+ assert_equal nil, @cache.read('foo')
+ ensure
+ File.delete("foo.cache")
+ end
+end
+
+class MemoryStoreTest < Test::Unit::TestCase
+ def setup
+ @cache = ActiveSupport::Cache.lookup_store(:memory_store)
+ end
+
+ def test_should_read_and_write
+ @cache.write('foo', 'bar')
+ assert_equal 'bar', @cache.read('foo')
+ end
+
+ def test_fetch_without_cache_miss
+ @cache.write('foo', 'bar')
+ assert_equal 'bar', @cache.fetch('foo') { 'baz' }
+ end
+
+ def test_fetch_with_cache_miss
+ assert_equal 'baz', @cache.fetch('foo') { 'baz' }
+ end
+
+ def test_fetch_with_forced_cache_miss
+ @cache.fetch('foo', :force => true) { 'bar' }
+ end
+
+ def test_store_objects_should_be_immutable
+ @cache.write('foo', 'bar')
+ assert_raise(ActiveSupport::FrozenObjectError) { @cache.read('foo').gsub!(/.*/, 'baz') }
+ assert_equal 'bar', @cache.read('foo')
+ end
+end
diff --git a/activesupport/test/callbacks_test.rb b/activesupport/test/callbacks_test.rb
index 7f71ca2262..25b8eecef5 100644
--- a/activesupport/test/callbacks_test.rb
+++ b/activesupport/test/callbacks_test.rb
@@ -134,10 +134,10 @@ class CallbackChainTest < Test::Unit::TestCase
assert_equal :bacon, @chain.find(:bacon).method
end
- def test_union
- assert_equal [:bacon, :lettuce, :tomato], (@chain | Callback.new(:make, :bacon)).map(&:method)
- assert_equal [:bacon, :lettuce, :tomato, :turkey], (@chain | CallbackChain.build(:make, :bacon, :lettuce, :tomato, :turkey)).map(&:method)
- assert_equal [:bacon, :lettuce, :tomato, :turkey, :mayo], (@chain | Callback.new(:make, :mayo)).map(&:method)
+ def test_replace_or_append
+ assert_equal [:bacon, :lettuce, :tomato], (@chain.replace_or_append!(Callback.new(:make, :bacon))).map(&:method)
+ assert_equal [:bacon, :lettuce, :tomato, :turkey], (@chain.replace_or_append!(Callback.new(:make, :turkey))).map(&:method)
+ assert_equal [:bacon, :lettuce, :tomato, :turkey, :mayo], (@chain.replace_or_append!(Callback.new(:make, :mayo))).map(&:method)
end
def test_delete
diff --git a/activesupport/test/core_ext/file_test.rb b/activesupport/test/core_ext/file_test.rb
index 63b470684f..eedc6b592b 100644
--- a/activesupport/test/core_ext/file_test.rb
+++ b/activesupport/test/core_ext/file_test.rb
@@ -29,7 +29,7 @@ class AtomicWriteTest < Test::Unit::TestCase
assert File.exist?(file_name)
end
assert File.exist?(file_name)
- assert_equal "100755", file_mode
+ assert_equal 0100755, file_mode
assert_equal contents, File.read(file_name)
File.atomic_write(file_name, Dir.pwd) do |file|
@@ -37,7 +37,7 @@ class AtomicWriteTest < Test::Unit::TestCase
assert File.exist?(file_name)
end
assert File.exist?(file_name)
- assert_equal "100755", file_mode
+ assert_equal 0100755, file_mode
assert_equal contents, File.read(file_name)
ensure
File.unlink(file_name) rescue nil
@@ -50,7 +50,7 @@ class AtomicWriteTest < Test::Unit::TestCase
assert !File.exist?(file_name)
end
assert File.exist?(file_name)
- assert_equal "100644", file_mode
+ assert_equal 0100666 ^ File.umask, file_mode
assert_equal contents, File.read(file_name)
ensure
File.unlink(file_name) rescue nil
@@ -62,6 +62,6 @@ class AtomicWriteTest < Test::Unit::TestCase
end
def file_mode
- sprintf("%o", File.stat(file_name).mode)
+ File.stat(file_name).mode
end
end
diff --git a/activesupport/test/memoizable_test.rb b/activesupport/test/memoizable_test.rb
index 01631dc5e1..135d56f14a 100644
--- a/activesupport/test/memoizable_test.rb
+++ b/activesupport/test/memoizable_test.rb
@@ -110,6 +110,11 @@ uses_mocha 'Memoizable' do
assert_equal 1, @person.age_calls
end
+ def test_memorized_results_are_immutable
+ assert_equal "Josh", @person.name
+ assert_raise(ActiveSupport::FrozenObjectError) { @person.name.gsub!("Josh", "Gosh") }
+ end
+
def test_reloadable
counter = @calculator.counter
assert_equal 1, @calculator.counter
@@ -119,6 +124,21 @@ uses_mocha 'Memoizable' do
assert_equal 3, @calculator.counter
end
+ def test_unmemoize_all
+ assert_equal 1, @calculator.counter
+
+ assert @calculator.instance_variable_get(:@_memoized_counter).any?
+ @calculator.unmemoize_all
+ assert @calculator.instance_variable_get(:@_memoized_counter).empty?
+
+ assert_equal 2, @calculator.counter
+ end
+
+ def test_memoize_all
+ @calculator.memoize_all
+ assert @calculator.instance_variable_defined?(:@_memoized_counter)
+ end
+
def test_memoization_cache_is_different_for_each_instance
assert_equal 1, @calculator.counter
assert_equal 2, @calculator.counter(:reload)
diff --git a/activesupport/test/typed_array_test.rb b/activesupport/test/typed_array_test.rb
deleted file mode 100644
index 023f3a1b84..0000000000
--- a/activesupport/test/typed_array_test.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-require 'abstract_unit'
-
-class TypedArrayTest < Test::Unit::TestCase
- class StringArray < ActiveSupport::TypedArray
- def self.type_cast(obj)
- obj.to_s
- end
- end
-
- def setup
- @array = StringArray.new
- end
-
- def test_string_array_initialize
- assert_equal ["1", "2", "3"], StringArray.new([1, "2", :"3"])
- end
-
- def test_string_array_append
- @array << 1
- @array << "2"
- @array << :"3"
- assert_equal ["1", "2", "3"], @array
- end
-
- def test_string_array_concat
- @array.concat([1, "2"])
- @array.concat([:"3"])
- assert_equal ["1", "2", "3"], @array
- end
-
- def test_string_array_insert
- @array.insert(0, 1)
- @array.insert(1, "2")
- @array.insert(2, :"3")
- assert_equal ["1", "2", "3"], @array
- end
-
- def test_string_array_push
- @array.push(1)
- @array.push("2")
- @array.push(:"3")
- assert_equal ["1", "2", "3"], @array
- end
-
- def test_string_array_unshift
- @array.unshift(:"3")
- @array.unshift("2")
- @array.unshift(1)
- assert_equal ["1", "2", "3"], @array
- end
-end