tor-browser

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

event_body_attribute.js (4021B)


      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_body_handler.html";
     17        }
     18 
     19        function step1(msg)
     20        {
     21            storageEventList = new Array();
     22            storage.setItem('FOO', 'BAR');
     23 
     24            runAfterNStorageEvents(t.step_func(step2), 1);
     25        }
     26 
     27        function step2(msg)
     28        {
     29            if (msg != undefined) {
     30                assert_unreached(msg);
     31            }
     32            assert_equals(storageEventList.length, 1);
     33            assert_equals(storageEventList[0].key, "FOO");
     34            assert_equals(storageEventList[0].oldValue, null);
     35            assert_equals(storageEventList[0].newValue, "BAR");
     36 
     37            storage.setItem('FU', 'BAR');
     38            storage.setItem('a', '1');
     39            storage.setItem('b', '2');
     40            storage.setItem('b', '3');
     41 
     42            runAfterNStorageEvents(t.step_func(step3), 5);
     43        }
     44 
     45        function step3(msg)
     46        {
     47            if (msg != undefined) {
     48                assert_unreached(msg);
     49            }
     50            assert_equals(storageEventList.length, 5);
     51            assert_equals(storageEventList[1].key, "FU");
     52            assert_equals(storageEventList[1].oldValue, null);
     53            assert_equals(storageEventList[1].newValue, "BAR");
     54 
     55            assert_equals(storageEventList[2].key, "a");
     56            assert_equals(storageEventList[2].oldValue, null);
     57            assert_equals(storageEventList[2].newValue, "1");
     58 
     59            assert_equals(storageEventList[3].key, "b");
     60            assert_equals(storageEventList[3].oldValue, null);
     61            assert_equals(storageEventList[3].newValue, "2");
     62 
     63            assert_equals(storageEventList[4].key, "b");
     64            assert_equals(storageEventList[4].oldValue, "2");
     65            assert_equals(storageEventList[4].newValue, "3");
     66 
     67            storage.removeItem('FOO');
     68 
     69            runAfterNStorageEvents(t.step_func(step4), 6);
     70        }
     71 
     72        function step4(msg)
     73        {
     74            if(msg != undefined) {
     75                assert_unreached(msg);
     76            }
     77            assert_equals(storageEventList.length, 6);
     78            assert_equals(storageEventList[5].key, "FOO");
     79            assert_equals(storageEventList[5].oldValue, "BAR");
     80            assert_equals(storageEventList[5].newValue, null);
     81 
     82            storage.removeItem('FU');
     83 
     84            runAfterNStorageEvents(t.step_func(step5), 7);
     85        }
     86 
     87        function step5(msg)
     88        {
     89            if(msg != undefined) {
     90                assert_unreached(msg);
     91            }
     92            assert_equals(storageEventList.length, 7);
     93            assert_equals(storageEventList[6].key, "FU");
     94            assert_equals(storageEventList[6].oldValue, "BAR");
     95            assert_equals(storageEventList[6].newValue, null);
     96 
     97            storage.clear();
     98 
     99            runAfterNStorageEvents(t.step_func(step6), 8);
    100        }
    101 
    102        function step6(msg)
    103        {
    104            if(msg != undefined) {
    105                assert_unreached(msg);
    106            }
    107            assert_equals(storageEventList.length, 8);
    108            assert_equals(storageEventList[7].key, null);
    109            assert_equals(storageEventList[7].oldValue, null);
    110            assert_equals(storageEventList[7].newValue, null);
    111 
    112            t.done();
    113        }
    114 
    115    }, storageString + " mutations fire StorageEvents that are caught by the event listener specified as an attribute on the body.");
    116 });