// DO NOT EDIT! This test has been generated by tools/gentest.py.
// OffscreenCanvas test in a worker:2d.text.measure.width.basic
// Description:
// Note:

importScripts("/resources/testharness.js");
importScripts("/common/canvas-tests.js");

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

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

deferTest();
step_timeout(t.step_func_done(function () {
    ctx.font = '50px CanvasTest';
    _assertSame(ctx.measureText('A').width, 50, "ctx.measureText('A').width", "50");
    _assertSame(ctx.measureText('AA').width, 100, "ctx.measureText('AA').width", "100");
    _assertSame(ctx.measureText('ABCD').width, 200, "ctx.measureText('ABCD').width", "200");

    ctx.font = '100px CanvasTest';
    _assertSame(ctx.measureText('A').width, 100, "ctx.measureText('A').width", "100");
}), 500);

t.done();

});
done();
