<html>
<head>
<script src="../resources/js-test.js"></script>
</head>
<body>

<p>
  Lorem ipsum dolor sit amet,<br>
  consectetur adipiscing elit.<br>
  Aliquam faucibus diam sit amet nunc vestibulum auctor.
</p>

<p style="max-width:150px;">
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam faucibus diam sit amet nunc vestibulum auctor.
</p>

<p id="description"></p>
<div id="console"></div>

<script>

description("This test checks that linebreaks explicitly set by the author are properly exposed to ATs.");

if (window.testRunner) {
  if (window.accessibilityController) {

    document.body.focus();
    var webArea = accessibilityController.focusedElement;

    var brokenParagraph = webArea.childAtIndex(0);
    debug("Role of the paragraph with break lines: " + brokenParagraph.role);
    debug("Value of the paragraph with break lines: " + brokenParagraph.stringValue);
    debug("<br>");

    var wrappedParagraph = webArea.childAtIndex(1);
    debug("Role of the paragraph with wrapped lines: " + wrappedParagraph.role);
    debug("Value of the paragraph with wrapped lines: " + wrappedParagraph.stringValue);
    debug("<br>");
  }
}
</script>
</body>
</html>
