diff options
Diffstat (limited to 'toolkit/components/places/tests/unit/test_sql_guid_functions.js')
-rw-r--r-- | toolkit/components/places/tests/unit/test_sql_guid_functions.js | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/toolkit/components/places/tests/unit/test_sql_guid_functions.js b/toolkit/components/places/tests/unit/test_sql_guid_functions.js deleted file mode 100644 index 41e6bab9e..000000000 --- a/toolkit/components/places/tests/unit/test_sql_guid_functions.js +++ /dev/null @@ -1,106 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -/** - * This file tests that the guid function generates a guid of the proper length, - * with no invalid characters. - */ - -/** - * Checks all our invariants about our guids for a given result. - * - * @param aGuid - * The guid to check. - */ -function check_invariants(aGuid) -{ - do_print("Checking guid '" + aGuid + "'"); - - do_check_valid_places_guid(aGuid); -} - -// Test Functions - -function test_guid_invariants() -{ - const kExpectedChars = 64; - const kAllowedChars = - "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_" - do_check_eq(kAllowedChars.length, kExpectedChars); - const kGuidLength = 12; - - let checkedChars = []; - for (let i = 0; i < kGuidLength; i++) { - checkedChars[i] = {}; - for (let j = 0; j < kAllowedChars; j++) { - checkedChars[i][kAllowedChars[j]] = false; - } - } - - // We run this until we've seen every character that we expect to see in every - // position. - let seenChars = 0; - let stmt = DBConn().createStatement("SELECT GENERATE_GUID()"); - while (seenChars != (kExpectedChars * kGuidLength)) { - do_check_true(stmt.executeStep()); - let guid = stmt.getString(0); - check_invariants(guid); - - for (let i = 0; i < guid.length; i++) { - let character = guid[i]; - if (!checkedChars[i][character]) { - checkedChars[i][character] = true; - seenChars++; - } - } - stmt.reset(); - } - stmt.finalize(); - - // One last reality check - make sure all of our characters were seen. - for (let i = 0; i < kGuidLength; i++) { - for (let j = 0; j < kAllowedChars; j++) { - do_check_true(checkedChars[i][kAllowedChars[j]]); - } - } - - run_next_test(); -} - -function test_guid_on_background() -{ - // We should not assert if we execute this asynchronously. - let stmt = DBConn().createAsyncStatement("SELECT GENERATE_GUID()"); - let checked = false; - stmt.executeAsync({ - handleResult: function(aResult) { - try { - let row = aResult.getNextRow(); - check_invariants(row.getResultByIndex(0)); - do_check_eq(aResult.getNextRow(), null); - checked = true; - } - catch (e) { - do_throw(e); - } - }, - handleCompletion: function(aReason) { - do_check_eq(aReason, Ci.mozIStorageStatementCallback.REASON_FINISHED); - do_check_true(checked); - run_next_test(); - } - }); - stmt.finalize(); -} - -// Test Runner - -[ - test_guid_invariants, - test_guid_on_background, -].forEach(add_test); - -function run_test() -{ - run_next_test(); -} |