OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <meta charset=utf-8> |
| 3 <meta name="timeout" content="long"> |
| 4 <title>img.decode()</title> |
| 5 <link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"> |
| 6 <link rel=help href=""> |
| 7 <script src="/resources/testharness.js"></script> |
| 8 <script src="/resources/testharnessreport.js"></script> |
| 9 <div id="log"></div> |
| 10 |
| 11 <script> |
| 12 "use strict"; |
| 13 |
| 14 // src tests |
| 15 // ------------------- |
| 16 promise_test(function() { |
| 17 var img = new Image(); |
| 18 img.src = "/images/green.png"; |
| 19 return img.decode().then(function(arg) { |
| 20 assert_equals(arg, undefined); |
| 21 }); |
| 22 }, "(src) PNG image decodes with undefined."); |
| 23 |
| 24 promise_test(function() { |
| 25 var img = new Image(); |
| 26 img.src = "/images/green.svg"; |
| 27 return img.decode().then(function(arg) { |
| 28 assert_equals(arg, undefined); |
| 29 }); |
| 30 }, "(src) SVG image decodes with undefined."); |
| 31 |
| 32 promise_test(function(t) { |
| 33 var img = new Image(); |
| 34 img.src = "/non/existent/path.png"; |
| 35 var promise = img.decode(); |
| 36 return promise_rejects(t, "EncodingError", promise); |
| 37 }, "(src) Non-existent path fails decode."); |
| 38 |
| 39 promise_test(function(t) { |
| 40 var img = new Image(); |
| 41 var promise = img.decode(); |
| 42 return promise_rejects(t, "EncodingError", promise); |
| 43 }, "(src) Path-less image fails decode."); |
| 44 |
| 45 promise_test(function(t) { |
| 46 var img = new Image(); |
| 47 img.src = "/images/green.png"; |
| 48 var promise = img.decode(); |
| 49 img.src = "/images/green.svg"; |
| 50 return promise_rejects(t, "EncodingError", promise); |
| 51 }, "(src) Path changes fail decode."); |
| 52 |
| 53 promise_test(function(t) { |
| 54 var img = new Image(); |
| 55 img.src = "/images/green.png"; |
| 56 var first_promise = img.decode(); |
| 57 img.src = "/images/green.svg"; |
| 58 var second_promise = img.decode(); |
| 59 assert_true(first_promise !== second_promise); |
| 60 return Promise.all([ |
| 61 promise_rejects(t, "EncodingError", first_promise), |
| 62 second_promise |
| 63 ]); |
| 64 }, "(src) Path changes fail decode; following good decode succeeds."); |
| 65 |
| 66 promise_test(function(t) { |
| 67 var img = new Image(); |
| 68 img.src = "/images/green.png"; |
| 69 var first_promise = img.decode(); |
| 70 img.src = "/non/existent/path.png"; |
| 71 var second_promise = img.decode(); |
| 72 assert_true(first_promise !== second_promise); |
| 73 return Promise.all([ |
| 74 promise_rejects(t, "EncodingError", first_promise), |
| 75 promise_rejects(t, "EncodingError", second_promise) |
| 76 ]); |
| 77 }, "(src) Path changes fail decode; following bad decode fails."); |
| 78 |
| 79 promise_test(function() { |
| 80 var img = new Image(); |
| 81 img.src = "/images/green.png"; |
| 82 var first_promise = img.decode(); |
| 83 img.src = "/images/green.png"; |
| 84 var second_promise = img.decode(); |
| 85 assert_true(first_promise !== second_promise); |
| 86 return Promise.all([ |
| 87 first_promise, |
| 88 second_promise |
| 89 ]); |
| 90 }, "(src) Path changes to the same path succeed."); |
| 91 |
| 92 promise_test(function() { |
| 93 var img = new Image(); |
| 94 img.src = "/images/green.png"; |
| 95 var first_promise = img.decode(); |
| 96 var second_promise = img.decode(); |
| 97 assert_true(first_promise !== second_promise); |
| 98 return Promise.all([ |
| 99 first_promise, |
| 100 second_promise |
| 101 ]); |
| 102 }, "(src) Multiple decodes succeed."); |
| 103 |
| 104 // srcset tests |
| 105 // ------------------- |
| 106 promise_test(function() { |
| 107 var img = new Image(); |
| 108 img.srcset = "/images/green.png 100w"; |
| 109 return img.decode().then(function(arg) { |
| 110 assert_equals(arg, undefined); |
| 111 }); |
| 112 }, "(srcset) PNG image decodes with undefined."); |
| 113 |
| 114 promise_test(function() { |
| 115 var img = new Image(); |
| 116 img.srcset = "/images/green.svg 100w"; |
| 117 return img.decode().then(function(arg) { |
| 118 assert_equals(arg, undefined); |
| 119 }); |
| 120 }, "(srcset) SVG image decodes with undefined."); |
| 121 |
| 122 promise_test(function(t) { |
| 123 var img = new Image(); |
| 124 img.srcset = "/non/existent/path.png 100w"; |
| 125 var promise = img.decode(); |
| 126 return promise_rejects(t, "EncodingError", promise); |
| 127 }, "(srcset) Non-existent path fails decode."); |
| 128 |
| 129 promise_test(function(t) { |
| 130 var img = new Image(); |
| 131 img.srcset = "/images/green.png 100w"; |
| 132 var promise = img.decode(); |
| 133 img.srcset = "/images/green.svg 100w"; |
| 134 return promise_rejects(t, "EncodingError", promise); |
| 135 }, "(srcset) Path changes fail decode."); |
| 136 |
| 137 promise_test(function(t) { |
| 138 var img = new Image(); |
| 139 img.srcset = "/images/green.png 100w"; |
| 140 var first_promise = img.decode(); |
| 141 img.srcset = "/images/green.svg 100w"; |
| 142 var second_promise = img.decode(); |
| 143 assert_true(first_promise !== second_promise); |
| 144 return Promise.all([ |
| 145 promise_rejects(t, "EncodingError", first_promise), |
| 146 second_promise |
| 147 ]); |
| 148 }, "(srcset) Path changes fail decode; following good decode succeeds."); |
| 149 |
| 150 promise_test(function(t) { |
| 151 var img = new Image(); |
| 152 img.srcset = "/images/green.png 100w"; |
| 153 var first_promise = img.decode(); |
| 154 img.srcset = "/non/existent/path.png 100w"; |
| 155 var second_promise = img.decode(); |
| 156 assert_true(first_promise !== second_promise); |
| 157 return Promise.all([ |
| 158 promise_rejects(t, "EncodingError", first_promise), |
| 159 promise_rejects(t, "EncodingError", second_promise) |
| 160 ]); |
| 161 }, "(srcset) Path changes fail decode; following bad decode fails."); |
| 162 |
| 163 promise_test(function() { |
| 164 var img = new Image(); |
| 165 img.srcset = "/images/green.png 100w"; |
| 166 var first_promise = img.decode(); |
| 167 img.srcset = "/images/green.png 100w"; |
| 168 var second_promise = img.decode(); |
| 169 assert_true(first_promise !== second_promise); |
| 170 return Promise.all([ |
| 171 first_promise, |
| 172 second_promise |
| 173 ]); |
| 174 }, "(srcset) Path changes to the same path succeed."); |
| 175 |
| 176 promise_test(function() { |
| 177 var img = new Image(); |
| 178 img.srcset = "/images/green.png 100w"; |
| 179 var first_promise = img.decode(); |
| 180 var second_promise = img.decode(); |
| 181 assert_true(first_promise !== second_promise); |
| 182 return Promise.all([ |
| 183 first_promise, |
| 184 second_promise |
| 185 ]); |
| 186 }, "(srcset) Multiple decodes succeed."); |
| 187 |
| 188 </script> |
OLD | NEW |