| Index: third_party/WebKit/LayoutTests/imported/wpt/WebIDL/current-realm.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/WebIDL/current-realm.html b/third_party/WebKit/LayoutTests/imported/wpt/WebIDL/current-realm.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..fd24709b3be55a1cddced3827a7bef00be301ca9
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/WebIDL/current-realm.html
|
| @@ -0,0 +1,145 @@
|
| +<!-- This tests the agreed upon outcome for https://www.w3.org/Bugs/Public/show_bug.cgi?id=24652
|
| + that has not been reflected in the IDL standard yet due to lack of editing resources.
|
| +
|
| + TODO: https://github.com/w3c/webcrypto/issues/85 -->
|
| +<!DOCTYPE html>
|
| +<meta charset=utf-8>
|
| +<title>Current Realm</title>
|
| +<script src="/resources/testharness.js"></script>
|
| +<script src="/resources/testharnessreport.js"></script>
|
| +<div id="log"></div>
|
| +<iframe srcdoc="<body test>"></iframe>
|
| +<script>
|
| + setup({explicit_done:true})
|
| +
|
| + function isObjectFromGlobal(object, global) {
|
| + return object instanceof global.Object;
|
| + }
|
| + function assert_global(obj) {
|
| + assert_false(isObjectFromGlobal(obj, self), obj + " should not be from top-level Realm")
|
| + assert_true(isObjectFromGlobal(obj, self[0]), obj + " should be from <iframe> Realm")
|
| + }
|
| +
|
| + onload = function() {
|
| + [["querySelectorAll", "test"],
|
| + ["createElement", "x"],
|
| + ["createElementNS", null, "x"],
|
| + ["createDocumentFragment"],
|
| + ["createTextNode", "test"],
|
| + ["createComment", "test"],
|
| + ["createProcessingInstruction", "x", "x"],
|
| + ["createAttribute", "x"],
|
| + ["createAttributeNS", "x", "x"],
|
| + ["createEvent", "Event"],
|
| + ["createRange"],
|
| + ["createNodeIterator", document.head],
|
| + ["createTreeWalker", document.head]].forEach(function(val) {
|
| + test(function() {
|
| + var obj = self[0].document[val[0]](val[1], val[2])
|
| + assert_global(obj)
|
| +
|
| + obj = Document.prototype[val[0]].call(self[0].document, val[1], val[2])
|
| + assert_global(obj)
|
| + }, val[0])
|
| + })
|
| +
|
| + // Note: these are not [NewObject] and can be cached. But across globals?
|
| + ;[["getElementsByTagName", "x"],
|
| + ["getElementsByTagNameNS", null, "x"],
|
| + ["getElementsByClassName", "x"]].forEach(function(val) {
|
| + test(function() {
|
| + var obj = self[0].document[val[0]](val[1], val[2])
|
| + assert_global(obj)
|
| +
|
| + var obj2 = Document.prototype[val[0]].call(self[0].document, val[1], val[2])
|
| + assert_global(obj)
|
| +
|
| + assert_equals(obj, obj2) // XXX this might be controversial
|
| + }, val[0])
|
| + })
|
| +
|
| + ;[["createDocumentType", "x", "", ""],
|
| + ["createDocument", null, "", null],
|
| + ["createHTMLDocument", "x"]].forEach(function(val) {
|
| + test(function() {
|
| + var obj = self[0].document.implementation[val[0]](val[1], val[2], val[3])
|
| + assert_global(obj)
|
| +
|
| + obj = DOMImplementation.prototype[val[0]].call(self[0].document.implementation, val[1], val[2], val[3])
|
| + assert_global(obj)
|
| + }, val[0])
|
| + })
|
| +
|
| + ;[["item", 0],
|
| + ["getNamedItem", "test"],
|
| + ["getNamedItemNS", null, "test"]].forEach(function(val) {
|
| + test(function() {
|
| + var obj = self[0].document.body.attributes[val[0]](val[1], val[2])
|
| + assert_global(obj)
|
| +
|
| + var obj2 = NamedNodeMap.prototype[val[0]].call(self[0].document.body.attributes, val[1], val[2])
|
| + assert_global(obj)
|
| +
|
| + assert_equals(obj, obj2)
|
| + }, "NamedNodeMap " + val[0])
|
| + })
|
| +
|
| + test(function() {
|
| + var c = self[0].document.createTextNode(""),
|
| + obj = c.splitText(0)
|
| + assert_global(obj)
|
| +
|
| + obj = Text.prototype.splitText.call(c, "")
|
| + assert_global(obj)
|
| + }, "splitText")
|
| +
|
| + ;["extractContents",
|
| + "cloneContents",
|
| + "cloneRange"].forEach(function(val) {
|
| + test(function() {
|
| + var c = self[0].document.createRange(),
|
| + obj = c[val]()
|
| + assert_global(obj)
|
| +
|
| + obj = Range.prototype[val].call(c)
|
| + assert_global(obj)
|
| + }, val)
|
| + })
|
| +
|
| + ;["2d", "webgl"].forEach(function(val) {
|
| + test(function() {
|
| + var c = self[0].document.createElement("canvas"),
|
| + obj = c.getContext(val)
|
| + assert_global(obj)
|
| +
|
| + obj = HTMLCanvasElement.prototype.getContext.call(c, val)
|
| + assert_global(obj)
|
| + }, "getContext " + val)
|
| + })
|
| +
|
| + ;[["createImageData", 5, 5],
|
| + ["getImageData", 5, 5, 5, 5]].forEach(function(val) {
|
| + test(function() {
|
| + var c = self[0].document.createElement("canvas").getContext("2d"),
|
| + obj = c[val[0]](val[1], val[2], val[3], val[4]);
|
| + assert_global(obj)
|
| + assert_global(obj.data)
|
| +
|
| + obj = CanvasRenderingContext2D.prototype[val[0]].call(c, val[1], val[2], val[3], val[4]);
|
| + assert_global(obj)
|
| + assert_global(obj.data)
|
| + }, val[0])
|
| + })
|
| +
|
| + test(function() {
|
| + var c = new self[0].FontFace("test", "about:blank"),
|
| + obj = c.load()
|
| + assert_global(obj)
|
| +
|
| + obj = FontFace.prototype.load.call(c)
|
| + assert_global(obj)
|
| + }, "FontFace's load()")
|
| +
|
| + done()
|
| + }
|
| +</script>
|
|
|