<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body id="body">
<p id="content">This is a test. This is the second sentence. And this the third.</p>
<p id="description"></p>
<div id="console"></div>
<script>
    description("This tests the ability to get element text for different granularities and offsets.");
    if (window.accessibilityController) {
        document.getElementById("body").focus();
        var webArea = accessibilityController.focusedElement;
        var content = webArea.childAtIndex(0);

        shouldBe("content.characterAtOffset(0)", "'T, 0, 1'");
        shouldBe("content.wordAtOffset(0)", "'This , 0, 5'");
        shouldBe("content.wordAtOffset(4)", "'This , 0, 5'");
        shouldBe("content.wordAtOffset(10)", "'test. , 10, 16'");
        shouldBe("content.wordAtOffset(58)", "'third., 58, 64'");
        shouldBe("content.sentenceAtOffset(0)", "'This is a test. , 0, 16'");
        shouldBe("content.sentenceAtOffset(15)", "'This is a test. , 0, 16'");
        shouldBe("content.lineAtOffset(0)", "'This is a test. This is the second sentence. And this the third., 0, 64'");
    }
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
