From 229baaec0f3d28178256e8b6679c78265b9eeb9d Mon Sep 17 00:00:00 2001 From: Alexander Surkov Date: Thu, 2 Dec 2010 16:47:14 +0800 Subject: [PATCH] Bug 615913 - fix focus hyperlink tests, r=marcoz, a=test --- .../tests/mochitest/hyperlink/Makefile.in | 1 + .../tests/mochitest/hyperlink/hyperlink.js | 48 +++++++++++++++ .../mochitest/hyperlink/test_general.html | 58 +++++++------------ .../mochitest/hyperlink/test_general.xul | 35 ++++++----- 4 files changed, 90 insertions(+), 52 deletions(-) create mode 100644 accessible/tests/mochitest/hyperlink/hyperlink.js diff --git a/accessible/tests/mochitest/hyperlink/Makefile.in b/accessible/tests/mochitest/hyperlink/Makefile.in index aec1d3979cbc..e59dcaf72b7a 100644 --- a/accessible/tests/mochitest/hyperlink/Makefile.in +++ b/accessible/tests/mochitest/hyperlink/Makefile.in @@ -46,6 +46,7 @@ include $(DEPTH)/config/autoconf.mk include $(topsrcdir)/config/rules.mk _TEST_FILES =\ + hyperlink.js \ test_general.html \ test_general.xul \ $(NULL) diff --git a/accessible/tests/mochitest/hyperlink/hyperlink.js b/accessible/tests/mochitest/hyperlink/hyperlink.js new file mode 100644 index 000000000000..1a3d2263a3bf --- /dev/null +++ b/accessible/tests/mochitest/hyperlink/hyperlink.js @@ -0,0 +1,48 @@ +/** + * Focus hyperlink invoker. + * + * @param aID [in] hyperlink identifier + * @param aSelectedAfter [in] specifies if hyperlink is selected/focused after + * the focus + */ +function focusLink(aID, aSelectedAfter) +{ + this.node = getNode(aID); + this.accessible = getAccessible(this.node); + + this.eventSeq = []; + this.unexpectedEventSeq = []; + + var checker = new invokerChecker(EVENT_FOCUS, this.accessible); + if (aSelectedAfter) + this.eventSeq.push(checker); + else + this.unexpectedEventSeq.push(checker); + + this.invoke = function focusLink_invoke() + { + is(this.accessible.selected, false, + "Wrong selected state before focus for ID " + prettyName(aID) + "!"); + + var expectedStates = (aSelectedAfter ? STATE_FOCUSABLE : 0); + var unexpectedStates = (!aSelectedAfter ? STATE_FOCUSABLE : 0) | STATE_FOCUSED; + testStates(aID, expectedStates, 0, unexpectedStates, 0); + + this.node.focus(); + } + + this.finalCheck = function focusLink_finalCheck() + { + is(this.accessible.selected, aSelectedAfter, + "Wrong seleccted state after focus for ID " + prettyName(aID) + "!"); + + var expectedStates = (aSelectedAfter ? STATE_FOCUSABLE | STATE_FOCUSED : 0); + var unexpectedStates = (!aSelectedAfter ? STATE_FOCUSABLE | STATE_FOCUSED : 0); + testStates(aID, expectedStates, 0, unexpectedStates, 0); + } + + this.getID = function focusLink_getID() + { + return "focus hyperlink " + prettyName(aID); + } +} diff --git a/accessible/tests/mochitest/hyperlink/test_general.html b/accessible/tests/mochitest/hyperlink/test_general.html index a5d579e0ef19..0909f88a72d5 100644 --- a/accessible/tests/mochitest/hyperlink/test_general.html +++ b/accessible/tests/mochitest/hyperlink/test_general.html @@ -18,6 +18,11 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=418368 src="../role.js"> + + +