diff options
Diffstat (limited to 'testing/web-platform/tests/delegated-ink')
5 files changed, 116 insertions, 0 deletions
diff --git a/testing/web-platform/tests/delegated-ink/delete-presentation-area.html b/testing/web-platform/tests/delegated-ink/delete-presentation-area.html new file mode 100644 index 0000000000..2408c7eeaf --- /dev/null +++ b/testing/web-platform/tests/delegated-ink/delete-presentation-area.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> + +<canvas id="canvas"></canvas> +<script> + promise_test(async (t) => { + const presenter = await navigator.ink.requestPresenter({presentationArea: canvas}); + const style = { color: "green", diameter: 6 }; + + window.addEventListener("pointermove", evt => { + presenter.updateInkTrailStartPoint(evt, style); + }); + document.body.removeChild(canvas); + const actions_promise = new test_driver.Actions().pointerMove(10, 10).send(); + t.add_cleanup(() => actions_promise); + }, "No crash when accessing presenter associated with deleted presentation area."); +</script> diff --git a/testing/web-platform/tests/delegated-ink/exception-thrown-bad-color.tentative.html b/testing/web-platform/tests/delegated-ink/exception-thrown-bad-color.tentative.html new file mode 100644 index 0000000000..54c28efb5c --- /dev/null +++ b/testing/web-platform/tests/delegated-ink/exception-thrown-bad-color.tentative.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> + +<canvas id="canvas"></canvas> +<script> + promise_test(async (t) => { + const presenter = await navigator.ink.requestPresenter({presentationArea: canvas}); + const style = { color: "bad-color", diameter: 6 }; + + canvas.addEventListener("pointermove", evt => { + assert_throws_js(TypeError, function() { + presenter.updateInkTrailStartPoint(evt, style); + }, "Expected a TypeError to be thrown due to bad color."); + }); + + const actions_promise = new test_driver.Actions().pointerMove(10,10).send(); + t.add_cleanup(() => actions_promise); + }); +</script>
\ No newline at end of file diff --git a/testing/web-platform/tests/delegated-ink/exception-thrown-diameter-less-than-or-equal-to-0.tentative.html b/testing/web-platform/tests/delegated-ink/exception-thrown-diameter-less-than-or-equal-to-0.tentative.html new file mode 100644 index 0000000000..bf26ab1cff --- /dev/null +++ b/testing/web-platform/tests/delegated-ink/exception-thrown-diameter-less-than-or-equal-to-0.tentative.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> + +<canvas id="canvas"></canvas> +<script> + function RunTest(d, move) { + promise_test(async (t) => { + const presenter = await navigator.ink.requestPresenter({presentationArea: canvas}); + const style = { color: "green", diameter: d }; + + canvas.addEventListener("pointermove", evt => { + assert_equals(d, style.diameter); + assert_throws_dom("NotSupportedError", function() { + presenter.updateInkTrailStartPoint(evt, style); + }, "Expected a NotSupportedError to be thrown due to diameter set to "+d+"."); + }); + + const actions_promise = new test_driver.Actions().pointerMove(move, move).send(); + t.add_cleanup(() => actions_promise); + }); + } + + RunTest(0, 10); + RunTest(-0.000001, 11); + RunTest(-1, 10); + RunTest(-100, 11); +</script>
\ No newline at end of file diff --git a/testing/web-platform/tests/delegated-ink/exception-thrown-untrusted-event.tentative.window.js b/testing/web-platform/tests/delegated-ink/exception-thrown-untrusted-event.tentative.window.js new file mode 100644 index 0000000000..0b83dd27de --- /dev/null +++ b/testing/web-platform/tests/delegated-ink/exception-thrown-untrusted-event.tentative.window.js @@ -0,0 +1,10 @@ +let presenter = navigator.ink.requestPresenter(); +let style = { color: "red", diameter: 3 }; +let evt = new PointerEvent("pointerdown", {clientX: 10, clientY: 10}); +presenter.then( function(p) { + test(() => { + assert_throws_dom("NotAllowedError", function() { + p.updateInkTrailStartPoint(evt, style); + }, "NotAllowedError is expected due to untrusted event."); + }, "Expected a NotAllowedError to be thrown due to untrusted event."); +})
\ No newline at end of file diff --git a/testing/web-platform/tests/delegated-ink/requestPresenter-returns-valid-promise.tentative.window.js b/testing/web-platform/tests/delegated-ink/requestPresenter-returns-valid-promise.tentative.window.js new file mode 100644 index 0000000000..b804c8e3f2 --- /dev/null +++ b/testing/web-platform/tests/delegated-ink/requestPresenter-returns-valid-promise.tentative.window.js @@ -0,0 +1,31 @@ +test(() => { + assert_implements(typeof navigator.ink !== "undefined", 'ink is not supported'); +}, "navigator needs to support ink to run this test."); + +promise_test(t => { + return promise_rejects_js(t, TypeError, navigator.ink.requestPresenter('invalid-param')); +}, "Receive rejected promise for an invalid param."); + +promise_test(t => { + var canvas = document.createElement("canvas"); + var fragment = document.createElement("template").content; + fragment.appendChild(canvas); + return promise_rejects_dom(t, 'NotAllowedError', + navigator.ink.requestPresenter({presentationArea: canvas})); +}, "Received rejected promise for presentation area not in the document."); + +promise_test(() => { + return navigator.ink.requestPresenter(); +}, "Received fulfilled promise for no param"); + +promise_test(() => { + return navigator.ink.requestPresenter(null); +}, "Received fulfilled promise for null param"); + +promise_test(() => { + return navigator.ink.requestPresenter({}); +}, "Received fulfilled promise for empty dictionary param"); + +promise_test(() => { + return navigator.ink.requestPresenter({presentationArea: null}); +}, "Received fulfilled promise for dictionary param with valid element."); |