From d59a877da44848d28960ec9038056344a5c31c0d Mon Sep 17 00:00:00 2001
From: Beyond <beyond@be.to>
Date: Sat, 22 Sep 2012 18:07:50 +0900
Subject: added compress options for gzip

added test for compress options of gzip

update changelog
---
 activesupport/test/gzip_test.rb | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

(limited to 'activesupport/test')

diff --git a/activesupport/test/gzip_test.rb b/activesupport/test/gzip_test.rb
index 75a0505899..0e3cf3b429 100644
--- a/activesupport/test/gzip_test.rb
+++ b/activesupport/test/gzip_test.rb
@@ -4,6 +4,12 @@ require 'active_support/core_ext/object/blank'
 class GzipTest < ActiveSupport::TestCase
   def test_compress_should_decompress_to_the_same_value
     assert_equal "Hello World", ActiveSupport::Gzip.decompress(ActiveSupport::Gzip.compress("Hello World"))
+    assert_equal "Hello World", ActiveSupport::Gzip.decompress(ActiveSupport::Gzip.compress("Hello World", Zlib::NO_COMPRESSION))
+    assert_equal "Hello World", ActiveSupport::Gzip.decompress(ActiveSupport::Gzip.compress("Hello World", Zlib::BEST_SPEED))
+    assert_equal "Hello World", ActiveSupport::Gzip.decompress(ActiveSupport::Gzip.compress("Hello World", Zlib::BEST_COMPRESSION))
+    assert_equal "Hello World", ActiveSupport::Gzip.decompress(ActiveSupport::Gzip.compress("Hello World", nil, Zlib::FILTERED))
+    assert_equal "Hello World", ActiveSupport::Gzip.decompress(ActiveSupport::Gzip.compress("Hello World", nil, Zlib::HUFFMAN_ONLY))
+    assert_equal "Hello World", ActiveSupport::Gzip.decompress(ActiveSupport::Gzip.compress("Hello World", nil, nil))
   end
 
   def test_compress_should_return_a_binary_string
@@ -12,4 +18,16 @@ class GzipTest < ActiveSupport::TestCase
     assert_equal Encoding.find('binary'), compressed.encoding
     assert !compressed.blank?, "a compressed blank string should not be blank"
   end
+
+  def test_compress_should_return_gzipped_string_by_compression_level
+    source_string = "Hello World"*100
+
+    gzipped_by_speed = ActiveSupport::Gzip.compress(source_string, Zlib::BEST_SPEED)
+    assert_equal 1, Zlib::GzipReader.new(StringIO.new(gzipped_by_speed)).level
+
+    gzipped_by_best_compression = ActiveSupport::Gzip.compress(source_string, Zlib::BEST_COMPRESSION)
+    assert_equal 9, Zlib::GzipReader.new(StringIO.new(gzipped_by_best_compression)).level
+
+    assert_equal true, (gzipped_by_best_compression.bytesize < gzipped_by_speed.bytesize)
+  end
 end
-- 
cgit v1.2.3