19dfa8dc622519374a57a0b24ab9d7f73afe160edBen Murdochdescription("This tests support for the document.createTouchList API."); 29dfa8dc622519374a57a0b24ab9d7f73afe160edBen Murdoch 39dfa8dc622519374a57a0b24ab9d7f73afe160edBen MurdochshouldBeTrue('"createTouchList" in document'); 49dfa8dc622519374a57a0b24ab9d7f73afe160edBen Murdoch 565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch// Test createTouchList with no arguments. 69dfa8dc622519374a57a0b24ab9d7f73afe160edBen Murdochvar touchList = document.createTouchList(); 79dfa8dc622519374a57a0b24ab9d7f73afe160edBen MurdochshouldBeNonNull("touchList"); 89dfa8dc622519374a57a0b24ab9d7f73afe160edBen MurdochshouldBe("touchList.length", "0"); 99dfa8dc622519374a57a0b24ab9d7f73afe160edBen MurdochshouldBeNull("touchList.item(0)"); 109dfa8dc622519374a57a0b24ab9d7f73afe160edBen MurdochshouldBeNull("touchList.item(1)"); 119dfa8dc622519374a57a0b24ab9d7f73afe160edBen Murdoch 1265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch// Test createTouchList with Touch objects as arguments. 1365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtry { 1465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch var t = document.createTouch(window, document.body, 12341, 60, 65, 100, 105); 1565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch var t2 = document.createTouch(window, document.body, 12342, 50, 55, 115, 120); 1665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch var tl = document.createTouchList(t, t2); 1765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 1865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch var evt = document.createEvent("TouchEvent"); 1965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch evt.initTouchEvent(tl, tl, tl, "touchstart", window, 0, 0, 0, 0, true, false, false, false); 2065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 2165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch document.body.addEventListener("touchstart", function handleTouchStart(ev) { 2265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ts = ev; 2365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch shouldBe("ts.touches.length", "2"); 2465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch shouldBe("ts.touches[0].identifier", "12341"); 2565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch shouldBe("ts.touches[0].clientX", "60"); 2665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch shouldBe("ts.touches[1].screenY", "120"); 2765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch shouldBe("ts.ctrlKey", "true"); 2865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }); 2965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 3065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch document.body.dispatchEvent(evt); 3165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} catch(e) { 3265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch testFailed("An exception was thrown: " + e.message); 3365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 3465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 3565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch// Test createTouchList with invalid arguments which throws exceptions. 3665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtry { 3765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch var tl = document.createTouchList(1, 2); 3865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} catch(e) { 3965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch testFailed("An exception was thrown: " + e.message); 4065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 4165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 429dfa8dc622519374a57a0b24ab9d7f73afe160edBen MurdochsuccessfullyParsed = true; 439dfa8dc622519374a57a0b24ab9d7f73afe160edBen MurdochisSuccessfullyParsed(); 4465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 45