services/sync/tests/unit/test_utils_passphrase.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 Cu.import("resource://services-sync/util.js");
     3 function run_test() {
     4   _("Generated passphrase has length 26.");
     5   let pp = Utils.generatePassphrase();
     6   do_check_eq(pp.length, 26);
     8   const key = "abcdefghijkmnpqrstuvwxyz23456789";
     9   _("Passphrase only contains [" + key + "].");
    10   do_check_true(pp.split('').every(function(chr) key.indexOf(chr) != -1));
    12   _("Hyphenated passphrase has 5 hyphens.");
    13   let hyphenated = Utils.hyphenatePassphrase(pp);
    14   _("H: " + hyphenated);
    15   do_check_eq(hyphenated.length, 31);
    16   do_check_eq(hyphenated[1], '-');
    17   do_check_eq(hyphenated[7], '-');
    18   do_check_eq(hyphenated[13], '-');
    19   do_check_eq(hyphenated[19], '-');
    20   do_check_eq(hyphenated[25], '-');
    21   do_check_eq(pp,
    22       hyphenated.slice(0, 1) + hyphenated.slice(2, 7)
    23       + hyphenated.slice(8, 13) + hyphenated.slice(14, 19)
    24       + hyphenated.slice(20, 25) + hyphenated.slice(26, 31));
    26   _("Arbitrary hyphenation.");
    27   // We don't allow invalid characters for our base32 character set.
    28   do_check_eq(Utils.hyphenatePassphrase("1234567"), "2-34567");  // Not partial, so no trailing dash.
    29   do_check_eq(Utils.hyphenatePassphrase("1234567890"), "2-34567-89");
    30   do_check_eq(Utils.hyphenatePassphrase("abcdeabcdeabcdeabcdeabcde"), "a-bcdea-bcdea-bcdea-bcdea-bcde");
    31   do_check_eq(Utils.hyphenatePartialPassphrase("1234567"), "2-34567-");
    32   do_check_eq(Utils.hyphenatePartialPassphrase("1234567890"), "2-34567-89");
    33   do_check_eq(Utils.hyphenatePartialPassphrase("abcdeabcdeabcdeabcdeabcde"), "a-bcdea-bcdea-bcdea-bcdea-bcde");
    35   do_check_eq(Utils.hyphenatePartialPassphrase("a"), "a-");
    36   do_check_eq(Utils.hyphenatePartialPassphrase("1234567"), "2-34567-");
    37   do_check_eq(Utils.hyphenatePartialPassphrase("a-bcdef-g"),
    38               "a-bcdef-g");
    39   do_check_eq(Utils.hyphenatePartialPassphrase("abcdefghijklmnop"),
    40               "a-bcdef-ghijk-mnp");
    41   do_check_eq(Utils.hyphenatePartialPassphrase("abcdefghijklmnopabcde"),
    42               "a-bcdef-ghijk-mnpab-cde");
    43   do_check_eq(Utils.hyphenatePartialPassphrase("a-bcdef-ghijk-LMNOP-ABCDE-Fg"),
    44               "a-bcdef-ghijk-mnpab-cdefg-");
    45   // Cuts off.
    46   do_check_eq(Utils.hyphenatePartialPassphrase("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").length, 31);
    48   _("Normalize passphrase recognizes hyphens.");
    49   do_check_eq(Utils.normalizePassphrase(hyphenated), pp);
    51   _("Skip whitespace.");
    52   do_check_eq("aaaaaaaaaaaaaaaaaaaaaaaaaa", Utils.normalizePassphrase("aaaaaaaaaaaaaaaaaaaaaaaaaa  "));
    53   do_check_eq("aaaaaaaaaaaaaaaaaaaaaaaaaa", Utils.normalizePassphrase("	 aaaaaaaaaaaaaaaaaaaaaaaaaa"));
    54   do_check_eq("aaaaaaaaaaaaaaaaaaaaaaaaaa", Utils.normalizePassphrase("    aaaaaaaaaaaaaaaaaaaaaaaaaa  "));
    55   do_check_eq("aaaaaaaaaaaaaaaaaaaaaaaaaa", Utils.normalizePassphrase("    a-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa  "));
    56   do_check_true(Utils.isPassphrase("aaaaaaaaaaaaaaaaaaaaaaaaaa  "));
    57   do_check_true(Utils.isPassphrase("	 aaaaaaaaaaaaaaaaaaaaaaaaaa"));
    58   do_check_true(Utils.isPassphrase("    aaaaaaaaaaaaaaaaaaaaaaaaaa  "));
    59   do_check_true(Utils.isPassphrase("    a-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa  "));
    60   do_check_false(Utils.isPassphrase("    -aaaaa-aaaaa-aaaaa-aaaaa-aaaaa  "));
    62   _("Normalizing 20-char passphrases.");
    63   do_check_eq(Utils.normalizePassphrase("abcde-abcde-abcde-abcde"),
    64               "abcdeabcdeabcdeabcde");
    65   do_check_eq(Utils.normalizePassphrase("a-bcde-abcde-abcde-abcde"),
    66               "a-bcde-abcde-abcde-abcde");
    67   do_check_eq(Utils.normalizePassphrase(" abcde-abcde-abcde-abcde "),
    68               "abcdeabcdeabcdeabcde");
    70   _("Normalizing username.");
    71   do_check_eq(Utils.normalizeAccount("   QA1234+boo@mozilla.com	"), "QA1234+boo@mozilla.com");
    72   do_check_eq(Utils.normalizeAccount("QA1234+boo@mozilla.com"), "QA1234+boo@mozilla.com");
    73 }

mercurial