summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/delegated-ink
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/delegated-ink')
-rw-r--r--testing/web-platform/tests/delegated-ink/delete-presentation-area.html21
-rw-r--r--testing/web-platform/tests/delegated-ink/exception-thrown-bad-color.tentative.html23
-rw-r--r--testing/web-platform/tests/delegated-ink/exception-thrown-diameter-less-than-or-equal-to-0.tentative.html31
-rw-r--r--testing/web-platform/tests/delegated-ink/exception-thrown-untrusted-event.tentative.window.js10
-rw-r--r--testing/web-platform/tests/delegated-ink/requestPresenter-returns-valid-promise.tentative.window.js31
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.");