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

<h1>2d.scrollPathIntoView.verticalRL</h1>
<p class="desc">scrollPathIntoView() works in vertical-rl 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-rl writing mode");
_addTest(function(canvas, ctx) {

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

ctx.beginPath();
ctx.rect(4, 8, 16, 32);
ctx.scrollPathIntoView();
var rect = canvas.getBoundingClientRect();
var viewportWidth = document.scrollingElement.clientWidth;
var canvasWidth = canvas.width;
_assertSame(Math.round(rect.top), 100, "Math.round(rect.top)", "100");
_assertSame(Math.round(rect.right), viewportWidth + (canvasWidth - 4 - 16), "Math.round(rect.right)", "viewportWidth + (canvasWidth - 4 - 16)");


});
</script>

