| products/Sources/formale Sprachen/C/Firefox/testing/web-platform/tests/webidl/current-realm.html |
 |
<!-- 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() {
const method = val.shift();
let obj = self[ 0].document[method](...val);
assert_global(obj)
obj = Document.prototype[method].call(self[ 0].document, ...val);
assert_global(obj)
}, val[ 0])
})
;[ "Request", "Response"].forEach(val => {
test(() => {
const obj = new self[ 0][val]( "about:blank");
assert_global(obj);
const cloneObj = obj.clone();
assert_global(cloneObj);
const involvedCloneObj = self[val].prototype[ "clone"].call(cloneObj);
assert_global(cloneObj);
}, val)
})
// Note: these are not [NewObject] and can be cached. But across globals?
;[[ "getElementsByTagName", "x"],
[ "getElementsByTagNameNS", null, "x"],
[ "getElementsByClassName", "x"]].forEach(function(val) {
test(function() {
const method = val.shift();
const obj = self[ 0].document[method](...val);
assert_global(obj)
const obj2 = Document.prototype[method].call(self[ 0].document, ...val);
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() {
const method = val.shift();
let obj = self[ 0].document.implementation[method](...val);
assert_global(obj)
obj = DOMImplementation.prototype[method].call(self[ 0].document.implementation, ... val);
assert_global(obj)
}, val[0])
})
;[["item", 0],
["getNamedItem", "test"],
["getNamedItemNS", null, "test"]].forEach(function(val) {
test(function() {
const method = val.shift();
const obj = self[0].document.body.attributes[method](...val);
assert_global(obj)
const obj2 = NamedNodeMap.prototype[method].call(self[0].document.body.attributes, ...val);
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)
// WebGL might not be enabled in this environment
if (!obj && val === "webgl") {
return;
}
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() {
const method = val.shift();
const c = self[0].document.createElement("canvas").getContext("2d");
let obj = c[method](...val);
assert_global(obj)
assert_global(obj.data)
obj = CanvasRenderingContext2D.prototype[method].call(c, ...val);
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>
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland
|
|