diff options
Diffstat (limited to 'testing/web-platform/tests/html/canvas/offscreen/canvas-context/2d.getContext.options.any.js')
-rw-r--r-- | testing/web-platform/tests/html/canvas/offscreen/canvas-context/2d.getContext.options.any.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/canvas/offscreen/canvas-context/2d.getContext.options.any.js b/testing/web-platform/tests/html/canvas/offscreen/canvas-context/2d.getContext.options.any.js new file mode 100644 index 0000000000..930f7722ee --- /dev/null +++ b/testing/web-platform/tests/html/canvas/offscreen/canvas-context/2d.getContext.options.any.js @@ -0,0 +1,46 @@ +test(() => { + const expected = [ + "alpha", + "colorSpace", + "colorSpace toString", + "desynchronized", + "willReadFrequently", + ]; + var actual = []; + const options = { + get alpha() { + actual.push("alpha"); + return true; + }, + get willReadFrequently() { + actual.push("willReadFrequently"); + return false; + }, + get desynchronized() { + actual.push("desynchronized"); + return false; + }, + get colorSpace() { + actual.push("colorSpace"); + return { + toString() { + actual.push("colorSpace toString"); + return "srgb"; + } + }; + }, + }; + + const canvas = new OffscreenCanvas(100, 50); + const context = canvas.getContext('2d', options); + assert_not_equals(context, null, "context"); + assert_array_equals(actual, expected, "order of operations (creation)"); + actual = []; + assert_equals(canvas.getContext('2d', options), context, "cached context"); + // Getting the cached context does not involve the options argument at all; + // the context retains its existing settings, and the new options (if any) + // are ignored. + // Therefore, there is no expectation that the 'options' dictionary will be + // accessed again here, and we cannot predict the contents, if any, of the + // 'actual' array. +}); |