tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

event_setattribute.js (3971B)


      1 testStorages(function(storageString) {
      2    async_test(function(t) {
      3        assert_true(storageString in window, storageString + " exist");
      4        var storage = window[storageString];
      5        t.add_cleanup(function() { storage.clear() });
      6 
      7        clearStorage(storageString, t.step_func(step0));
      8        assert_equals(storage.length, 0, "storage.length");
      9 
     10        function step0(msg)
     11        {
     12            iframe.onload = t.step_func(step1);
     13            // Null out the existing handler eventTestHarness.js set up;
     14            // otherwise this test won't be testing much of anything useful.
     15            iframe.contentWindow.onstorage = null;
     16            iframe.src = "resources/event_setattribute_handler.html";
     17        }
     18 
     19        function step1(msg)
     20        {
     21            storage.setItem('FOO', 'BAR');
     22 
     23            runAfterNStorageEvents(t.step_func(step2), 1);
     24        }
     25 
     26        function step2(msg)
     27        {
     28            if(msg != undefined) {
     29                assert_unreached(msg);
     30            }
     31            assert_equals(storageEventList.length, 1);
     32            assert_equals(storageEventList[0].key, "FOO");
     33            assert_equals(storageEventList[0].oldValue, null);
     34            assert_equals(storageEventList[0].newValue, "BAR");
     35 
     36            storage.setItem('FU', 'BAR');
     37            storage.setItem('a', '1');
     38            storage.setItem('b', '2');
     39            storage.setItem('b', '3');
     40 
     41            runAfterNStorageEvents(t.step_func(step3), 5);
     42        }
     43 
     44        function step3(msg)
     45        {
     46            if(msg != undefined) {
     47                assert_unreached(msg);
     48            }
     49            assert_equals(storageEventList.length, 5);
     50            assert_equals(storageEventList[1].key, "FU");
     51            assert_equals(storageEventList[1].oldValue, null);
     52            assert_equals(storageEventList[1].newValue, "BAR");
     53 
     54            assert_equals(storageEventList[2].key, "a");
     55            assert_equals(storageEventList[2].oldValue, null);
     56            assert_equals(storageEventList[2].newValue, "1");
     57 
     58            assert_equals(storageEventList[3].key, "b");
     59            assert_equals(storageEventList[3].oldValue, null);
     60            assert_equals(storageEventList[3].newValue, "2");
     61 
     62            assert_equals(storageEventList[4].key, "b");
     63            assert_equals(storageEventList[4].oldValue, "2");
     64            assert_equals(storageEventList[4].newValue, "3");
     65 
     66            storage.removeItem('FOO');
     67 
     68            runAfterNStorageEvents(t.step_func(step4), 6);
     69        }
     70 
     71        function step4(msg)
     72        {
     73            if(msg != undefined) {
     74                assert_unreached(msg);
     75            }
     76            assert_equals(storageEventList.length, 6);
     77            assert_equals(storageEventList[5].key, "FOO");
     78            assert_equals(storageEventList[5].oldValue, "BAR");
     79            assert_equals(storageEventList[5].newValue, null);
     80 
     81            storage.removeItem('FU');
     82 
     83            runAfterNStorageEvents(t.step_func(step5), 7);
     84        }
     85 
     86        function step5(msg)
     87        {
     88            if(msg != undefined) {
     89                assert_unreached(msg);
     90            }
     91            assert_equals(storageEventList.length, 7);
     92            assert_equals(storageEventList[6].key, "FU");
     93            assert_equals(storageEventList[6].oldValue, "BAR");
     94            assert_equals(storageEventList[6].newValue, null);
     95 
     96            storage.clear();
     97 
     98            runAfterNStorageEvents(t.step_func(step6), 8);
     99        }
    100 
    101        function step6(msg)
    102        {
    103            if(msg != undefined) {
    104                assert_unreached(msg);
    105            }
    106            assert_equals(storageEventList.length, 8);
    107            assert_equals(storageEventList[7].key, null);
    108            assert_equals(storageEventList[7].oldValue, null);
    109            assert_equals(storageEventList[7].newValue, null);
    110 
    111            t.done();
    112        }
    113 
    114    }, storageString + " mutations fire StorageEvents that are caught by the event listener attached via setattribute.");
    115 });