https://github.com/web-platform-tests/wpt
Raw File
Tip revision: cf94be3b1a0f78b0ecb5e812ecc81f9d5f561cef authored by Eric Willigers on 03 October 2017, 02:38:14 UTC
CSS Motion Path: support <size> for ray paths
Tip revision: cf94be3
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() {
       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)

       // 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() {
       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>
back to top