diff options
Diffstat (limited to 'toolkit/components/places/tests/bookmarks/test_1016953-renaming-uncompressed.js')
-rw-r--r-- | toolkit/components/places/tests/bookmarks/test_1016953-renaming-uncompressed.js | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/toolkit/components/places/tests/bookmarks/test_1016953-renaming-uncompressed.js b/toolkit/components/places/tests/bookmarks/test_1016953-renaming-uncompressed.js deleted file mode 100644 index b6982987b..000000000 --- a/toolkit/components/places/tests/bookmarks/test_1016953-renaming-uncompressed.js +++ /dev/null @@ -1,103 +0,0 @@ -function run_test() { - run_next_test(); -} - -/* Bug 1016953 - When a previous bookmark backup exists with the same hash -regardless of date, an automatic backup should attempt to either rename it to -today's date if the backup was for an old date or leave it alone if it was for -the same date. However if the file ext was json it will accidentally rename it -to jsonlz4 while keeping the json contents -*/ - -add_task(function* test_same_date_same_hash() { - // If old file has been created on the same date and has the same hash - // the file should be left alone - let backupFolder = yield PlacesBackups.getBackupFolder(); - // Save to profile dir to obtain hash and nodeCount to append to filename - let tempPath = OS.Path.join(OS.Constants.Path.profileDir, - "bug10169583_bookmarks.json"); - let {count, hash} = yield BookmarkJSONUtils.exportToFile(tempPath); - - // Save JSON file in backup folder with hash appended - let dateObj = new Date(); - let filename = "bookmarks-" + PlacesBackups.toISODateString(dateObj) + "_" + - count + "_" + hash + ".json"; - let backupFile = OS.Path.join(backupFolder, filename); - yield OS.File.move(tempPath, backupFile); - - // Force a compressed backup which fallbacks to rename - yield PlacesBackups.create(); - let mostRecentBackupFile = yield PlacesBackups.getMostRecentBackup(); - // check to ensure not renamed to jsonlz4 - Assert.equal(mostRecentBackupFile, backupFile); - // inspect contents and check if valid json - let converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]. - createInstance(Ci.nsIScriptableUnicodeConverter); - converter.charset = "UTF-8"; - let result = yield OS.File.read(mostRecentBackupFile); - let jsonString = converter.convertFromByteArray(result, result.length); - do_print("Check is valid JSON"); - JSON.parse(jsonString); - - // Cleanup - yield OS.File.remove(backupFile); - yield OS.File.remove(tempPath); - PlacesBackups._backupFiles = null; // To force re-cache of backupFiles -}); - -add_task(function* test_same_date_diff_hash() { - // If the old file has been created on the same date, but has a different hash - // the existing file should be overwritten with the newer compressed version - let backupFolder = yield PlacesBackups.getBackupFolder(); - let tempPath = OS.Path.join(OS.Constants.Path.profileDir, - "bug10169583_bookmarks.json"); - let {count} = yield BookmarkJSONUtils.exportToFile(tempPath); - let dateObj = new Date(); - let filename = "bookmarks-" + PlacesBackups.toISODateString(dateObj) + "_" + - count + "_" + "differentHash==" + ".json"; - let backupFile = OS.Path.join(backupFolder, filename); - yield OS.File.move(tempPath, backupFile); - yield PlacesBackups.create(); // Force compressed backup - mostRecentBackupFile = yield PlacesBackups.getMostRecentBackup(); - - // Decode lz4 compressed file to json and check if json is valid - let converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]. - createInstance(Ci.nsIScriptableUnicodeConverter); - converter.charset = "UTF-8"; - let result = yield OS.File.read(mostRecentBackupFile, { compression: "lz4" }); - let jsonString = converter.convertFromByteArray(result, result.length); - do_print("Check is valid JSON"); - JSON.parse(jsonString); - - // Cleanup - yield OS.File.remove(mostRecentBackupFile); - yield OS.File.remove(tempPath); - PlacesBackups._backupFiles = null; // To force re-cache of backupFiles -}); - -add_task(function* test_diff_date_same_hash() { - // If the old file has been created on an older day but has the same hash - // it should be renamed with today's date without altering the contents. - let backupFolder = yield PlacesBackups.getBackupFolder(); - let tempPath = OS.Path.join(OS.Constants.Path.profileDir, - "bug10169583_bookmarks.json"); - let {count, hash} = yield BookmarkJSONUtils.exportToFile(tempPath); - let oldDate = new Date(2014, 1, 1); - let curDate = new Date(); - let oldFilename = "bookmarks-" + PlacesBackups.toISODateString(oldDate) + "_" + - count + "_" + hash + ".json"; - let newFilename = "bookmarks-" + PlacesBackups.toISODateString(curDate) + "_" + - count + "_" + hash + ".json"; - let backupFile = OS.Path.join(backupFolder, oldFilename); - let newBackupFile = OS.Path.join(backupFolder, newFilename); - yield OS.File.move(tempPath, backupFile); - - // Ensure file has been renamed correctly - yield PlacesBackups.create(); - let mostRecentBackupFile = yield PlacesBackups.getMostRecentBackup(); - Assert.equal(mostRecentBackupFile, newBackupFile); - - // Cleanup - yield OS.File.remove(mostRecentBackupFile); - yield OS.File.remove(tempPath); -}); |