<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
var testFont = '40px sans-serif';

function test(x, y, text, style, rotation, baseline) {
  var canvas = document.createElement("canvas");
  canvas.width = 400;
  canvas.height = 400;
  canvas.style.cssText = 'position:absolute;' + style;
  document.getElementsByTagName('body')[0].appendChild(canvas);
  var ctx = canvas.getContext('2d');
  ctx.globalAlpha = 0.5;
  ctx.beginPath();
  ctx.moveTo(x - 20, y); ctx.lineTo(x + 20, y);
  ctx.moveTo(x, y - 20); ctx.lineTo(x, y + 20);
  ctx.stroke();
  ctx.globalAlpha = 1.0;
  ctx.font = testFont;
  if (rotation != 0) {
    ctx.translate(x,y);
    ctx.rotate(rotation);
    ctx.translate(-x,-y);
  }
  if (baseline != '') {
    ctx.textBaseline = baseline;
  }
  ctx.fillText(text, x, y);
}

// Testcase: vertical text with orientation:mixed
test(100,  50, 'Hello', 'writing-mode:vertical-lr;text-orientation:mixed', 0, '');

// Reference: horizontal text with 90° rotation and textBaseline=middle
// test(100,  50, 'Hello', 'writing-mode:horizontal-tb', Math.PI/2, 'middle');

</script>