Permalink
Browse files

Add history view test

  • Loading branch information...
1 parent 9cf469b commit 3d21ed362e0821fd9422e99d35556eeee470c92f @bootstraponline bootstraponline committed Nov 15, 2012
Showing with 31 additions and 2 deletions.
  1. +6 −2 lib/gollum/frontend/views/history.rb
  2. +25 −0 test/test_history_view.rb
@@ -33,9 +33,9 @@ def left_shift int, shift
(r & 2147483648) == 0 ? r : r - 4294967296
end
- def _identicon_code(blob)
+ def string_to_code string
# sha bytes
- b = [Digest::SHA1.hexdigest(blob + @request.host)[0,20]].pack('H*').bytes.to_a
+ b = [Digest::SHA1.hexdigest(string)[0,20]].pack('H*').bytes.to_a
# Thanks donpark's IdenticonUtil.java for this.
# Match the following Java code
# ((b[0] & 0xFF) << 24) | ((b[1] & 0xFF) << 16) |
@@ -47,6 +47,10 @@ def _identicon_code(blob)
b[3] & 0xFF
end
+ def _identicon_code(blob)
+ string_to_code blob + @request.host
+ end
+
def use_identicon
@page.wiki.user_icons == 'identicon'
end
View
@@ -0,0 +1,25 @@
+# ~*~ encoding: utf-8 ~*~
+require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
+require File.expand_path '../../lib/gollum/frontend/views/history', __FILE__
+
+context "Precious::Views::History" do
+ setup do
+ @history = Precious::Views::History.new
+ end
+
+ test "string_to_code" do
+ # Result must match the following Java code.
+=begin
+ public static void main(String[] args) throws Exception {
+ final String s = "code@example.com";
+ final byte[] b = MessageDigest.getInstance("SHA1").digest(s.toString().getBytes("UTF-8"));
+ final int c = ((b[0] & 0xFF) << 24) | ((b[1] & 0xFF) << 16)
+ | ((b[2] & 0xFF) << 8) | (b[3] & 0xFF);
+ // 143327882
+ System.out.println(c);
+ }
+=end
+ actual = @history.string_to_code 'code@example.com'
+ assert_equal 143327882, actual
+ end
+end

0 comments on commit 3d21ed3

Please sign in to comment.