Index: third_party/WebKit/LayoutTests/fast/canvas/canvas-currentColor.html |
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/canvas-currentColor.html b/third_party/WebKit/LayoutTests/fast/canvas/canvas-currentColor.html |
index 29d1738b82142babc1e2840b815f1823db3bab15..5d69335a19ac2dcf15c6485cbd8f7ece2a9ad375 100644 |
--- a/third_party/WebKit/LayoutTests/fast/canvas/canvas-currentColor.html |
+++ b/third_party/WebKit/LayoutTests/fast/canvas/canvas-currentColor.html |
@@ -1,9 +1,84 @@ |
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
-<html> |
-<head> |
-<script src="../../resources/js-test.js"></script> |
-</head> |
+<script src="../../resources/testharness.js"></script> |
+<script src="../../resources/testharnessreport.js"></script> |
<body> |
-<script src="script-tests/canvas-currentColor.js"></script> |
+<script> |
+canvas = document.createElement('canvas'); |
+canvas.width = 100; |
+canvas.height = 100; |
+ctx = canvas.getContext('2d'); |
+ |
+function attachCanvasToDocument() { |
+ document.body.appendChild(canvas); |
+ return document.body.parentNode != null; |
+} |
+ |
+function tryLinearGradientColor(color) { |
+ var gradient = ctx.createLinearGradient(0, 0, 100, 100); |
+ gradient.addColorStop(0, color); |
+ gradient.addColorStop(1, color); |
+ ctx.fillStyle = gradient; |
+ ctx.fillRect(0, 0, 100, 100); |
+ var data = ctx.getImageData(0, 0, 1, 1).data; |
+ return '' + data[0] + ',' + data[1] + ',' + data[2] + ',' + data[3]; |
+} |
+ |
+function tryRadialGradientColor(color) { |
+ var gradient = ctx.createRadialGradient(0, 0, 100, 100, 100, 100); |
+ gradient.addColorStop(0, color); |
+ gradient.addColorStop(1, color); |
+ ctx.fillStyle = gradient; |
+ ctx.fillRect(0, 0, 100, 100); |
+ var data = ctx.getImageData(0, 0, 1, 1).data; |
+ return '' + data[0] + ',' + data[1] + ',' + data[2] + ',' + data[3]; |
+} |
+ |
+test(function(t) { |
+ // First we test with the canvas out-of-document, 'currentColor' should mean transparent black |
+ ctx.shadowColor = '#f00'; |
+ assert_equals(ctx.shadowColor, '#ff0000'); |
+ ctx.shadowColor = 'currentColor'; |
+ assert_equals(ctx.shadowColor, '#000000'); |
+ ctx.fillStyle = '#f00'; |
+ assert_equals(ctx.fillStyle, '#ff0000'); |
+ ctx.fillStyle = 'currentColor'; |
+ assert_equals(ctx.fillStyle, '#000000'); |
+ ctx.strokeStyle = '#f00'; |
+ assert_equals(ctx.strokeStyle, '#ff0000'); |
+ ctx.strokeStyle = 'currentColor'; |
+ assert_equals(ctx.strokeStyle, '#000000'); |
+ assert_equals(tryLinearGradientColor('#f00'), '255,0,0,255'); |
+ assert_equals(tryLinearGradientColor('currentColor'), '0,0,0,255'); |
+ assert_equals(tryRadialGradientColor('#f00'), '255,0,0,255'); |
+ assert_equals(tryRadialGradientColor('currentColor'), '0,0,0,255'); |
+ |
+ // Attach to the document and set the canvas's color to #123456 |
+ assert_equals(attachCanvasToDocument(), true); |
+ canvas.style.color = '#123456'; |
+ assert_equals(canvas.style.color, 'rgb(18, 52, 86)'); |
+ |
+ // 'currentColor' should now mean #123456 |
+ ctx.shadowColor = '#f00'; |
+ assert_equals(ctx.shadowColor, '#ff0000'); |
+ ctx.shadowColor = 'currentColor'; |
+ assert_equals(ctx.shadowColor, '#123456'); |
+ ctx.fillStyle = '#f00'; |
+ assert_equals(ctx.fillStyle, '#ff0000'); |
+ ctx.fillStyle = 'currentColor'; |
+ assert_equals(ctx.fillStyle, '#123456'); |
+ ctx.strokeStyle = '#f00'; |
+ assert_equals(ctx.strokeStyle, '#ff0000'); |
+ ctx.strokeStyle = 'currentColor'; |
+ assert_equals(ctx.strokeStyle, '#123456'); |
+ assert_equals(tryLinearGradientColor('#f00'), '255,0,0,255'); |
+ assert_equals(tryLinearGradientColor('currentColor'), '0,0,0,255'); |
+ assert_equals(tryRadialGradientColor('#f00'), '255,0,0,255'); |
+ assert_equals(tryRadialGradientColor('currentColor'), '0,0,0,255'); |
+ |
+ // Last but not least, verify that we're case insensitive |
+ ctx.shadowColor = '#f00'; |
+ assert_equals(ctx.shadowColor, '#ff0000'); |
+ ctx.shadowColor = 'CURRENTCOLOR'; |
+ assert_equals(ctx.shadowColor, '#123456'); |
+}, "Test that CanvasRenderingContext2D supports the 'currentColor' value."); |
+</script> |
</body> |
-</html> |