// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/// @assertion final Events on
/// This is an ease-of-use accessor for event streams which should only be used
/// when an explicit accessor is not available.
/// @description Checks that the accessor works for standard events.

import "dart:html";
import "../../../Utils/expect.dart";

const eventType = 'keydown';

main() {
  asyncStart();
  document.on[eventType].listen((Event e) {
    Expect.equals(eventType, e.type);
    asyncEnd();
  });
  document.dispatchEvent(new KeyboardEvent(eventType));
}
