diff --git a/accessible/tests/mochitest/events.js b/accessible/tests/mochitest/events.js index f7b6f40bc17..027a32b8b8d 100644 --- a/accessible/tests/mochitest/events.js +++ b/accessible/tests/mochitest/events.js @@ -345,10 +345,17 @@ function eventQueue(aEventType) var msg = "Test with ID = '" + this.getEventID(checker) + "' succeed. "; - if (checker.unexpected) - ok(true, msg + "There's no unexpected " + typeStr + " event."); - else + if (checker.unexpected) { + if (checker.todo) { + todo(false, "Event " + typeStr + " event is still missing"); + } + else { + ok(true, msg + "There's no unexpected " + typeStr + " event."); + } + } + else { ok(true, msg + "Event " + typeStr + " was handled."); + } } } } @@ -371,8 +378,13 @@ function eventQueue(aEventType) ok(false, msg + "Dupe " + typeStr + " event."); if (checker.unexpected) { - if (checker.wasCaught) + if (checker.todo) { + todo(checker.wasCaught, + "Event " + typeStr + " event is still missing"); + } + else if (checker.wasCaught) { ok(false, msg + "There's unexpected " + typeStr + " event."); + } } else if (!checker.wasCaught) { ok(false, msg + typeStr + " event was missed."); } @@ -1667,6 +1679,18 @@ function invokerChecker(aEventType, aTargetOrFunc, aTargetFuncArg, aIsAsync) this.mTargetFuncArg = aTargetFuncArg; } +/** + * Generic invoker checker for todo events. + */ +function todo_invokerChecker(aEventType, aTargetOrFunc, aTargetFuncArg) +{ + this.__proto__ = new invokerChecker(aEventType, aTargetOrFunc, + aTargetFuncArg, true); + + this.unexpected = true; + this.todo = true; +} + /** * Generic invoker checker for unexpected events. */ diff --git a/accessible/tests/mochitest/events/test_mutation.html b/accessible/tests/mochitest/events/test_mutation.html index 8eadd521ccb..92a5f35fe24 100644 --- a/accessible/tests/mochitest/events/test_mutation.html +++ b/accessible/tests/mochitest/events/test_mutation.html @@ -358,6 +358,25 @@ } } + function showHiddenParentOfVisibleChild() + { + this.eventSeq = [ + new todo_invokerChecker(EVENT_HIDE, getNode("c4_child")), + new invokerChecker(EVENT_SHOW, getNode("c4_middle")), + new invokerChecker(EVENT_REORDER, getNode("c4")) + ]; + + this.invoke = function showHiddenParentOfVisibleChild_invoke() + { + getNode("c4_middle").style.visibility = 'visible'; + } + + this.getID = function showHiddenParentOfVisibleChild_getID() + { + return "show hidden parent of visible child"; + } + } + /** * Target getters. */ @@ -484,6 +503,7 @@ gQueue.push(new test2("testContainer", "testNestedContainer")); gQueue.push(new test3("testContainer")); gQueue.push(new insertReferredElm("testContainer3")); + gQueue.push(new showHiddenParentOfVisibleChild()); gQueue.invoke(); // Will call SimpleTest.finish(); } @@ -544,5 +564,11 @@
+ +
+ +