<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by tools/gentest.py. -->
<title>OffscreenCanvas test: 2d.pattern.basic.zerocanvas</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/canvas-tests.js"></script>

<h1>2d.pattern.basic.zerocanvas</h1>
<p class="desc"></p>


<script>
var t = async_test("");
t.step(function() {

var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');

offscreenCanvas.width = 0;
offscreenCanvas.height = 10;
_assertSame(offscreenCanvas.width, 0, "offscreenCanvas.width", "0");
_assertSame(offscreenCanvas.height, 10, "offscreenCanvas.height", "10");
assert_throws("INVALID_STATE_ERR", function() { ctx.createPattern(offscreenCanvas, 'repeat'); });
offscreenCanvas.width = 10;
offscreenCanvas.height = 0;
_assertSame(offscreenCanvas.width, 10, "offscreenCanvas.width", "10");
_assertSame(offscreenCanvas.height, 0, "offscreenCanvas.height", "0");
assert_throws("INVALID_STATE_ERR", function() { ctx.createPattern(offscreenCanvas, 'repeat'); });
offscreenCanvas.width = 0;
offscreenCanvas.height = 0;
_assertSame(offscreenCanvas.width, 0, "offscreenCanvas.width", "0");
_assertSame(offscreenCanvas.height, 0, "offscreenCanvas.height", "0");
assert_throws("INVALID_STATE_ERR", function() { ctx.createPattern(offscreenCanvas, 'repeat'); });

t.done();

});
</script>
