| <!DOCTYPE html> |
| <meta charset=utf-8> |
| <meta name="timeout" content="long"> |
| <title>img.decode()</title> |
| <link rel="author" title="Vladimir Levin" href="mailto:[email protected]"> |
| <link rel=help href=""> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id="log"></div> |
| |
| <script> |
| "use strict"; |
| |
| // src tests |
| // ------------------- |
| promise_test(function() { |
| var img = new Image(); |
| img.src = "/images/green.png"; |
| return img.decode().then(function(arg) { |
| assert_equals(arg, undefined); |
| }); |
| }, "(src) PNG image decodes with undefined."); |
| |
| promise_test(function() { |
| var img = new Image(); |
| img.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAA" + |
| "D91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QUSEioKsyAgyw" + |
| "AAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAAWSURBVA" + |
| "jXY9y3bx8DAwPL58+fGRgYACktBRltLfebAAAAAElFTkSuQmCC"; |
| return img.decode().then(function(arg) { |
| assert_equals(arg, undefined); |
| }); |
| }, "(src) PNG url image decodes with undefined."); |
| |
| promise_test(function() { |
| var img = new Image(); |
| img.src = "/images/green.svg"; |
| return img.decode().then(function(arg) { |
| assert_equals(arg, undefined); |
| }); |
| }, "(src) SVG image decodes with undefined."); |
| |
| promise_test(function(t) { |
| var img = new Image(); |
| img.src = "/non/existent/path.png"; |
| var promise = img.decode(); |
| return promise_rejects(t, "EncodingError", promise); |
| }, "(src) Non-existent path fails decode."); |
| |
| promise_test(function(t) { |
| var img = new Image(); |
| img.src = "data:image/png;base64,iVBO00PDR0BADBEEF00KGg"; |
| var promise = img.decode(); |
| return promise_rejects(t, "EncodingError", promise); |
| }, "(src) Corrupt image fails decode."); |
| |
| promise_test(function(t) { |
| var img = new Image(); |
| var promise = img.decode(); |
| return promise_rejects(t, "EncodingError", promise); |
| }, "(src) Path-less image fails decode."); |
| |
| promise_test(function() { |
| var img = new Image(); |
| img.src = "/images/green.png"; |
| var first_promise = img.decode(); |
| var second_promise = img.decode(); |
| assert_true(first_promise !== second_promise); |
| return Promise.all([ |
| first_promise, |
| second_promise |
| ]); |
| }, "(src) Multiple decodes succeed."); |
| |
| // srcset tests |
| // ------------------- |
| promise_test(function() { |
| var img = new Image(); |
| img.srcset = "/images/green.png 100w"; |
| return img.decode().then(function(arg) { |
| assert_equals(arg, undefined); |
| }); |
| }, "(srcset) PNG image decodes with undefined."); |
| |
| promise_test(function() { |
| var img = new Image(); |
| img.srcset = "/images/green.svg 100w"; |
| return img.decode().then(function(arg) { |
| assert_equals(arg, undefined); |
| }); |
| }, "(srcset) SVG image decodes with undefined."); |
| |
| promise_test(function(t) { |
| var img = new Image(); |
| img.srcset = "/non/existent/path.png 100w"; |
| var promise = img.decode(); |
| return promise_rejects(t, "EncodingError", promise); |
| }, "(srcset) Non-existent path fails decode."); |
| |
| promise_test(function() { |
| var img = new Image(); |
| img.srcset = "/images/green.png 100w"; |
| var first_promise = img.decode(); |
| var second_promise = img.decode(); |
| assert_true(first_promise !== second_promise); |
| return Promise.all([ |
| first_promise, |
| second_promise |
| ]); |
| }, "(srcset) Multiple decodes succeed."); |
| |
| </script> |