зеркало из https://github.com/mozilla/pjs.git
Bug 415943 - Test that password field text is not readable through accessibility APIs, r=surkov, a=test-only
This commit is contained in:
Родитель
6300919f5b
Коммит
6f9be46f37
|
@ -26,6 +26,14 @@ function testCharacterCount(aIDs, aCount)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test text between two given offsets
|
||||
*
|
||||
* @param aIDs [in] an array of accessible IDs to test
|
||||
* @param aStartOffset [in] the start offset within the text to test
|
||||
* @param aEndOffset [in] the end offset up to which the text is tested
|
||||
* @param aText [in] the expected result from the test
|
||||
*/
|
||||
function testText(aIDs, aStartOffset, aEndOffset, aText)
|
||||
{
|
||||
for (var i = 0; i < aIDs.length; i++)
|
||||
|
@ -43,6 +51,34 @@ function testText(aIDs, aStartOffset, aEndOffset, aText)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test password text between two given offsets
|
||||
*
|
||||
* @param aIDs [in] an array of accessible IDs to test
|
||||
* @param aStartOffset [in] the start offset within the text to test
|
||||
* @param aEndOffset [in] the end offset up to which the text is tested
|
||||
* @param aText [in] the expected result from the test
|
||||
*
|
||||
* @note All this function does is test that getText doe snot expose the
|
||||
* password text itself, but something else.
|
||||
*/
|
||||
function testPasswordText(aIDs, aStartOffset, aEndOffset, aText)
|
||||
{
|
||||
for (var i = 0; i < aIDs.length; i++)
|
||||
{
|
||||
var acc = getAccessible(aIDs[i], nsIAccessibleText);
|
||||
try {
|
||||
isnot(acc.getText(aStartOffset, aEndOffset), aText,
|
||||
"getText: plain text between start and end offsets '" + aStartOffset +
|
||||
"', '" + aEndOffset + " for '" + prettyName(aIDs[i]) + "'");
|
||||
} catch (e) {
|
||||
ok(false,
|
||||
"getText fails between start and end offsets '" + aStartOffset +
|
||||
"', '" + aEndOffset + " for '" + prettyName(aIDs[i]) + "'");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getTextAtOffset for BOUNDARY_CHAR over different elements.
|
||||
*
|
||||
|
|
|
@ -49,6 +49,7 @@ _TEST_FILES = \
|
|||
doc.html \
|
||||
test_doc.html \
|
||||
test_hypertext.html \
|
||||
test_passwords.html \
|
||||
test_singleline.html \
|
||||
test_whitespaces.html \
|
||||
test_words.html \
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>nsIAccessibleText getText related function tests for text and password inputs</title>
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="chrome://mochikit/content/tests/SimpleTest/test.css" />
|
||||
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/MochiKit/packed.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="../common.js"></script>
|
||||
<script type="application/javascript"
|
||||
src="../text.js"></script>
|
||||
|
||||
<script type="application/javascript">
|
||||
function doTest()
|
||||
{
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// regular text and password inputs
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// characterCount and getText for regular text field
|
||||
|
||||
var IDs = [ "username" ];
|
||||
testCharacterCount(IDs, 4);
|
||||
testText(IDs, 0, 4, "test");
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// characterCount and getText for password field
|
||||
|
||||
IDs = [ "password" ];
|
||||
testCharacterCount(IDs, 4);
|
||||
testPasswordText(IDs, 0, 4, "test");
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
addA11yLoadEvent(doTest);
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<a target="_blank"
|
||||
title="mochitest for getText for password fields"
|
||||
href="https://bugzilla.mozilla.org/show_bug.cgi?id=415943">Mozilla Bug 415943</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none"></div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
|
||||
<form action="post.php" method="post">
|
||||
<label for="username">User name:</label>
|
||||
<input id="username" value="test"><br />
|
||||
<label for="password">Password:</label>
|
||||
<input type="password" id="password" value="test"/>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
Загрузка…
Ссылка в новой задаче