[前][次][番号順一覧][スレッド一覧]

ruby-changes:14110

From: nahi <ko1@a...>
Date: Thu, 26 Nov 2009 00:05:47 +0900 (JST)
Subject: [ruby-changes:14110] Ruby:r25923 (ruby_1_8): * test/digest/test_digest_extend.rb: Added tests for current digest

nahi	2009-11-26 00:04:44 +0900 (Thu, 26 Nov 2009)

  New Revision: 25923

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25923

  Log:
    * test/digest/test_digest_extend.rb: Added tests for current digest 
              framework.

  Added files:
    branches/ruby_1_8/test/digest/test_digest_extend.rb
  Modified files:
    branches/ruby_1_8/ChangeLog

Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 25922)
+++ ruby_1_8/ChangeLog	(revision 25923)
@@ -1,3 +1,8 @@
+Thu Nov 26 00:01:58 2009  NAKAMURA, Hiroshi  <nahi@r...>
+
+	* test/digest/test_digest_extend.rb: Added tests for current digest
+	  framework.
+
 Wed Nov 25 19:32:25 2009  Akinori MUSHA  <knu@i...>
 
 	* ext/digest/digest.c (rb_digest_instance_method_unimpl): Do not
Index: ruby_1_8/test/digest/test_digest_extend.rb
===================================================================
--- ruby_1_8/test/digest/test_digest_extend.rb	(revision 0)
+++ ruby_1_8/test/digest/test_digest_extend.rb	(revision 25923)
@@ -0,0 +1,67 @@
+require 'test/unit'
+require 'digest'
+
+class TestDigestExtend < Test::Unit::TestCase
+  class MyDigest < Digest::Class
+    def initialize(*arg)
+      super
+      @buf = []
+    end
+
+    def update(arg)
+      @buf << arg
+      self
+    end
+
+    alias << update
+
+    def finish
+      (@buf.join.length % 256).chr
+    end
+
+    def reset
+      @buf.clear
+      self
+    end
+  end
+
+  def test_digest
+    assert_equal("\3", MyDigest.digest("foo"))
+  end
+
+  def test_hexdigest
+    assert_equal("03", MyDigest.hexdigest("foo"))
+  end
+
+  def test_context
+    digester = MyDigest.new
+    digester.update("foo")
+    assert_equal("\3", digester.digest)
+    digester.update("foobar")
+    assert_equal("\6", digester.digest)
+    digester.update("foo")
+    assert_equal("\3", digester.digest)
+  end
+
+  def test_to_s
+    digester = MyDigest.new
+    digester.update("foo")
+    assert_equal("03", digester.to_s)
+  end
+
+  def test_digest_length # breaks MyDigest#digest_length
+    assert_equal(1, MyDigest.new.digest_length)
+    MyDigest.class_eval do
+      def digest_length
+        2
+      end
+    end
+    assert_equal(2, MyDigest.new.digest_length)
+  end
+
+  def test_block_length
+    assert_raises(RuntimeError) do
+      MyDigest.new.block_length
+    end
+  end
+end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]