blob: b5196863b2b7368334ed397e511ff221f2633b57 [file] [log] [blame]
tkent@chromium.org70e52192010-04-09 18:03:06 +00001<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2<html>
3<head>
mark.lam@apple.com93720da2013-09-07 23:31:07 +00004<script src="../../resources/js-test-pre.js"></script>
tkent@chromium.org70e52192010-04-09 18:03:06 +00005</head>
6<body>
7<p id="description"></p>
8<div id="console"></div>
tkent@chromium.orga0139532012-02-15 06:56:00 +00009<script>
10description('Tests for checkValidity() with invalid event canceling');
11
12var parent = document.createElement('div');
13document.body.appendChild(parent);
14parent.innerHTML = '<form><input name=i required></form>';
15var form = parent.firstChild;
16var input = form.firstChild;
17
18debug('"invalid" event is not canceled.');
19var invalidFired = false;
20var nothingListener = {};
21nothingListener.handleEvent = function(event) {
22 invalidFired = true;
23};
24shouldBeTrue('input.addEventListener("invalid", nothingListener, false); !input.checkValidity() && invalidFired');
25shouldBeTrue('invalidFired = false; !form.checkValidity() && invalidFired');
26input.removeEventListener('invalid', nothingListener, false);
27
28debug('');
29debug('"invalid" event is canceled.');
30invalidFired = false;
31var cancelListener = {};
32cancelListener.handleEvent = function(event) {
33 invalidFired = true;
34 event.preventDefault();
35};
36// Even if 'invalid' is canceled, the input.checkValidity() result is still false.
37shouldBeTrue('input.addEventListener("invalid", cancelListener, false); !input.checkValidity() && invalidFired');
38// form.checkValidity() also should be false.
39shouldBeTrue('invalidFired = false; !form.checkValidity() && invalidFired');
40</script>
mark.lam@apple.com93720da2013-09-07 23:31:07 +000041<script src="../../resources/js-test-post.js"></script>
tkent@chromium.org70e52192010-04-09 18:03:06 +000042</body>
43</html>