<!doctype html>
<html>
  <head>
    <title>Notifications: The "tag" property is able to replace existing notifications.</title>
    <script src="../resources/testharness.js"></script>
    <script src="../resources/testharnessreport.js"></script>
    <script src="resources/test-helpers.js"></script>
    <script src="../resources/permissions-helper.js"></script>
  </head>
  <body>
    <script>
      // Tests that Document-bound notifications can be replaced using the "tag"
      // property in the constructor's options. When the test is being ran
      // manually, grant Notification permission first and verify that only a
      // single notification will be shown at the end of the test.
      PermissionsHelper.setPermission('notifications', 'granted').then(function() {
          var script = document.createElement('script');
          script.src = 'resources/update-event-test.js';
          document.body.appendChild(script);
      });
    </script>
  </body>
</html>
