Update WPT tests for embedded content
[WebKit-https.git] / LayoutTests / imported / w3c / web-platform-tests / html / semantics / embedded-content / the-img-element / img.complete.html
index 771b8e1..42113cd 100644 (file)
@@ -11,6 +11,7 @@
 <img src="" id="imgTestTag2">
 <img id="imgTestTag3" style="width: 80px; height:auto;">
 <img id="imgTestTag4">
+<img id="imgTestTag5">
 
 <script>
   var imageInstance = document.createElement('img');
 <script>
   test(function() {
     assert_true(document.getElementById("imgTestTag").complete);
-  }, "img src omitted");
+  }, "img src and srcset omitted");
 
   test(function() {
     assert_true(document.getElementById("imgTestTag2").complete);
-  }, "img src empty");
+  }, "img src and srcset empty");
 
   // test if set to true after img is completely available
   var t = async_test("async src complete test");
@@ -38,8 +39,9 @@
       assert_false(loaded);
       loaded = true;
       assert_true(document.getElementById("imgTestTag3").complete);
-      var currentSrc = document.getElementById("imgTestTag3").currentSrc
-      assert_equals(new URL(window.location.origin + "/" + currentSrc).pathname, "/3.jpg");
+      var currentSrc = document.getElementById("imgTestTag3").currentSrc;
+      var expectedUrl = new URL("3.jpg", window.location);
+      assert_equals(new URL(currentSrc).pathname, expectedUrl.pathname);
     }, "Only one onload, despite setting the src twice");
 
     document.getElementById("imgTestTag3").src = 'test' + Math.random();
     document.getElementById("imgTestTag3").src = '3.jpg?nocache=' + Math.random();
   });
 
+  var t1 = async_test("async srcset complete test");
+  t1.step(function(){
+    var loaded = false;
+    document.getElementById("imgTestTag5").onload = t1.step_func_done(function(){
+      assert_false(loaded);
+      loaded = true;
+      assert_true(document.getElementById("imgTestTag5").complete);
+    }, "Only one onload, despite setting the srcset twice");
+    //Test if src, srcset is omitted
+    assert_true(document.getElementById("imgTestTag5").complete)
+    document.getElementById("imgTestTag5").srcset = "/images/green-256x256.png 1x";
+    //test if img.complete is set to false if srcset is present
+    assert_false(document.getElementById("imgTestTag5").complete, "srcset present, should be set to false");
+    //change src again, should make only one request as per 'await stable state'
+    document.getElementById("imgTestTag5").srcset="/images/green-256x256.png 1.6x"
+  });
 
   // https://html.spec.whatwg.org/multipage/multipage/embedded-content-1.html#update-the-image-data
   // says to "await a stable state" before fetching so we use a separate <script>