diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/resources')
5 files changed, 57 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/resources/common.js b/testing/web-platform/tests/html/semantics/embedded-content/resources/common.js new file mode 100644 index 0000000000..06f18b3e04 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/resources/common.js @@ -0,0 +1,45 @@ +// Helper to access the element, its associated loading promise, and also to +// resolve the promise. +class ElementLoadPromise { + constructor(element_id) { + this.element_id = element_id; + this.promise = new Promise((resolve, reject) => { + this.resolve = resolve + this.reject = reject + }); + } + element() { + return document.getElementById(this.element_id); + } +} + +// Returns if the image is complete and the lazily loaded image matches the expected image. +function is_image_fully_loaded(image, expected_image) { + if (!image.complete || !expected_image.complete) { + return false; + } + + if (image.width != expected_image.width || + image.height != expected_image.height) { + return false; + } + + let canvas = document.createElement('canvas'); + canvas.width = image.width; + canvas.height = image.height; + let canvasContext = canvas.getContext("2d"); + canvasContext.save(); + canvasContext.drawImage(image, 0, 0); + let data = canvasContext.getImageData(0, 0, canvas.width, canvas.height).data; + + canvasContext.restore(); + canvasContext.drawImage(expected_image, 0, 0); + let expected_data = canvasContext.getImageData(0, 0, canvas.width, canvas.height).data; + + for (var i = 0; i < data.length; i++) { + if (data[i] != expected_data[i]) { + return false; + } + } + return true; +} diff --git a/testing/web-platform/tests/html/semantics/embedded-content/resources/not-embeddable.html b/testing/web-platform/tests/html/semantics/embedded-content/resources/not-embeddable.html new file mode 100644 index 0000000000..a941511642 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/resources/not-embeddable.html @@ -0,0 +1,3 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>I should not be embeddable because of X-Frame-Options</title> diff --git a/testing/web-platform/tests/html/semantics/embedded-content/resources/not-embeddable.html.headers b/testing/web-platform/tests/html/semantics/embedded-content/resources/not-embeddable.html.headers new file mode 100644 index 0000000000..fa717cc748 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/resources/not-embeddable.html.headers @@ -0,0 +1 @@ +X-Frame-Options: deny diff --git a/testing/web-platform/tests/html/semantics/embedded-content/resources/should-load.html b/testing/web-platform/tests/html/semantics/embedded-content/resources/should-load.html new file mode 100644 index 0000000000..a9a178ce51 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/resources/should-load.html @@ -0,0 +1,3 @@ +<script> + parent.loadedCount++; +</script> diff --git a/testing/web-platform/tests/html/semantics/embedded-content/resources/should-not-load.html b/testing/web-platform/tests/html/semantics/embedded-content/resources/should-not-load.html new file mode 100644 index 0000000000..6281b2da55 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/resources/should-not-load.html @@ -0,0 +1,5 @@ +<script> + parent.nestingTest.step(function() { + parent.assert_unreached(window.frameElement.getAttribute("test-description")); + }); +</script> |