<!doctype html>
<meta charset=utf-8>
<title>Notification interface IDL tests</title>
<div id=log></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/resources/WebIDLParser.js></script>
<script src=/resources/idlharness.js></script>
<script type=text/plain class=untested>
interface EventTarget {
  void addEventListener(DOMString type, EventListener? callback, optional boolean capture /* = false */);
  void removeEventListener(DOMString type, EventListener? callback, optional boolean capture /* = false */);
  boolean dispatchEvent(Event event);
};
[TreatNonCallableAsNull]
callback EventHandlerNonNull = any (Event event);
typedef EventHandlerNonNull? EventHandler;
</script>
<script type=text/plain>
[Constructor(DOMString title, optional NotificationOptions options)]
interface Notification : EventTarget {
  static readonly attribute NotificationPermission permission;
  static Promise<NotificationPermission> requestPermission(optional NotificationPermissionCallback callback);

  attribute EventHandler onclick;
  attribute EventHandler onshow;
  attribute EventHandler onerror;
  attribute EventHandler onclose;

  readonly attribute DOMString title;
  readonly attribute NotificationDirection dir;
  readonly attribute DOMString lang;
  readonly attribute DOMString body;
  readonly attribute DOMString tag;
  readonly attribute DOMString icon;

  void close();
};

dictionary NotificationOptions {
  NotificationDirection dir = "auto";
  DOMString lang = "";
  DOMString body;
  DOMString tag;
  DOMString icon;
};

dictionary GetNotificationsOptions {
  DOMString tag;
};

enum NotificationPermission {
  "default",
  "denied",
  "granted"
};

callback NotificationPermissionCallback = void (NotificationPermission permission);

enum NotificationDirection {
  "auto",
  "ltr",
  "rtl"
};
</script>
<script>
"use strict";
var idlArray = new IdlArray();
[].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) {
  if (node.className == "untested") {
    idlArray.add_untested_idls(node.textContent);
  } else {
    idlArray.add_idls(node.textContent);
  }
});
idlArray.add_objects({
  Notification: ['new Notification("Running idlharness.")'],
});
idlArray.test();
</script>