File tree Expand file tree Collapse file tree 2 files changed +72
-0
lines changed Expand file tree Collapse file tree 2 files changed +72
-0
lines changed Original file line number Diff line number Diff line change
1
+ Thu Nov 26 00:05:58 2009 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
2
+
3
+ * test/digest/test_digest_extend.rb: Added tests for current digest
4
+ framework.
5
+
1
6
Wed Nov 25 20:46:37 2009 Tanaka Akira <akr@fsij.org>
2
7
3
8
* vm_eval.c (rb_search_method_entry): refine error message.
Original file line number Diff line number Diff line change
1
+ require 'test/unit'
2
+ require 'digest'
3
+
4
+ class TestDigestExtend < Test ::Unit ::TestCase
5
+ class MyDigest < Digest ::Class
6
+ def initialize ( *arg )
7
+ super
8
+ @buf = [ ]
9
+ end
10
+
11
+ def update ( arg )
12
+ @buf << arg
13
+ self
14
+ end
15
+
16
+ alias << update
17
+
18
+ def finish
19
+ ( @buf . join . length % 256 ) . chr
20
+ end
21
+
22
+ def reset
23
+ @buf . clear
24
+ self
25
+ end
26
+ end
27
+
28
+ def test_digest
29
+ assert_equal ( "\3 " , MyDigest . digest ( "foo" ) )
30
+ end
31
+
32
+ def test_hexdigest
33
+ assert_equal ( "03" , MyDigest . hexdigest ( "foo" ) )
34
+ end
35
+
36
+ def test_context
37
+ digester = MyDigest . new
38
+ digester . update ( "foo" )
39
+ assert_equal ( "\3 " , digester . digest )
40
+ digester . update ( "foobar" )
41
+ assert_equal ( "\6 " , digester . digest )
42
+ digester . update ( "foo" )
43
+ assert_equal ( "\3 " , digester . digest )
44
+ end
45
+
46
+ def test_to_s
47
+ digester = MyDigest . new
48
+ digester . update ( "foo" )
49
+ assert_equal ( "03" , digester . to_s )
50
+ end
51
+
52
+ def test_digest_length # breaks MyDigest#digest_length
53
+ assert_equal ( 1 , MyDigest . new . digest_length )
54
+ MyDigest . class_eval do
55
+ def digest_length
56
+ 2
57
+ end
58
+ end
59
+ assert_equal ( 2 , MyDigest . new . digest_length )
60
+ end
61
+
62
+ def test_block_length
63
+ assert_raises ( RuntimeError ) do
64
+ MyDigest . new . block_length
65
+ end
66
+ end
67
+ end
You can’t perform that action at this time.
0 commit comments