From: Steinar H. Gunderson Date: Tue, 12 Nov 2013 19:26:46 +0000 (+0100) Subject: Add first round of unit tests. X-Git-Url: https://git.sesse.net/?p=www-csrf;a=commitdiff_plain;h=ea75e46a739b0045dcc3122cb7b13e88fcb60501 Add first round of unit tests. --- diff --git a/MANIFEST b/MANIFEST index ae56c82..c670804 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2,3 +2,5 @@ Changes lib/WWW/CSRF.pm Makefile.PL MANIFEST This list of files +t/00_use.t +t/01_generate.t diff --git a/t/00_use.t b/t/00_use.t new file mode 100644 index 0000000..63406c9 --- /dev/null +++ b/t/00_use.t @@ -0,0 +1,3 @@ +use Test::More tests => 1; + +use_ok('WWW::CSRF'); diff --git a/t/01_generate.t b/t/01_generate.t new file mode 100644 index 0000000..44d52aa --- /dev/null +++ b/t/01_generate.t @@ -0,0 +1,26 @@ +use Test::More tests => 5; + +use WWW::CSRF qw(generate_csrf_token); + +my $random = pack('H*', '112233445566778899aabbccddeeff0011223344'); + +like(generate_csrf_token("id", "secret"), + qr/^[0-9a-f]{40},[0-9a-f]{40},\d+$/, + "token has right format"); + +is(generate_csrf_token("id", "secret", $random, 1234567890), + "5df5e9f17c929a45af5d33624ec052903599958f,112233445566778899aabbccddeeff0011223344,1234567890", + "generate simple token"); + +is(generate_csrf_token("id", "s3cret", $random, 1234567890), + "0acb0abac254d21ce30c2e805a1bf6762e0b6a17,112233445566778899aabbccddeeff0011223344,1234567890", + "different secret changes token"); + +is(generate_csrf_token("id", "s3cret", $random, 1234567891), + "8e5c2d1cd2dc0368ed2fa1facee31660a5ffa12f,112233445566778899aabbccddeeff0011223344,1234567891", + "different time changes token"); + +$random = pack('H*', '112233445566778899aabbccddeeff0011223340'); +is(generate_csrf_token("id", "secret", $random, 1234567890), + "5df5e9f17c929a45af5d33624ec052903599958b,112233445566778899aabbccddeeff0011223340,1234567890", + "bitflip in mask flips corresponding bit in token");