<!DOCTYPE html>
<title>Tests that desynchronized Canvas getContext() calls are idempotent.</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
test(function() {
canvas = document.createElement('canvas');
var ctx_2d = canvas.getContext('2d', {desynchronized : true});
assert_true(ctx_2d instanceof CanvasRenderingContext2D);
assert_true(ctx_2d.getContextAttributes().desynchronized);
var ctx_2d_second = canvas.getContext('2d', {desynchronized : true});
assert_equals(ctx_2d, ctx_2d_second);
var ctx_2d_third = canvas.getContext('2d');
assert_equals(ctx_2d, ctx_2d_third);
}, '2D Canvas getContext() is idempotent');
test(function() {
canvas = document.createElement('canvas');
var ctx_3d = canvas.getContext('webgl', {desynchronized : true});
assert_true(ctx_3d instanceof WebGLRenderingContext);
assert_true(ctx_3d.getContextAttributes().desynchronized);
var ctx_3d_second = canvas.getContext('webgl', {desynchronized : true});
assert_equals(ctx_3d, ctx_3d_second);
var ctx_3d_third = canvas.getContext('webgl');
assert_equals(ctx_3d, ctx_3d_third);
}, 'WebGL Canvas getContext() is idempotent');
</script>