| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>CanvasRenderingContext2D imageSmoothingEnabled save/restore test</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <link rel="help" href="https://html.spec.whatwg.org/multipage/scripting.html#image-smoothing"> |
| <script> |
| function createTestImage() { |
| var image = document.createElement('canvas'); |
| var imgctx = image.getContext('2d'); |
| imgctx.fillStyle = "#F00"; |
| imgctx.fillRect(0, 0, 2, 2); |
| imgctx.fillStyle = "#0F0"; |
| imgctx.fillRect(0, 0, 1, 1); |
| return image; |
| } |
| |
| test(function() { |
| var ctx = document.createElement('canvas').getContext('2d'); |
| ctx.save(); |
| ctx.imageSmoothingEnabled = false; |
| ctx.restore(); |
| assert_equals(ctx.imageSmoothingEnabled, true); |
| }, "Test that restore() undoes any modifications to imageSmoothingEnabled."); |
| |
| test(function() { |
| var ctx = document.createElement('canvas').getContext('2d'); |
| ctx.imageSmoothingEnabled = false; |
| var old = ctx.imageSmoothingEnabled; |
| ctx.save(); |
| assert_equals(ctx.imageSmoothingEnabled, old); |
| ctx.restore(); |
| }, "Test that save() doesn't modify the values of imageSmoothingEnabled."); |
| |
| test(function() { |
| var ctx = document.createElement('canvas').getContext('2d'); |
| ctx.imageSmoothingEnabled = false; |
| ctx.save(); |
| ctx.imageSmoothingEnabled = true; |
| ctx.restore(); |
| var image = createTestImage(); |
| ctx.scale(10, 10); |
| ctx.drawImage(image, 0, 0); |
| var pixels = ctx.getImageData(0, 0, 1, 1).data; |
| assert_array_equals(pixels, [0, 255, 0, 255]); |
| }, "Test that restoring actually changes smoothing and not just the attribute value."); |
| </script> |