Opened 10 years ago

Closed 10 years ago

#8958 closed defect (fixed)

robot test repeating problem (IE8)

Reported by: bill Owned by: haysmark
Priority: high Milestone: 1.4
Component: TestFramework Version: 1.3.0b3
Keywords: Cc:
Blocked By: Blocking:

Description

I'm getting a problem that when Dialog_a11y.html or Dialog_mouse.html run (and probably other tests too) on my IE8 machine, it runs the test twice (reporting the results twice too). I traced this much:

There's an <input> in runner.html:

<input type="text" tabIndex="-1" style="border:0px
none;margin:0px;padding:0px;position:absolute;left:0px;top:0px;width:200px;height:42px;background-color:white;z-index:9999;opacity:0;filter:alpha(opacity=0);cursor:default;"
	onmousewheel="_onmousewheel(arguments[0])"
	onmousedown="_onmousedown(arguments[0])"
	onkeypress="_onkeypress(arguments[0])"
	onfocus="_onfocus(this)"
	onblur="_onblur(arguments[0])">

When I load the page (hitting the refresh button on the browser), the onmousewheel handler fires. Not sure why, since I didn't move the mouse wheel. Anyway, that calls doh.robot._onKeyboard(), and that does the setTimeout:

	setTimeout(function(){
	        var rf = document.getElementsByTagName('input')[0];
	        rf.style.visibility = "hidden";
			doh.robot._run(window.frameElement);
	}, 0);

Then the timeout fires, and doh.robot._run() is called, which calls doh.run().

That makes the test suite execute. doh.run() is actually called repeatedly, apparently because of all the deferreds (the test is paused then resumed at each deferred I think), but that seems normal.

The problem is that after (what should be) the final doh.run() completes, and the results are reported... that's when _initRobot() gets called. Apparently that's supposed to get called first, right?

_initRobot() calls doh.run() which then runs the entire test suite over.

Change History (2)

comment:1 Changed 10 years ago by bill

Milestone: tbd1.4

Apparently this bug only occurs when the IE8 developer toolbar is turned on. (The debugger doesn't have to be running, just the DOM inspector thing.)

Anyway, I checked in a change in [17226] so _initRobot() only runs once, and that seems to solve the problem.

comment:2 Changed 10 years ago by bill

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.