diff options
Diffstat (limited to 'dom/tests/mochitest/localstorage/test_lowDeviceStorage.html')
-rw-r--r-- | dom/tests/mochitest/localstorage/test_lowDeviceStorage.html | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/dom/tests/mochitest/localstorage/test_lowDeviceStorage.html b/dom/tests/mochitest/localstorage/test_lowDeviceStorage.html new file mode 100644 index 000000000..046587150 --- /dev/null +++ b/dom/tests/mochitest/localstorage/test_lowDeviceStorage.html @@ -0,0 +1,76 @@ +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title>Test localStorage usage while in a low device storage situation</title> + +<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> +<script type="text/javascript" src="localStorageCommon.js"></script> +<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> + +<script type="text/javascript"> + +/* +This test does the following: +- Stores an item in localStorage. +- Checks the stored value. +- Emulates a low device storage situation. +- Gets the stored item again. +- Removes the stored item. +- Fails storing a new value. +- Emulates recovering from a low device storage situation. +- Stores a new value. +- Checks the stored value. +*/ + +function lowDeviceStorage(lowStorage) { + var data = lowStorage ? "full" : "free"; + os().notifyObservers(null, "disk-space-watcher", data); +} + +function startTest() { + // Add a test item. + localStorage.setItem("item", "value"); + is(localStorage.getItem("item"), "value", "getItem()"); + + // Emulates a low device storage situation. + lowDeviceStorage(true); + + // Checks that we can still access to the stored item. + is(localStorage.getItem("item"), "value", + "getItem() during a device storage situation"); + + // Removes the stored item. + localStorage.removeItem("item"); + is(localStorage.getItem("item"), null, + "getItem() after removing the item"); + + // Fails storing a new item. + try { + localStorage.setItem("newItem", "value"); + ok(false, "Storing a new item is expected to fail"); + } catch(e) { + ok(true, "Got an expected exception " + e); + } finally { + is(localStorage.getItem("newItem"), null, + "setItem while device storage is low"); + } + + // Emulates recovering from a low device storage situation. + lowDeviceStorage(false); + + // Add a test item after recovering from the low device storage situation. + localStorage.setItem("newItem", "value"); + is(localStorage.getItem("newItem"), "value", + "getItem() with available storage"); + + SimpleTest.finish(); +} + +SimpleTest.waitForExplicitFinish(); + +</script> + +</head> + +<body onload="startTest();"> +</body> +</html> |