123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- <!DOCTYPE HTML>
- <html>
- <!--
- https://bugzilla.mozilla.org/show_bug.cgi?id=534833
- -->
- <head>
- <title>Test for Bug 534833</title>
- <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
- </head>
- <body>
- <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=534833">Mozilla Bug 534833</a>
- <p id="display"></p>
- <div id="content" style="display: none">
-
- </div>
- <pre id="test">
- <script type="application/javascript">
- /** Test for Bug 534833 **/
- SimpleTest.waitForExplicitFinish();
- addLoadEvent(runTests);
- var input1GotClick = 0;
- var input2GotClick = 0;
- var textarea1GotClick = 0;
- var textarea2GotClick = 0;
- var div1GotClick = 0;
- var div2GotClick = 0;
- var tests = [ { element: "text", clickText: true },
- { element: "text2", clickText: false },
- { element: "area", clickText: true },
- { element: "area2", clickText: false },
- { element: "d", clickText: true },
- { element: "d", clickText: false },
- { element: "d2", clickText: true },
- { element: "d2", clickText: false }
- ];
- function nextTest_() {
- if (!tests.length) {
- finishTests();
- return;
- }
- var test = tests.shift();
- var el = document.getElementById(test.element);
- el.scrollIntoView(true);
- if (test.clickText) {
- synthesizeMouse(el, 5, 5, {type : "mousedown" });
- synthesizeMouse(el, 5, 5, {type : "mouseup" });
- } else {
- synthesizeMouse(el, el.getBoundingClientRect().width - 5, 5, {type : "mousedown" });
- synthesizeMouse(el, el.getBoundingClientRect().width - 5, 5, {type : "mouseup" });
- }
- nextTest();
- }
- function nextTest() {
- var el = document.getElementById("initialfocus");
- el.addEventListener("focus", function() {
- el.removeEventListener("focus", arguments.callee, false);
- setTimeout(nextTest_, 0);
- }, false);
- el.focus();
- }
- function runTests() {
- var t = document.getElementById("text");
- var t2 = document.getElementById("text2");
- var a = document.getElementById("area");
- var a2 = document.getElementById("area2");
- var d = document.getElementById("d");
- var d2 = document.getElementById("d2");
- // input 1
- t.onfocus = function(e) {
- t.value = "";
- }
- t.onclick = function(e) {
- ++input1GotClick;
- }
- // input 2
- t2.onfocus = function(e) {
- t2.value = "";
- }
- t2.onclick = function(e) {
- ++input2GotClick;
- }
- // textarea 1
- a.onfocus = function(e) {
- a.value = "";
- }
- a.onclick = function(e) {
- ++textarea1GotClick;
- }
- // textarea 2
- a2.onfocus = function(e) {
- a2.value = "";
- }
- a2.onclick = function(e) {
- ++textarea2GotClick;
- }
- // div 1
- var c = 0;
- d.onmousedown = function(e) {
- d.textContent = (++c) + " / click before or after |";
- }
- d.onclick = function(e) {
- ++div1GotClick;
- }
- // div 2
- var c2 = 0;
- d2.onmousedown = function(e) {
- d2.firstChild.data = (++c2) + " / click before or after |";
- }
- d2.onclick = function(e) {
- ++div2GotClick;
- }
- nextTest();
- }
- function finishTests() {
- is(input1GotClick, 1, "input element should have got a click!");
- is(input2GotClick, 1, "input element should have got a click! (2)");
- is(textarea1GotClick, 1, "textarea element should have got a click!");
- is(textarea2GotClick, 1, "textarea element should have got a click! (2)");
- is(div1GotClick, 2, "div element's content text was replaced, it should have got 2 click!");
- is(div2GotClick, 2, "div element's content text was modified, it should have got 2 clicks!");
- SimpleTest.finish();
- }
- </script>
- </pre>
- <input type="text" id="initialfocus"><br>
- <input type="text" id="text" value="click before |" style="width: 95%;"><br>
- <input type="text" id="text2" value="click after |" style="width: 95%;">
- <br>
- <textarea id="area" rows="2" style="width: 95%;">
- click before
- |
- </textarea><br>
- <textarea id="area2" rows="2" style="width: 95%;">
- click after |
- </textarea>
- <div id="d" style="border: 1px solid black;">click before or after |</div>
- <div id="d2" style="border: 1px solid black;">click before or after |</div>
- </body>
- </html>
|