Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/fast/canvas/canvas-large-fills.html |
| diff --git a/third_party/WebKit/LayoutTests/fast/canvas/canvas-large-fills.html b/third_party/WebKit/LayoutTests/fast/canvas/canvas-large-fills.html |
| index dd4c03ee23f39d62df72e3055cc126b6c647f444..98a8af8f2953edcc17a0fa51a8b370a1a1734075 100644 |
| --- a/third_party/WebKit/LayoutTests/fast/canvas/canvas-large-fills.html |
| +++ b/third_party/WebKit/LayoutTests/fast/canvas/canvas-large-fills.html |
| @@ -1,9 +1,8 @@ |
| -<!DOCTYPE html> |
| - |
| -<script src="../../resources/js-test.js"></script> |
| +<script src="../../resources/testharness.js"></script> |
| +<script src="../../resources/testharnessreport.js"></script> |
| <pre id="console"></pre> |
| -<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas> |
| +<canvas id="c" width="100" height="50"></canvas> |
| <script> |
| var canvas = document.getElementById("c"); |
| @@ -15,57 +14,40 @@ function clearContextToGreen() { |
| ctx.fillRect(0, 0, canvas.width, canvas.height); |
| } |
| -var testData = [ |
| - {compositeMode: 'source-over', expected: [0, 0, 255]}, |
| - {compositeMode: 'source-in', expected: [0, 0, 255]}, |
| - {compositeMode: 'source-out', expected: [0, 0, 0]}, |
| - {compositeMode: 'source-atop', expected: [0, 0, 255]}, |
| - {compositeMode: 'destination-over', expected: [0, 255, 0]}, |
| - {compositeMode: 'destination-in', expected: [0, 255, 0]}, |
| - {compositeMode: 'destination-out', expected: [0, 0, 0]}, |
| - {compositeMode: 'destination-atop', expected: [0, 255, 0]}, |
| - {compositeMode: 'lighter', expected: [0, 255, 255]}, |
| - {compositeMode: 'copy', expected: [0, 0, 255]}, |
| - {compositeMode: 'xor', expected: [0, 0, 0]}, |
| +var testScenarios = [ |
| + ['Test source-over', 'source-over', [0, 0, 255]], |
| + ['Test source-in', 'source-in', [0, 0, 255]], |
| + ['Test source-out', 'source-out', [0, 0, 0]], |
| + ['Test source-atop', 'source-atop', [0, 0, 255]], |
| + ['Test destination-over', 'destination-over', [0, 255, 0]], |
| + ['Test destiation-in', 'destination-in', [0, 255, 0]], |
| + ['Test destination-out', 'destination-out', [0, 0, 0]], |
| + ['Test destination-atop', 'destination-atop', [0, 255, 0]], |
| + ['Test lighter', 'lighter', [0, 255, 255]], |
| + ['Test copy', 'copy', [0, 0, 255]], |
| + ['Test xor', 'xor', [0, 0, 0]] |
| ]; |
| -function toHexString(number) { |
| - var hexString = number.toString(16).toUpperCase(); |
| - if (number <= 9) |
| - hexString = '0' + hexString; |
| - return hexString; |
| -} |
| - |
| -function doTest(dataItem, fillSize) { |
| +var fillSize = 0; |
| +function testLargeRect(compositeMode, expected) { |
| clearContextToGreen(); |
| ctx.fillStyle = "rgb(0, 0, 255)"; |
| - ctx.globalCompositeOperation = dataItem.compositeMode; |
| + ctx.globalCompositeOperation = compositeMode; |
| ctx.fillRect(0, 0, fillSize, fillSize); |
| - var data = ctx.getImageData(0, 0, canvas.width, canvas.height); |
| - var pixelOK = true; |
| - var pixelString = '#'; |
| - var expectedString = '#'; |
| - |
| - for (var x = 0; x < 3; x++) { |
| - pixelString = pixelString + toHexString(data.data[x]); |
| - expectedString = expectedString + toHexString(dataItem.expected[x]); |
| - if (data.data[x] != dataItem.expected[x]) |
| - pixelOK = false; |
| - } |
| - |
| - var testName = "Fill Size " + fillSize + ', ' + dataItem.compositeMode; |
| - if (pixelOK) |
| - testPassed(testName + ': ' + pixelString); |
| - else |
| - testFailed(testName + ': EXPECTED ' + expectedString + ', GOT ' + pixelString); |
| + var data = ctx.getImageData(0, 0, canvas.width, canvas.height).data; |
| + var testPassed = true; |
| + for (var i = 0; i < 3; i++) |
| + if (data[i] != expected[i]) |
| + testPassed = false; |
| + assert_true(testPassed); |
| } |
| -debug("Tests that using the different composite modes to fill large rects doesn't crash and works as expected."); |
| -[10000, 50000, 100000].forEach(function(fillSize) { |
| - testData.forEach(function(dataItem) { |
| - doTest(dataItem, fillSize) |
| - })}); |
| +test(function(t) { |
| + [10000, 50000, 100000].forEach(function(fillSizeItem) { |
| + fillSize = fillSizeItem; |
| + generate_tests(testLargeRect, testScenarios); |
|
Justin Novosad
2017/02/16 15:41:56
should not put generate_tests inside a test.
zakerinasab
2017/02/16 18:12:40
Acknowledged.
|
| + }); |
| +}, "Tests that using the different composite modes to fill large rects doesn't crash and works as expected."); |
| </script> |
| -</html> |