82 lines
3.0 KiB
HTML
82 lines
3.0 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test.js"></script>
|
|
<script src="../../editing/editing.js"></script>
|
|
</head>
|
|
<body id="body">
|
|
|
|
<input type="password" id="securevaluetest">
|
|
|
|
<input type="text" id="valuetest">
|
|
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
<div id="notifications"></div>
|
|
|
|
<script>
|
|
|
|
description("This tests value change notifications user info data when replacing the contents of an input field.");
|
|
|
|
var AXTextStateChangeTypeEdit = 1;
|
|
|
|
var AXTextEditTypeDelete = 1;
|
|
var AXTextEditTypeInsert = AXTextEditTypeDelete + 1;
|
|
|
|
var webArea = 0;
|
|
var count = 0;
|
|
var results = [];
|
|
var resultIndex = 0;
|
|
function notificationCallback(notification, userInfo) {
|
|
if (notification == "AXValueChanged") {
|
|
count++;
|
|
results.push(userInfo);
|
|
if (count == 2) {
|
|
|
|
shouldBe("results[resultIndex][\"AXTextStateChangeType\"]", "AXTextStateChangeTypeEdit");
|
|
shouldBe("results[resultIndex][\"AXTextChangeValues\"][0][\"AXTextChangeValue\"]", "\"0\"");
|
|
shouldBe("results[resultIndex][\"AXTextChangeValues\"][0][\"AXTextEditType\"]", "AXTextEditTypeDelete");
|
|
shouldBe("results[resultIndex][\"AXTextStateChangeType\"]", "AXTextStateChangeTypeEdit");
|
|
shouldBe("results[resultIndex][\"AXTextChangeValues\"][1][\"AXTextChangeValue\"]", "\"1\"");
|
|
shouldBe("results[resultIndex][\"AXTextChangeValues\"][1][\"AXTextEditType\"]", "AXTextEditTypeInsert");
|
|
|
|
// Password notifications will be insert only and the value string will be whitespace
|
|
resultIndex++;
|
|
shouldBe("results[resultIndex][\"AXTextStateChangeType\"]", "AXTextStateChangeTypeEdit");
|
|
shouldBe("results[resultIndex][\"AXTextChangeValues\"][0][\"AXTextChangeValue\"]", "\" \"");
|
|
shouldBe("results[resultIndex][\"AXTextChangeValues\"][0][\"AXTextEditType\"]", "AXTextEditTypeInsert");
|
|
|
|
webArea.removeNotificationListener();
|
|
finishJSTest();
|
|
}
|
|
}
|
|
}
|
|
|
|
function setvalue() {
|
|
document.getElementById("valuetest").value = "1";
|
|
}
|
|
|
|
function setsecurevalue() {
|
|
document.getElementById("securevaluetest").value = "1";
|
|
}
|
|
|
|
document.getElementById("valuetest").value = "0";
|
|
document.getElementById("securevaluetest").value = "0";
|
|
|
|
if (window.accessibilityController) {
|
|
jsTestIsAsync = true;
|
|
|
|
accessibilityController.enableEnhancedAccessibility(true);
|
|
|
|
webArea = accessibilityController.rootElement.childAtIndex(0);
|
|
var addedNotification = webArea.addNotificationListener(notificationCallback);
|
|
shouldBe("addedNotification", "true");
|
|
|
|
setvalue();
|
|
|
|
setsecurevalue();
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|