105 lines
3.3 KiB
HTML
105 lines
3.3 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../../resources/js-test.js"></script>
|
|
<script src="../../../editing/editing.js"></script>
|
|
<script src="value-change-helpers.js"></script>
|
|
</head>
|
|
<body id="body">
|
|
|
|
<input type="text" id="textbox" value="789"></input>
|
|
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
<div id="notifications"></div>
|
|
|
|
<script>
|
|
|
|
description("This tests value change notifications user info data.");
|
|
|
|
var webArea = 0;
|
|
var count = 0;
|
|
|
|
var resultIndex = -1;
|
|
|
|
var actualChangeTypes = [];
|
|
var actualChangeValues = [];
|
|
var actualEditTypes = [];
|
|
|
|
var expectedValues = [];
|
|
|
|
function notificationCallback(notification, userInfo) {
|
|
if (notification == "AXValueChanged") {
|
|
|
|
actualChangeTypes[count] = userInfo["AXTextStateChangeType"];
|
|
var changes = userInfo["AXTextChangeValues"];
|
|
if (changes && changes.length == 1) {
|
|
var change = changes[0];
|
|
actualChangeValues[count] = change["AXTextChangeValue"];
|
|
actualEditTypes[count] = stringForEditType(change["AXTextEditType"])
|
|
} else if (changes && changes.length == 2) {
|
|
var change1 = changes[0];
|
|
var change2 = changes[1];
|
|
actualChangeValues[count] = [change1["AXTextChangeValue"], change2["AXTextChangeValue"]];
|
|
actualEditTypes[count] = [stringForEditType(change1["AXTextEditType"]), stringForEditType(change2["AXTextEditType"])];
|
|
}
|
|
|
|
count++;
|
|
|
|
var expectedCount = 9;
|
|
if (count == expectedCount) {
|
|
|
|
shouldBeTyping("6");
|
|
shouldBeDelete("6");
|
|
shouldBeTypingReplace("7", "8");
|
|
shouldBeCut("8");
|
|
shouldBePaste("8");
|
|
shouldBePasteReplace("9", "8");
|
|
shouldBeTypingReplace("8", "9");
|
|
shouldBeInsertReplace("9", "8");
|
|
shouldBeInsertReplace("8", "9");
|
|
|
|
webArea.removeNotificationListener();
|
|
finishJSTest();
|
|
}
|
|
}
|
|
}
|
|
|
|
if (window.accessibilityController) {
|
|
jsTestIsAsync = true;
|
|
|
|
accessibilityController.enableEnhancedAccessibility(true);
|
|
|
|
webArea = accessibilityController.rootElement.childAtIndex(0);
|
|
var addedNotification = webArea.addNotificationListener(notificationCallback);
|
|
shouldBe("addedNotification", "true");
|
|
|
|
var textbox = document.getElementById("textbox");
|
|
textbox.focus();
|
|
execMoveSelectionLeftByCharacterCommand();
|
|
|
|
eventSender.keyDown("6");
|
|
deleteCommand();
|
|
|
|
execExtendSelectionRightByCharacterCommand();
|
|
eventSender.keyDown("8");
|
|
|
|
execExtendSelectionRightByCharacterCommand();
|
|
cutCommand();
|
|
|
|
pasteCommand();
|
|
|
|
execExtendSelectionRightByCharacterCommand();
|
|
pasteCommand();
|
|
|
|
execExtendSelectionLeftByCharacterCommand();
|
|
eventSender.keyDown("9");
|
|
|
|
execUndoCommand();
|
|
|
|
execRedoCommand();
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|