<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by tools/gentest.py. -->
<title>Canvas test: 2d.scrollPathIntoView.verticalLR</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/2dcontext/resources/canvas-tests.js"></script>
<link rel="stylesheet" href="/2dcontext/resources/canvas-tests.css">
<body class="show_output">

<h1>2d.scrollPathIntoView.verticalLR</h1>
<p class="desc">scrollPathIntoView() works in vertical-lr writing mode</p>


<p class="output">Actual output:</p>
<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>

<ul id="d"></ul>
<script>
var t = async_test("scrollPathIntoView() works in vertical-lr writing mode");
_addTest(function(canvas, ctx) {

document.documentElement.style.cssText = 'writing-mode: vertical-lr';
var div = document.createElement('div');
div.style.cssText = 'width: 200vw; height: 200vh';
document.body.appendChild(div);
canvas.style.cssText = 'position: absolute; top: 100px; left: 200px; border: none;';
window.scrollTo(0, 0);

ctx.beginPath();
ctx.rect(4, 8, 16, 32);
ctx.scrollPathIntoView();
var rect = canvas.getBoundingClientRect();
_assertSame(Math.round(rect.top), 100, "Math.round(rect.top)", "100");
_assertSame(Math.round(rect.left), -4, "Math.round(rect.left)", "-4");


});
</script>

