| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../../resources/js-test-pre.js"></script> |
| <!-- |
| To test the new CSS property -webkit-tap-highlight-color which is only supported when building |
| WebKit with ENABLE(TOUCH_EVENTS), we create a new div element and add -webkit-tap-highlight-color |
| in the element, then see whether we can get the specified tap highlight color from DOM. |
| WebKit ports can use this css property to get the customized tap highlight color from the webpage |
| which is set by web developers to make sure that tap highlight color fits their websites instead |
| of using the hardcode value provided by browsers. |
| --> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| <script> |
| var div = document.createElement("div"); |
| div.id = "touchtarget"; |
| div.style.width = "100px"; |
| div.style.height = "100px"; |
| div.style.color = "blue"; |
| div.innerText = "Touch Me!"; |
| div.style.webkitTapHighlightColor = "rgba(11, 22, 33, 0)"; |
| |
| function onTouchStart() |
| { |
| debug("Event: touch start"); |
| shouldBeEqualToString("event.targetTouches[0].target.tagName", "DIV"); |
| shouldBeEqualToString("event.targetTouches[0].target.id", "touchtarget"); |
| shouldBeEqualToString("div.ownerDocument.defaultView.getComputedStyle(div, null).getPropertyValue('-webkit-tap-highlight-color')", "rgba(11, 22, 33, 0)"); |
| div.style.webkitTapHighlightColor = ""; // Clear the customized tap highlight color |
| } |
| |
| function onTouchEnd() |
| { |
| debug("Event: touch end"); |
| // Check the default value. |
| shouldBeFalse("div.ownerDocument.defaultView.getComputedStyle(div, null).getPropertyValue('-webkit-tap-highlight-color') == 'rgba(11, 22, 33, 0)'") |
| shouldBeNonNull("div.ownerDocument.defaultView.getComputedStyle(div, null).getPropertyValue('-webkit-tap-highlight-color')"); |
| // Notify the test done. |
| isSuccessfullyParsed(); |
| testRunner.notifyDone(); |
| } |
| |
| div.addEventListener("touchstart", onTouchStart, false); |
| div.addEventListener("touchend", onTouchEnd, false); |
| document.body.insertBefore(div, document.body.firstChild); |
| |
| function touchTargets() |
| { |
| eventSender.clearTouchPoints(); |
| eventSender.addTouchPoint(20, 20); |
| eventSender.touchStart(); |
| eventSender.updateTouchPoint(0, 50, 50); |
| eventSender.touchMove(); |
| eventSender.releaseTouchPoint(0); |
| eventSender.touchEnd(); |
| } |
| |
| if (window.testRunner) |
| testRunner.waitUntilDone(); |
| |
| if (window.eventSender && eventSender.clearTouchPoints) { |
| description("Check tap highlight color in touch event"); |
| |
| touchTargets(); |
| } else { |
| debug("This test requires DumpRenderTree && WebKit built with ENABLE(TOUCH_EVENT).") |
| } |
| </script> |
| </body> |
| </html> |