update-the-source-set.html (10044B)
1 <!doctype html> 2 <title>img update the source set</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script> 6 setup({explicit_done:true}); 7 8 function check(p) { 9 var img = p.querySelector('[data-expect]'); 10 test(function() { 11 var expect = img.dataset.expect; 12 if ('resolve' in img.dataset) { 13 var a = document.createElement('a'); 14 a.href = expect; 15 expect = a.href; 16 } 17 assert_equals(img.currentSrc, expect); 18 }, p.innerHTML); 19 } 20 21 onload = function() { 22 [].forEach.call(document.querySelectorAll('div:not([id])'), check); 23 done(); 24 }; 25 26 </script> 27 <div id=log></div> 28 <div><img data-expect=''></div> 29 <div><img src data-expect=''></div> 30 <div><img src='data:,a' data-expect='data:,a'></div> 31 <div><img srcset src='data:,a' data-expect='data:,a'></div> 32 <div><img srcset='data:,b' src='data:,a' data-expect='data:,b'></div> 33 <div><img src='data:,a' srcset='data:,b' data-expect='data:,b'><!-- srcset after src --></div> 34 <div><img src='data:,a' srcset='data:,b 1x' data-expect='data:,b'></div> 35 <div><img src='data:,a' srcset='data:,b 1.0x' data-expect='data:,b'></div> 36 <div><img src='data:,a' srcset='data:,b 1e0x' data-expect='data:,b'></div> 37 <div><img src='data:,a' srcset='data:,b 10000w' sizes='1px' data-expect='data:,b'></div> 38 <div><img src='data:,a' srcset='data:,b 10000w, data:,c 10000x' sizes='1px' data-expect='data:,b'></div> 39 <div><img src='data:,a' srcset='data:,b 10000x, data:,c 10000w' sizes='1px' data-expect='data:,b'></div> 40 <div><img src='data:,a' srcset='data:,b 1w' sizes='10000px' data-expect='data:,b'></div> 41 <div><img src='data:,a' srcset='data:,b 1w, data:,c 0.0001x' sizes='10000px' data-expect='data:,b'></div> 42 <div><img src='data:,a' srcset='data:,b 0.0001x, data:,c 1w' sizes='10000px' data-expect='data:,b'></div> 43 <div><img srcset='data:,a' data-expect='data:,a'></div> 44 45 <!-- child is not a <source> --> 46 47 <div><picture>foo<img src='data:,a' data-expect='data:,a'></picture></div> 48 <div><picture><!--foo--><img src='data:,a' data-expect='data:,a'></picture></div> 49 <div><picture><br><img src='data:,a' data-expect='data:,a'></picture></div> 50 <div><picture><p></p><img src='data:,a' data-expect='data:,a'></picture></div> 51 <div><picture><video><source srcset='data:,b'></video><img src='data:,a' data-expect='data:,a'></picture></div> 52 <div><picture><span><source srcset='data:,b'></span><img src='data:,a' data-expect='data:,a'></picture></div> 53 <div><picture><svg><source srcset='data:,b'/></svg><img src='data:,a' data-expect='data:,a'></picture></div> 54 <div><picture><svg/><source srcset='data:,b'/><img src='data:,a' data-expect='data:,b'></picture></div> 55 <div><picture><svg><font/><source srcset='data:,b'/></svg><img src='data:,a' data-expect='data:,a'></picture></div> 56 <div><picture><svg><!--<font face> tag breaks out of svg--><font face></font><source srcset='data:,b'/></svg><img src='data:,a' data-expect='data:,b'></picture></div> 57 <div><picture><img src='data:,a'><img src='data:,b' data-expect='data:,b'></picture></div> 58 59 <!-- <source> has no srcset --> 60 61 <div><picture><source><img src='data:,a' data-expect='data:,a'></picture></div> 62 <div><picture><source src='data:,b'><img src='data:,a' data-expect='data:,a'></picture></div> 63 64 <!-- <source srcset> has zero candidates --> 65 66 <div><picture><source srcset><img src='data:,a' data-expect='data:,a'></picture></div> 67 <div><picture><source srcset=', ,'><img src='data:,a' data-expect='data:,a'></picture></div> 68 <div><picture><source srcset='data:,b 1x 1x'><img src='data:,a' data-expect='data:,a'></picture></div> 69 70 <!-- <source media> --> 71 72 <div><picture><source srcset='data:,b' media><img src='data:,a' data-expect='data:,b'></picture></div> 73 <div><picture><source srcset='data:,b' media='all'><img src='data:,a' data-expect='data:,b'></picture></div> 74 <div><picture><source srcset='data:,b' media='all and (min-width:0)'><img src='data:,a' data-expect='data:,b'></picture></div> 75 <div><picture><source srcset='data:,b' media='all and !'><img src='data:,a' data-expect='data:,a'></picture></div> 76 <div><picture><source srcset='data:,b' media='all and (!)'><img src='data:,a' data-expect='data:,a'></picture></div> 77 <div><picture><source srcset='data:,b' media='not all'><img src='data:,a' data-expect='data:,a'></picture></div> 78 <div><picture><source srcset='data:,b' media='not all and (min-width:0)'><img src='data:,a' data-expect='data:,a'></picture></div> 79 <div><picture><source srcset='data:,b' media='not all and (max-width:0)'><img src='data:,a' data-expect='data:,b'></picture></div> 80 <div><picture><source srcset='data:,b' media='not all and !'><img src='data:,a' data-expect='data:,a'></picture></div> 81 <div><picture><source srcset='data:,b' media='not all and (!)'><img src='data:,a' data-expect='data:,a'></picture></div> 82 <div><picture><source srcset='data:,b' media='all, !'><img src='data:,a' data-expect='data:,b'></picture></div> 83 <div><picture><source srcset='data:,b' media=','><img src='data:,a' data-expect='data:,a'></picture></div> 84 <div><picture><source srcset='data:,b' media=', all'><img src='data:,a' data-expect='data:,b'></picture></div> 85 86 <!-- <source type> assume support for gif, png, jpg, svg, ico --> 87 88 <div><picture><source srcset='data:,b' type><img src='data:,a' data-expect='data:,b'></picture></div> 89 <div><picture><source srcset='data:,b' type=' '><img src='data:,a' data-expect='data:,b'></picture></div> 90 <div><picture><source srcset='data:,b' type='image/gif'><img src='data:,a' data-expect='data:,b'></picture></div> 91 <div><picture><source srcset='data:,b' type=' image/gif'><img src='data:,a' data-expect='data:,b'></picture></div> 92 <div><picture><source srcset='data:,b' type='image/gif '><img src='data:,a' data-expect='data:,b'></picture></div> 93 <div><picture><source srcset='data:,b' type='image/gif;'><img src='data:,a' data-expect='data:,b'></picture></div> 94 <div><picture><source srcset='data:,b' type='image/gif;encodings'><img src='data:,a' data-expect='data:,b'></picture></div> 95 <div><picture><source srcset='data:,b' type='image/gif;encodings='><img src='data:,a' data-expect='data:,b'></picture></div> 96 <div><picture><source srcset='data:,b' type='image/gif;encodings=foobar'><img src='data:,a' data-expect='data:,b'></picture></div> 97 <div><picture><source srcset='data:,b' type='image/png'><img src='data:,a' data-expect='data:,b'></picture></div> 98 <div><picture><source srcset='data:,b' type='image/jpeg'><img src='data:,a' data-expect='data:,b'></picture></div> 99 <div><picture><source srcset='data:,b' type='image/svg+xml'><img src='data:,a' data-expect='data:,b'></picture></div> 100 <div><picture><source srcset='data:,b' type='image/x-icon'><img src='data:,a' data-expect='data:,b'></picture></div> 101 <div><picture><source srcset='data:,b' type='text/xml'><img src='data:,a' data-expect='data:,a'></picture></div> 102 <div><picture><source srcset='data:,b' type='text/html'><img src='data:,a' data-expect='data:,a'></picture></div> 103 <div><picture><source srcset='data:,b' type='text/plain'><img src='data:,a' data-expect='data:,a'></picture></div> 104 <div><picture><source srcset='data:,b' type='text/css'><img src='data:,a' data-expect='data:,a'></picture></div> 105 <div><picture><source srcset='data:,b' type='video/mp4'><img src='data:,a' data-expect='data:,a'></picture></div> 106 <div><picture><source srcset='data:,b' type='video/ogg'><img src='data:,a' data-expect='data:,a'></picture></div> 107 <div><picture><source srcset='data:,b' type='video/webm'><img src='data:,a' data-expect='data:,a'></picture></div> 108 <div><picture><source srcset='data:,b' type='unknown/unknown'><img src='data:,a' data-expect='data:,a'></picture></div> 109 <div><picture><source srcset='data:,b' type='application/octet-stream'><img src='data:,a' data-expect='data:,a'></picture></div> 110 <div><picture><source srcset='data:,b' type='application/x-shockwave-flash'><img src='data:,a' data-expect='data:,a'></picture></div> 111 <div><picture><source srcset='data:,b' type='image\gif'><img src='data:,a' data-expect='data:,a'></picture></div> 112 <div><picture><source srcset='data:,b' type='gif'><img src='data:,a' data-expect='data:,a'></picture></div> 113 <div><picture><source srcset='data:,b' type='.gif'><img src='data:,a' data-expect='data:,a'></picture></div> 114 <div><picture><source srcset='data:,b' type='*'><img src='data:,a' data-expect='data:,a'></picture></div> 115 <div><picture><source srcset='data:,b' type='*/*'><img src='data:,a' data-expect='data:,a'></picture></div> 116 <div><picture><source srcset='data:,b' type='image/*'><img src='data:,a' data-expect='data:,a'></picture></div> 117 <div><picture><source srcset='data:,b' type=','><img src='data:,a' data-expect='data:,a'></picture></div> 118 <div><picture><source srcset='data:,b' type='image/gif, image/png'><img src='data:,a' data-expect='data:,a'></picture></div> 119 <div><picture><source srcset='data:,b' type='image/gif image/png'><img src='data:,a' data-expect='data:,a'></picture></div> 120 <div><picture><source srcset='data:,b' type='image/foobarbaz'><img src='data:,a' data-expect='data:,a'></picture></div> 121 122 <!-- trailing garbage --> 123 124 <div><picture><img src='data:,a' data-expect='data:,a'>foo</picture></div> 125 <div><picture><img src='data:,a' data-expect='data:,a'><br></picture></div> 126 <div><picture><img src='data:,a' data-expect='data:,a'><!--foo--></picture></div> 127 <div><picture><img src='data:,a' data-expect='data:,a'><img src='data:,b'></picture></div> 128 <div><picture><img data-expect=''><img src='data:,b'></picture></div> 129 <div><picture><img src='data:,a' data-expect='data:,a'><source srcset='data:,b'></picture></div> 130 <div><picture><img data-expect=''><source srcset='data:,b'></picture></div> 131 132 <!-- parent not picture --> 133 134 <div><picture><span><source srcset='data:,b'><img data-expect=''></span></picture></div> 135 <div><picture><span><source srcset='data:,b'><img src='data:,a' data-expect='data:,a'></span></picture></div> 136 <div><picture><source srcset='data:,b'><span><img src='data:,a' data-expect='data:,a'></span></picture></div> 137 138 <!-- no src --> 139 140 <div><picture><source srcset='data:,b'><img data-expect='data:,b'></picture></div>