/*
 * 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 Event(String type, {bool canBubble: true, bool cancelable: true})
 * @description Checks that if canBubble is false event will not bubble
 */
import "dart:html";
import "../../../Utils/expect.dart";

main() {
  var ev = new Event('whatever', canBubble: false);
  var body = document.body;
  if (body != null) {
    var div = new DivElement();
    body.append(div);

    body.on['whatever'].listen((e) {
      Expect.fail('should not happen');
    });

    div.dispatchEvent(ev);
  } else {
    Expect.fail("Body is null");
  }
}
