Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(366)

Side by Side Diff: third_party/WebKit/LayoutTests/external/wpt/image-decodes/image-decode.html

Issue 2769823002: Add decode() functionality to image elements. (Closed)
Patch Set: update Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698