dom/tests/mochitest/storageevent/test_storageNotifications.html

Thu, 15 Jan 2015 15:55:04 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 15:55:04 +0100
branch
TOR_BUG_9701
changeset 9
a63d609f5ebe
permissions
-rw-r--r--

Back out 97036ab72558 which inappropriately compared turds to third parties.

     1 <html xmlns="http://www.w3.org/1999/xhtml">
     2 <head>
     3 <title>sessionStorage basic test</title>
     5 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     8 <script type="application/javascript;version=1.7">
    10 var expectedTypes = [
    11   "localStorage",
    12   "localStorage",
    13   "sessionStorage",
    14   "localStorage",
    15   "sessionStorage",
    16   "sessionStorage",
    17   "localStorage",
    18   "sessionStorage",
    19   "localStorage",
    20   "sessionStorage",
    21   "localStorage",
    22   "sessionStorage",
    23   "sessionStorage",
    24   "localStorage",
    25   "sessionStorage",
    26   "localStorage",
    27 ];
    29 var tests = Tests();
    30 function setup() {
    31   sessionStorage.clear();
    32   SimpleTest.executeSoon(function() {
    33     tests.next();
    34   });
    35 }
    37 function Tests()
    38 {
    39   // Initially check the both storages are empty
    40   is(sessionStorage.length, 0, "Session storage is empty [1]");
    41   is(localStorage.length, 0, "Local storage is empty [1]");
    43   var onStorageChanged = {
    44     observe: function(subject, topic, type) {
    45       if (topic == "dom-storage2-changed") {
    46         ok(expectedTypes.length > 0, "Not more then expected events encountered");
    47         is(type, expectedTypes.shift(), "Expected type of the storage notificaiton");
    48         tests.next();
    49       }
    50     }
    51   }
    53   // Listen for dom-storage2-changed notification
    54   SpecialPowers.Services.obs.addObserver(onStorageChanged,
    55     "dom-storage2-changed", false);
    57   // add an empty-value key
    58   localStorage.setItem("empty", "");
    59   yield undefined;
    61   localStorage.setItem("empty", "value-1");
    62   yield undefined;
    64   sessionStorage.setItem("empty", "");
    65   yield undefined;
    67   localStorage.removeItem("empty");
    68   yield undefined;
    70   sessionStorage.setItem("empty", "value-1");
    71   yield undefined;
    73   sessionStorage.removeItem("empty");
    74   yield undefined;
    76   localStorage.setItem("key1", "value-1");
    77   yield undefined;
    79   sessionStorage.setItem("key2", "value-2");
    80   yield undefined;
    82   localStorage.setItem("key1", "value-1-2");
    83   yield undefined;
    85   sessionStorage.setItem("key2", "value-2-2");
    86   yield undefined;
    88   localStorage.setItem("key3", "value-3");
    89   yield undefined;
    91   sessionStorage.setItem("key4", "value-4");
    92   yield undefined;
    94   sessionStorage.removeItem("key4");
    95   yield undefined;
    97   localStorage.setItem("key4", "value-4");
    98   yield undefined;
   100   sessionStorage.clear();
   101   yield undefined;
   103   localStorage.clear();
   104   yield undefined;
   106   SimpleTest.executeSoon(function () {
   107     SpecialPowers.Services.obs.removeObserver(onStorageChanged,
   108       "dom-storage2-changed", false);
   109     is(expectedTypes.length, 0, "received the correct number of events");
   111     sessionStorage.clear();
   112     localStorage.clear();
   113     tests = null;
   114     SimpleTest.finish();
   115   });
   116 }
   118 SimpleTest.waitForExplicitFinish();
   120 </script>
   122 </head>
   124 <body onload="setup();">
   126 </body>
   127 </html>

mercurial