dom/tests/mochitest/storageevent/test_storageNotifications.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/dom/tests/mochitest/storageevent/test_storageNotifications.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,127 @@
     1.4 +<html xmlns="http://www.w3.org/1999/xhtml">
     1.5 +<head>
     1.6 +<title>sessionStorage basic test</title>
     1.7 +
     1.8 +<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     1.9 +<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
    1.10 +
    1.11 +<script type="application/javascript;version=1.7">
    1.12 +
    1.13 +var expectedTypes = [
    1.14 +  "localStorage",
    1.15 +  "localStorage",
    1.16 +  "sessionStorage",
    1.17 +  "localStorage",
    1.18 +  "sessionStorage",
    1.19 +  "sessionStorage",
    1.20 +  "localStorage",
    1.21 +  "sessionStorage",
    1.22 +  "localStorage",
    1.23 +  "sessionStorage",
    1.24 +  "localStorage",
    1.25 +  "sessionStorage",
    1.26 +  "sessionStorage",
    1.27 +  "localStorage",
    1.28 +  "sessionStorage",
    1.29 +  "localStorage",
    1.30 +];
    1.31 +
    1.32 +var tests = Tests();
    1.33 +function setup() {
    1.34 +  sessionStorage.clear();
    1.35 +  SimpleTest.executeSoon(function() {
    1.36 +    tests.next();
    1.37 +  });
    1.38 +}
    1.39 +
    1.40 +function Tests()
    1.41 +{
    1.42 +  // Initially check the both storages are empty
    1.43 +  is(sessionStorage.length, 0, "Session storage is empty [1]");
    1.44 +  is(localStorage.length, 0, "Local storage is empty [1]");
    1.45 +
    1.46 +  var onStorageChanged = {
    1.47 +    observe: function(subject, topic, type) {
    1.48 +      if (topic == "dom-storage2-changed") {
    1.49 +        ok(expectedTypes.length > 0, "Not more then expected events encountered");
    1.50 +        is(type, expectedTypes.shift(), "Expected type of the storage notificaiton");
    1.51 +        tests.next();
    1.52 +      }
    1.53 +    }
    1.54 +  }
    1.55 +
    1.56 +  // Listen for dom-storage2-changed notification
    1.57 +  SpecialPowers.Services.obs.addObserver(onStorageChanged,
    1.58 +    "dom-storage2-changed", false);
    1.59 +
    1.60 +  // add an empty-value key
    1.61 +  localStorage.setItem("empty", "");
    1.62 +  yield undefined;
    1.63 +
    1.64 +  localStorage.setItem("empty", "value-1");
    1.65 +  yield undefined;
    1.66 +
    1.67 +  sessionStorage.setItem("empty", "");
    1.68 +  yield undefined;
    1.69 +
    1.70 +  localStorage.removeItem("empty");
    1.71 +  yield undefined;
    1.72 +
    1.73 +  sessionStorage.setItem("empty", "value-1");
    1.74 +  yield undefined;
    1.75 +
    1.76 +  sessionStorage.removeItem("empty");
    1.77 +  yield undefined;
    1.78 +
    1.79 +  localStorage.setItem("key1", "value-1");
    1.80 +  yield undefined;
    1.81 +
    1.82 +  sessionStorage.setItem("key2", "value-2");
    1.83 +  yield undefined;
    1.84 +
    1.85 +  localStorage.setItem("key1", "value-1-2");
    1.86 +  yield undefined;
    1.87 +
    1.88 +  sessionStorage.setItem("key2", "value-2-2");
    1.89 +  yield undefined;
    1.90 +
    1.91 +  localStorage.setItem("key3", "value-3");
    1.92 +  yield undefined;
    1.93 +
    1.94 +  sessionStorage.setItem("key4", "value-4");
    1.95 +  yield undefined;
    1.96 +
    1.97 +  sessionStorage.removeItem("key4");
    1.98 +  yield undefined;
    1.99 +
   1.100 +  localStorage.setItem("key4", "value-4");
   1.101 +  yield undefined;
   1.102 +
   1.103 +  sessionStorage.clear();
   1.104 +  yield undefined;
   1.105 +
   1.106 +  localStorage.clear();
   1.107 +  yield undefined;
   1.108 +
   1.109 +  SimpleTest.executeSoon(function () {
   1.110 +    SpecialPowers.Services.obs.removeObserver(onStorageChanged,
   1.111 +      "dom-storage2-changed", false);
   1.112 +    is(expectedTypes.length, 0, "received the correct number of events");
   1.113 +
   1.114 +    sessionStorage.clear();
   1.115 +    localStorage.clear();
   1.116 +    tests = null;
   1.117 +    SimpleTest.finish();
   1.118 +  });
   1.119 +}
   1.120 +
   1.121 +SimpleTest.waitForExplicitFinish();
   1.122 +
   1.123 +</script>
   1.124 +
   1.125 +</head>
   1.126 +
   1.127 +<body onload="setup();">
   1.128 +
   1.129 +</body>
   1.130 +</html>

mercurial