tor-browser

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

test_unregister.html (2513B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 Bug 1170817: Push tests.
      5 
      6 Any copyright is dedicated to the Public Domain.
      7 http://creativecommons.org/licenses/publicdomain/
      8 
      9 -->
     10 <head>
     11  <title>Test for Bug 1170817</title>
     12  <script src="/tests/SimpleTest/SimpleTest.js"></script>
     13  <script type="text/javascript" src="/tests/dom/push/test/test_utils.js"></script>
     14  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     15  <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
     16 </head>
     17 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1170817">Mozilla Bug 1170817</a>
     18 <p id="display"></p>
     19 <div id="content" style="display: none">
     20 
     21 </div>
     22 <pre id="test">
     23 </pre>
     24 
     25 <script class="testbody" type="text/javascript">
     26  function generateURL() {
     27    return "worker.js?caller=test_unregister.html";
     28  }
     29 
     30  var registration;
     31  add_task(async function start() {
     32    await setupPrefsAndMockSocket(new MockWebSocket());
     33    await setPushPermission(true);
     34 
     35    registration = await navigator.serviceWorker.register(
     36      generateURL(), {scope: "."});
     37    await waitForActive(registration);
     38  });
     39 
     40  var pushSubscription;
     41  add_task(async function setupPushNotification() {
     42    pushSubscription = await registration.pushManager.subscribe();
     43    ok(pushSubscription, "successful registered for push notification");
     44  });
     45 
     46  add_task(async function unregisterPushNotification() {
     47    var result = await pushSubscription.unsubscribe();
     48    ok(result, "unsubscribe() on existing subscription should return true.");
     49  });
     50 
     51  add_task(async function unregisterAgain() {
     52    var result = await pushSubscription.unsubscribe();
     53    ok(!result, "unsubscribe() on previously unsubscribed subscription should return false.");
     54  });
     55 
     56  add_task(async function subscribeAgain() {
     57    pushSubscription = await registration.pushManager.subscribe();
     58    ok(pushSubscription, "Should create a new push subscription");
     59 
     60    var result = await registration.unregister();
     61    ok(result, "Should unregister the service worker");
     62 
     63    registration = await navigator.serviceWorker.register(
     64      generateURL(), {scope: "."});
     65    await waitForActive(registration);
     66    pushSubscription = await registration.pushManager.getSubscription();
     67    ok(!pushSubscription,
     68      "Unregistering a service worker should drop its subscription");
     69  });
     70 
     71  add_task(async function unregister() {
     72    var result = await registration.unregister();
     73    ok(result, "Unregister should return true.");
     74  });
     75 
     76 </script>
     77 </body>
     78 </html>