Bug 506389 - Some same page links do not fire EVENT_SYSTEM_SCROLLINGSTART, r=marcoz, davidb

This commit is contained in:
Alexander Surkov 2009-09-01 10:49:15 +08:00
parent ea03ce7acd
commit 45ba103bc9
4 changed files with 143 additions and 3 deletions

View File

@ -429,11 +429,11 @@ public:
/**
* Return true if the given accessible hasn't children.
*/
static PRBool IsLeaf(nsIAccessible *aAcc)
static inline PRBool IsLeaf(nsIAccessible *aAcc)
{
PRInt32 numChildren;
PRInt32 numChildren = 0;
aAcc->GetChildCount(&numChildren);
return numChildren > 0;
return numChildren == 0;
}
/**

View File

@ -70,6 +70,7 @@ _TEST_FILES =\
value.js \
test_accessnode_invalidation.html \
test_actions.xul \
test_actions_anchors.html \
test_actions_aria.html \
test_actions_inputs.html \
test_actions_tree.xul \

View File

@ -6,6 +6,7 @@ const EVENT_DOCUMENT_LOAD_COMPLETE =
const EVENT_DOM_DESTROY = nsIAccessibleEvent.EVENT_DOM_DESTROY;
const EVENT_FOCUS = nsIAccessibleEvent.EVENT_FOCUS;
const EVENT_NAME_CHANGE = nsIAccessibleEvent.EVENT_NAME_CHANGE;
const EVENT_SCROLLING_START = nsIAccessibleEvent.EVENT_SCROLLING_START;
const EVENT_STATE_CHANGE = nsIAccessibleEvent.EVENT_STATE_CHANGE;
const EVENT_REORDER = nsIAccessibleEvent.EVENT_REORDER;

View File

@ -0,0 +1,138 @@
<html>
<head>
<title>nsIAccessible actions testing for anchors</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="chrome://mochikit/content/a11y/accessible/common.js"></script>
<script type="application/javascript"
src="chrome://mochikit/content/a11y/accessible/events.js"></script>
<script type="application/javascript"
src="chrome://mochikit/content/a11y/accessible/actions.js"></script>
<script type="application/javascript">
////////////////////////////////////////////////////////////////////////////
// Event checkers
function scrollingChecker(aAcc)
{
this.type = EVENT_SCROLLING_START;
this.target = aAcc;
this.getID = function scrollingChecker_getID()
{
return "scrolling start handling for " + prettyName(aAcc);
}
}
////////////////////////////////////////////////////////////////////////////
// Test
// gA11yEventDumpID = "debug"; // debug stuff
function doTest()
{
if (!WIN) {
ok(true,
"Nothing to test because scolling events are fired on Windows only");
SimpleTest.finish();
return;
}
var actionsArray = [
{
ID: "anchor1",
actionName: "jump",
actionIndex: 0,
events: CLICK_EVENTS,
eventSeq: [
new scrollingChecker(getAccessible("bottom1"))
]
},
{
ID: "anchor2",
actionName: "jump",
actionIndex: 0,
events: CLICK_EVENTS,
eventSeq: [
new scrollingChecker(getAccessible("bottom2").firstChild)
]
}
];
testActions(actionsArray);
}
SimpleTest.waitForExplicitFinish();
addA11yLoadEvent(doTest);
</script>
</head>
<body>
<a target="_blank"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=506389"
title="Some same page links do not fire EVENT_SYSTEM_SCROLLINGSTART">
Mozilla Bug 506389
</a>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test">
</pre>
<div id="debug"></div>
<h1>This is a test page for anchors</h1>
This is a top anchor<a name="Top">
</a><a id="anchor1" href="#bottom1">Link to anchor</a>
<a id="anchor2" href="#bottom2">Link to div</a>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br>This is some text in the middle<br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
This is some text.
This is a bottom anchor<a id="bottom1"></a>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br>
<div id="bottom2">This is a div</div>
</body>
</html>