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

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, 9 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 // Basic src png decode success test.
17 promise_test(function() {
domenic 2017/03/27 10:24:20 These test messages and/or the comments above each
18 var message = "PNG Image must be decoded with undefined.";
19
20 var img = new Image();
21 img.src = "/images/green.png";
22 return img.decode().then(function(arg) {
23 assert_equals(arg, undefined, message);
24 });
25 });
26
27 // Basic src svg decode success test.
28 promise_test(function() {
29 var message = "SVG Image must be decoded with undefined.";
30
31 var img = new Image();
32 img.src = "/images/green.svg";
33 return img.decode().then(function(arg) {
34 assert_equals(arg, undefined, message);
35 });
36 });
37
38 // Non existent path failure.
39 promise_test(function(t) {
40 var img = new Image();
41 img.src = "/non/existent/path.png";
42 var promise = img.decode();
43 return promise_rejects(t, "EncodingError", promise);
44 });
45
46 // src-less decode failure.
47 promise_test(function(t) {
48 var img = new Image();
49 var promise = img.decode();
50 return promise_rejects(t, "EncodingError", promise);
51 });
52
53 // src changes causes a decode failure.
54 promise_test(function(t) {
55 var img = new Image();
56 img.src = "/images/green.png";
57 var promise = img.decode();
58 img.src = "/images/green.svg";
59 return promise_rejects(t, "EncodingError", promise);
60 });
61
62 // src changes causes a decode failure, following good decodes succeed.
63 promise_test(function(t) {
64 var img = new Image();
65 img.src = "/images/green.png";
66 var first_promise = img.decode();
67 img.src = "/images/green.svg";
68 var second_promise = img.decode();
69 assert_true(first_promise !== second_promise);
70 return Promise.all([
71 promise_rejects(t, "EncodingError", first_promise),
72 second_promise
73 ]);
74 });
75
76 // src changes causes a decode failure, following bad decodes also fail.
77 promise_test(function(t) {
78 var img = new Image();
79 img.src = "/images/green.png";
80 var first_promise = img.decode();
81 img.src = "/non/existent/path.png";
82 var second_promise = img.decode();
83 assert_true(first_promise !== second_promise);
84 return Promise.all([
85 promise_rejects(t, "EncodingError", first_promise),
86 promise_rejects(t, "EncodingError", second_promise)
87 ]);
88 });
89
90 // src changes to the same path succeed.
91 promise_test(function(t) {
92 var img = new Image();
93 img.src = "/images/green.png";
94 var first_promise = img.decode();
95 img.src = "/images/green.png";
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 });
103
104 // Multiple decodes all succeed.
105 promise_test(function(t) {
106 var img = new Image();
107 img.src = "/images/green.png";
108 var first_promise = img.decode();
109 var second_promise = img.decode();
110 assert_true(first_promise !== second_promise);
111 return Promise.all([
112 first_promise,
113 second_promise
114 ]);
115 });
116
117 // srcset tests
118 // -------------------
119 // Basic srcset png decode success test.
120 promise_test(function() {
121 var message = "PNG Image must be decoded with undefined.";
122
123 var img = new Image();
124 img.srcset = "/images/green.png 100w";
125 return img.decode().then(function(arg) {
126 assert_equals(arg, undefined, message);
127 });
128 });
129
130 // Basic srcset svg decode success test.
131 promise_test(function() {
132 var message = "SVG Image must be decoded with undefined.";
133
134 var img = new Image();
135 img.srcset = "/images/green.svg 100w";
136 return img.decode().then(function(arg) {
137 assert_equals(arg, undefined, message);
138 });
139 });
140
141 // Non existent path failure.
142 promise_test(function(t) {
143 var img = new Image();
144 img.srcset = "/non/existent/path.png 100w";
145 var promise = img.decode();
146 return promise_rejects(t, "EncodingError", promise);
147 });
148
149 // srcset changes causes a decode failure.
150 promise_test(function(t) {
151 var img = new Image();
152 img.srcset = "/images/green.png 100w";
153 var promise = img.decode();
154 img.srcset = "/images/green.svg 100w";
155 return promise_rejects(t, "EncodingError", promise);
156 });
157
158 // srcset changes causes a decode failure, following good decodes succeed.
159 promise_test(function(t) {
160 var img = new Image();
161 img.srcset = "/images/green.png 100w";
162 var first_promise = img.decode();
163 img.srcset = "/images/green.svg 100w";
164 var second_promise = img.decode();
165 assert_true(first_promise !== second_promise);
166 return Promise.all([
167 promise_rejects(t, "EncodingError", first_promise),
168 second_promise
169 ]);
170 });
171
172 // srcset changes causes a decode failure, following bad decodes also fail.
173 promise_test(function(t) {
174 var img = new Image();
175 img.srcset = "/images/green.png 100w";
176 var first_promise = img.decode();
177 img.srcset = "/non/existent/path.png 100w";
178 var second_promise = img.decode();
179 assert_true(first_promise !== second_promise);
180 return Promise.all([
181 promise_rejects(t, "EncodingError", first_promise),
182 promise_rejects(t, "EncodingError", second_promise)
183 ]);
184 });
185
186 // srcset changes to the same path succeed.
187 promise_test(function(t) {
188 var img = new Image();
189 img.srcset = "/images/green.png 100w";
190 var first_promise = img.decode();
191 img.srcset = "/images/green.png 100w";
192 var second_promise = img.decode();
193 assert_true(first_promise !== second_promise);
194 return Promise.all([
195 first_promise,
196 second_promise
197 ]);
198 });
199
200 // Multiple decodes all succeed.
201 promise_test(function(t) {
202 var img = new Image();
203 img.srcset = "/images/green.png 100w";
204 var first_promise = img.decode();
205 var second_promise = img.decode();
206 assert_true(first_promise !== second_promise);
207 return Promise.all([
208 first_promise,
209 second_promise
210 ]);
211 });
212
213 </script>
OLDNEW
« no previous file with comments | « content/renderer/gpu/render_widget_compositor.cc ('k') | third_party/WebKit/Source/core/html/HTMLImageElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698