img-picture-ancestor.html (1634B)
1 <!DOCTYPE html> 2 <title>img should only look at a parent picture element</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <picture> 6 <source media="not all" srcset="data:,a"> 7 <source media="all" srcset="data:,b"> 8 <img src="data:,c"> 9 <picture> 10 <source media="not all" srcset="data:,e"> 11 <source media="all" srcset="data:,f"> 12 <img src="data:,g"> 13 </picture> 14 </picture> 15 <script> 16 const picture1 = document.querySelector("picture"); 17 const picture2 = document.querySelector("picture > picture"); 18 const img1 = document.querySelector("picture > img"); 19 const img2 = document.querySelector("picture > picture > img"); 20 21 const div = document.createElement("div"); 22 23 const imgInsideDiv = document.createElement("img"); 24 imgInsideDiv.src = "data:,d"; 25 div.append(imgInsideDiv); 26 27 test(function() { 28 assert_equals(img1.currentSrc, "data:,b"); 29 }, "currentSrc of img in normally parented picture is correct"); 30 31 test(function() { 32 assert_equals(img2.currentSrc, "data:,f"); 33 }, "currentSrc of img in nested picture element is correct"); 34 35 async_test(function(t) { 36 picture1.append(div); 37 queueMicrotask(t.step_func(function() { 38 assert_equals(imgInsideDiv.currentSrc, "data:,d"); 39 t.done(); 40 })); 41 }, "currentSrc of img with picture ancestor but non-picture parent is correct"); 42 43 async_test(function(t) { 44 picture2.remove(); 45 queueMicrotask(t.step_func(function() { 46 assert_equals(img2.currentSrc, "data:,f"); 47 t.done(); 48 })); 49 }, "currentSrc of img in nested picture element remains correct when the inner picture is removed from the document"); 50 </script>