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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/canvas/canvas-createPattern-fillRect-shadow.html

Issue 2675763005: Use testharness.js instead of js-test.js in LayoutTests/fast/canvas tests. (Closed)
Patch Set: Addressing comments Created 3 years, 10 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
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 1 <script src="../../resources/testharness.js"></script>
2 <html> 2 <script src="../../resources/testharnessreport.js"></script>
3 <head>
4 <script src="../../resources/js-test.js"></script>
5 </head>
6 <body> 3 <body>
7 <script src="script-tests/canvas-createPattern-fillRect-shadow.js"></script> 4 <script>
5
6 // Create auxiliary canvas to draw to and create an image from.
7 // This is done instead of simply loading an image from the file system
8 // because that would throw a SECURITY_ERR DOM Exception.
9 var aCanvas = document.createElement('canvas');
10 aCanvas.setAttribute('width', '200');
11 aCanvas.setAttribute('height', '200');
12 var aCtx = aCanvas.getContext('2d');
13
14 // Draw a circle on the same canvas.
15 aCtx.beginPath();
16 aCtx.fillStyle = 'blue';
17 aCtx.arc(100, 100, 100, 0, Math.PI * 2, false);
18 aCtx.fill();
19
20 // Create the image object to be drawn on the master canvas.
21 var img = new Image();
22 img.src = aCanvas.toDataURL(); // set a data URI of the base64 encoded image as the source
23
24 // Create master canvas.
25 var canvas = document.createElement('canvas');
26 document.body.appendChild(canvas);
27 canvas.setAttribute('width', '700');
28 canvas.setAttribute('height', '1100');
29 var ctx = canvas.getContext('2d');
30
31 function drawImageToCanvasAndCheckPixels() {
32 ctx.shadowOffsetX = 250;
33 ctx.fillStyle = ctx.createPattern(img, 'repeat');
34
35 ctx.shadowColor = 'rgba(255, 0, 0, 1.0)';
36 ctx.fillRect(50, 50, 200, 200);
37
38 ctx.shadowColor = 'rgba(255, 0, 0, 0.2)';
39 ctx.fillRect(50, 300, 200, 200);
40
41 ctx.shadowBlur = 10;
42 ctx.shadowColor = 'rgba(255, 0, 0, 1.0)';
43 ctx.fillRect(50, 550, 200, 200);
44
45 ctx.shadowColor = 'rgba(255, 0, 0, 0.2)';
46 ctx.fillRect(50, 800, 200, 200);
47
48 checkPixels();
49 }
50
51 function checkPixels() {
52 var imageData, data;
53
54 // Verify solid shadow.
55 imageData = ctx.getImageData(300, 50, 1, 1);
56 d = imageData.data;
57 assert_equals(d[0], 255);
58 assert_equals(d[1], 0);
59 assert_equals(d[2], 0);
60 assert_equals(d[3], 255);
61
62 imageData = ctx.getImageData(300, 249, 1, 1);
63 d = imageData.data;
64 assert_equals(d[0], 255);
65 assert_equals(d[1], 0);
66 assert_equals(d[2], 0);
67 assert_equals(d[3], 255);
68
69 imageData = ctx.getImageData(490, 240, 1, 1);
70 d = imageData.data;
71 assert_equals(d[0], 255);
72 assert_equals(d[1], 0);
73 assert_equals(d[2], 0);
74 assert_equals(d[3], 255);
75
76 // Verify solid alpha shadow.
77 imageData = ctx.getImageData(310, 350, 1, 1);
78 d = imageData.data;
79 assert_equals(d[0], 255);
80 assert_equals(d[1], 0);
81 assert_equals(d[2], 0);
82 assert_approx_equals(d[3], 51, 10);
83
84 imageData = ctx.getImageData(490, 490, 1, 1);
85 d = imageData.data;
86 assert_equals(d[0], 255);
87 assert_equals(d[1], 0);
88 assert_equals(d[2], 0);
89 assert_approx_equals(d[3], 51, 10);
90
91 imageData = ctx.getImageData(300, 499, 1, 1);
92 d = imageData.data;
93 assert_equals(d[0], 255);
94 assert_equals(d[1], 0);
95 assert_equals(d[2], 0);
96 assert_approx_equals(d[3], 51, 10);
97
98 // Verify blurry shadow.
99 imageData = ctx.getImageData(310, 550, 1, 1);
100 d = imageData.data;
101 assert_equals(d[0], 255);
102 assert_equals(d[1], 0);
103 assert_equals(d[2], 0);
104 assert_approx_equals(d[3], 141, 10);
105
106 imageData = ctx.getImageData(490, 750, 1, 1);
107 d = imageData.data;
108 assert_equals(d[0], 255);
109 assert_equals(d[1], 0);
110 assert_equals(d[2], 0);
111 assert_approx_equals(d[3], 113, 10);
112
113 imageData = ctx.getImageData(499, 499, 1, 1);
114 d = imageData.data;
115 assert_equals(d[0], 255);
116 assert_equals(d[1], 0);
117 assert_equals(d[2], 0);
118 assert_approx_equals(d[3], 51, 10);
119
120 // Verify blurry alpha shadow.
121 imageData = ctx.getImageData(300, 850, 1, 1);
122 d = imageData.data;
123 assert_equals(d[0], 255);
124 assert_equals(d[1], 0);
125 assert_equals(d[2], 0);
126 assert_approx_equals(d[3], 29, 10);
127
128 imageData = ctx.getImageData(500, 875, 1, 1);
129 d = imageData.data;
130 assert_equals(d[0], 255);
131 assert_equals(d[1], 0);
132 assert_equals(d[2], 0);
133 assert_approx_equals(d[3], 23, 10);
134
135 imageData = ctx.getImageData(300, 900, 1, 1);
136 d = imageData.data;
137 assert_equals(d[0], 255);
138 assert_equals(d[1], 0);
139 assert_equals(d[2], 0);
140 assert_approx_equals(d[3], 29, 10);
141 }
142
143 async_test(t => {
144 img.onload = function() {
145 t.step(drawImageToCanvasAndCheckPixels);
146 t.done();
147 }
148 }, "Ensure correct behavior of canvas with createPattern + fillRect with shadow. ");
149 </script>
8 </body> 150 </body>
9 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698