<!DOCTYPE html>
<html>
<head>
<title>This tests that simple line layout is applied on multiple sibling text renderers.</title>
<script>
  if (window.internals)
    internals.settings.setLegacyLineLayoutVisualCoverageEnabled(true);
</script>
</head>
<body>
<div id=container>
</div>
<script>
  var container = document.getElementById("container");
  container.appendChild(document.createTextNode("Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam\n"));
  container.appendChild(document.createTextNode("furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit\n"));
  container.appendChild(document.createTextNode("audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,\n"));
  container.appendChild(document.createTextNode("nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus\n"));
  container.appendChild(document.createTextNode("habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua\n"));
  container.appendChild(document.createTextNode("consilia non sentis, constrictam iam horum omnium scientia teneri\n"));
  container.appendChild(document.createTextNode("coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,\n"));
  container.appendChild(document.createTextNode("ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum\n"));
  container.appendChild(document.createTextNode("ignorare arbitraris?  O tempora, o mores!\n"));
</script>
</body>
</html>
