summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/alerts/browser_notification_replace.js
blob: c92777f5152478ab496fb359bee258ddd693b1cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
"use strict";

let notificationURL =
  "http://example.org/browser/browser/base/content/test/alerts/file_dom_notifications.html";

add_task(async function test_notificationReplace() {
  await addNotificationPermission(notificationURL);

  await BrowserTestUtils.withNewTab(
    {
      gBrowser,
      url: notificationURL,
    },
    async function dummyTabTask(aBrowser) {
      await SpecialPowers.spawn(aBrowser, [], async function() {
        let win = content.window.wrappedJSObject;
        let notification = win.showNotification1();
        let promiseCloseEvent = ContentTaskUtils.waitForEvent(
          notification,
          "close"
        );

        let showEvent = await ContentTaskUtils.waitForEvent(
          notification,
          "show"
        );
        Assert.equal(
          showEvent.target.body,
          "Test body 1",
          "Showed tagged notification"
        );

        let newNotification = win.showNotification2();
        let newShowEvent = await ContentTaskUtils.waitForEvent(
          newNotification,
          "show"
        );
        Assert.equal(
          newShowEvent.target.body,
          "Test body 2",
          "Showed new notification with same tag"
        );

        let closeEvent = await promiseCloseEvent;
        Assert.equal(
          closeEvent.target.body,
          "Test body 1",
          "Closed previous tagged notification"
        );

        let promiseNewCloseEvent = ContentTaskUtils.waitForEvent(
          newNotification,
          "close"
        );
        newNotification.close();
        let newCloseEvent = await promiseNewCloseEvent;
        Assert.equal(
          newCloseEvent.target.body,
          "Test body 2",
          "Closed new notification"
        );
      });
    }
  );
});