blob: aa837d5712cebf0b510a55d93429289f85c39eb1 [file] [log] [blame]
/*
* 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.
*/
/**
* @description Tests for checkValidity() with invalid event canceling
*/
import "dart:html";
import "../../testcommon.dart";
import "../../../Utils/async_utils.dart";
main() {
var parent = document.createElement('div');
document.body.append(parent);
parent.innerHtml = '<form><input name=i required></form>';
var form = parent.firstChild;
var input = form.firstChild;
debug('"invalid" event is not canceled.');
var invalidFired = false;
nothingListener(event) {
invalidFired = true;
}
input.addEventListener("invalid", nothingListener, false);
shouldBeTrue(!input.checkValidity() && invalidFired);
invalidFired = false;
shouldBeTrue(!form.checkValidity() && invalidFired);
input.removeEventListener('invalid', nothingListener, false);
debug('');
debug('"invalid" event is canceled.');
invalidFired = false;
cancelListener(event) {
invalidFired = true;
event.preventDefault();
}
// Even if 'invalid' is canceled, the input.checkValidity() result is still false.
input.addEventListener("invalid", cancelListener, false);
shouldBeTrue(!input.checkValidity() && invalidFired);
// form.checkValidity() also should be false.
invalidFired = false;
shouldBeTrue(!form.checkValidity() && invalidFired);
}