| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| <script src="resources/common.js"></script> |
| </head> |
| <body> |
| <input id="search" type="search" onsearch="searchEventDispatched()" /> |
| <p id="description"> |
| |
| </p> |
| |
| <script> |
| var searchEventObserved; |
| |
| description("This tests if the value in a search input form is cleared and a 'search' event is triggered, when we press the Escape key. " + |
| "To run (a part of) this test manually, type some text in the search form and then press the Escape key. " + |
| "If the text is cleared, then the test passes."); |
| |
| if (window.testRunner && window.eventSender) { |
| var input = $("search"); |
| var enabled = false; |
| var disabled = true; |
| var readonly = true; |
| |
| searchEventObserved = false; |
| input.focus(); |
| setInputAttributes(input, "foo", enabled); |
| eventSender.keyDown("\x1B"); |
| shouldBeEqualToString('input.value', ""); |
| shouldBe('searchEventObserved', 'true'); |
| input.blur(); |
| |
| searchEventObserved = false; |
| input.focus(); |
| setInputAttributes(input, "", enabled); |
| eventSender.keyDown("\x1B"); |
| shouldBeEqualToString('input.value', ""); |
| shouldBe('searchEventObserved', 'true'); |
| input.blur(); |
| |
| searchEventObserved = false; |
| input.focus(); |
| setInputAttributes(input, "foo", enabled, readonly); |
| eventSender.keyDown("\x1B"); |
| shouldBeEqualToString('input.value', "foo"); |
| shouldBe('searchEventObserved', 'false'); |
| input.blur(); |
| |
| searchEventObserved = false; |
| input.focus(); |
| setInputAttributes(input, "foo", disabled); |
| eventSender.keyDown("\x1B"); |
| shouldBeEqualToString('input.value', "foo"); |
| shouldBe('searchEventObserved', 'false'); |
| input.blur(); |
| |
| searchEventObserved = false; |
| input.focus(); |
| setInputAttributes(input, "foo", disabled, readonly); |
| eventSender.keyDown("\x1B"); |
| shouldBeEqualToString('input.value', "foo"); |
| shouldBe('searchEventObserved', 'false'); |
| input.blur(); |
| } |
| |
| function setInputAttributes(input, text, disabled, readonly) { |
| input.value = text; |
| input.disabled = disabled; |
| input.readOnly = !!readonly; |
| } |
| |
| function searchEventDispatched() { |
| searchEventObserved = true; |
| } |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |