tor-browser

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

event_basic.js (4916B)


      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(loadiframe));
      8        assert_equals(storage.length, 0, "storage.length");
      9 
     10        function loadiframe(msg)
     11        {
     12            iframe.onload = t.step_func(step1);
     13            iframe.src = "resources/event_basic.html";
     14        }
     15 
     16        function step1(msg)
     17        {
     18            storage.setItem('FOO', 'BAR');
     19 
     20            runAfterNStorageEvents(t.step_func(step2), 1);
     21        }
     22 
     23        function step2(msg)
     24        {
     25            if(msg != undefined) {
     26                assert_unreached(msg);
     27            }
     28            assert_equals(storageEventList.length, 1);
     29            assert_equals(storageEventList[0].storageAreaString, storageString,
     30                "Storage event came from wrong storage type.");
     31            assert_equals(storageEventList[0].key, "FOO");
     32            assert_equals(storageEventList[0].oldValue, null);
     33            assert_equals(storageEventList[0].newValue, "BAR");
     34 
     35            storage.setItem('FU', 'BAR');
     36            storage.setItem('a', '1');
     37            storage.setItem('b', '2');
     38            storage.setItem('b', '3');
     39 
     40            runAfterNStorageEvents(t.step_func(step3), 5);
     41        }
     42 
     43        function step3(msg)
     44        {
     45            if(msg != undefined) {
     46                assert_unreached(msg);
     47            }
     48            assert_equals(storageEventList.length, 5);
     49            assert_equals(storageEventList[1].storageAreaString, storageString,
     50                "Storage event came from wrong storage type.");
     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].storageAreaString, storageString,
     56                "Storage event came from wrong storage type.");
     57            assert_equals(storageEventList[2].key, "a");
     58            assert_equals(storageEventList[2].oldValue, null);
     59            assert_equals(storageEventList[2].newValue, "1");
     60 
     61            assert_equals(storageEventList[3].storageAreaString, storageString,
     62                "Storage event came from wrong storage type.");
     63            assert_equals(storageEventList[3].key, "b");
     64            assert_equals(storageEventList[3].oldValue, null);
     65            assert_equals(storageEventList[3].newValue, "2");
     66 
     67            assert_equals(storageEventList[4].storageAreaString, storageString,
     68                "Storage event came from wrong storage type.");
     69            assert_equals(storageEventList[4].key, "b");
     70            assert_equals(storageEventList[4].oldValue, "2");
     71            assert_equals(storageEventList[4].newValue, "3");
     72 
     73            storage.removeItem('FOO');
     74 
     75            runAfterNStorageEvents(t.step_func(step4), 6);
     76        }
     77 
     78        function step4(msg)
     79        {
     80            if(msg != undefined) {
     81                assert_unreached(msg);
     82            }
     83            assert_equals(storageEventList.length, 6);
     84            assert_equals(storageEventList[5].storageAreaString, storageString,
     85                "Storage event came from wrong storage type.");
     86            assert_equals(storageEventList[5].key, "FOO");
     87            assert_equals(storageEventList[5].oldValue, "BAR");
     88            assert_equals(storageEventList[5].newValue, null);
     89 
     90            storage.removeItem('FU');
     91 
     92            runAfterNStorageEvents(t.step_func(step5), 7);
     93        }
     94 
     95        function step5(msg)
     96        {
     97            if(msg != undefined) {
     98                assert_unreached(msg);
     99            }
    100            assert_equals(storageEventList.length, 7);
    101            assert_equals(storageEventList[6].storageAreaString, storageString,
    102                "Storage event came from wrong storage type.");
    103            assert_equals(storageEventList[6].key, "FU");
    104            assert_equals(storageEventList[6].oldValue, "BAR");
    105            assert_equals(storageEventList[6].newValue, null);
    106 
    107            storage.clear();
    108 
    109            runAfterNStorageEvents(t.step_func(step6), 8);
    110        }
    111 
    112        function step6(msg)
    113        {
    114            if(msg != undefined) {
    115                assert_unreached(msg);
    116            }
    117            assert_equals(storageEventList.length, 8);
    118            assert_equals(storageEventList[7].storageAreaString, storageString,
    119                "Storage event came from wrong storage type.");
    120            assert_equals(storageEventList[7].key, null);
    121            assert_equals(storageEventList[7].oldValue, null);
    122            assert_equals(storageEventList[7].newValue, null);
    123 
    124            t.done();
    125        }
    126 
    127    }, storageString + " mutations fire StorageEvents that are caught by the event listener set via window.onstorage.");
    128 });