1 <!DOCTYPE HTML PUBLIC
"-//IETF//DTD HTML//EN">
4 <script src=
"../../resources/js-test.js"></script>
7 <p id=
"description"></p>
8 <form method=
"get" id=
"sad-form">
9 <input id=
"input-empty" name=
"victim" type=
"text" required
/>
10 <input id=
"input-pattern-mismatch" name=
"victim" type=
"text" pattern=
"Lorem ipsum" value=
"Loremipsum"/>
11 <textarea id=
"textarea" name=
"victim" required
></textarea>
12 <select id=
"select-no-explicit-value" required
>
13 <option>empty
</option>
14 <option>another
</option>
16 <select id=
"select-placeholder" name=
"victim" required
>
17 <option value=
"" selected
/>
18 <option value=
"X">X
</option>
20 <select id=
"select-non-placeholder" name=
"victim" required
>
21 <option value=
"X">X
</option>
22 <option value=
"" selected
/>
25 <div id=
"console"></div>
27 function $(id
) { return document
.getElementById(id
); }
28 function reportValidityFor(id
) {
29 return document
.getElementById(id
).reportValidity();
32 description("This test checks if reportValidity() returns correctly a false (meaning error) result on invalid elements, and returns a true result on a blank but valid elements. Blank but non-placeholder label options are valid.");
34 shouldBeFalse('reportValidityFor("input-empty")');
35 shouldBe('document.activeElement', '$("input-empty")');
36 shouldBeFalse('reportValidityFor("input-pattern-mismatch")');
37 shouldBe('document.activeElement', '$("input-pattern-mismatch")');
38 shouldBeFalse('reportValidityFor("textarea")');
39 shouldBe('document.activeElement', '$("textarea")');
40 shouldBeTrue('reportValidityFor("select-no-explicit-value")');
41 shouldNotBe('document.activeElement', '$("select-no-explicit-value")');
42 shouldBeFalse('reportValidityFor("select-placeholder")');
43 shouldBe('document.activeElement', '$("select-placeholder")');
44 shouldBeTrue('reportValidityFor("select-non-placeholder")');
45 shouldNotBe('document.activeElement', '$("select-non-placeholder")');
46 shouldBeFalse('reportValidityFor("sad-form")');
47 shouldBe('document.activeElement', '$("input-empty")');