Opened 7 years ago

Closed 7 years ago

#16120 closed defect (fixed)

IE10 tests/_base/html, tests/_base/html_rtl test failures

Reported by: haysmark Owned by: Douglas Hays
Priority: undecided Milestone: 1.6.2
Component: HTML Version: 1.7.4rc1
Keywords: dohfail Cc:
Blocked By: Blocking:

Description

     Error: doh._AssertFailure: assertTrue('false') failed with hint: 
 		quirks iframe element x == 0 (x,y,w,h=-2,-2,113.7699966430664,22.399999618530273)

     ERROR IN:
 		 function(){
								var def = new doh.Deferred();
								setTimeout(function(){ try{
									var oldLtr = dojo._isBodyLtr();
									var oldQuirks = has("quirks");
									dojo.withGlobal(dojo.byId('iframe_quirks').win, function(){
										doh.t(has("quirks"), "has('quirks') == true in quirks/iframe");
										doh.f(dojo._isBodyLtr(), "isBodyLtr == false in RTL/iframe");
										var pos = dojo.position('iframe_00_quirks');
										doh.t(pos.x===0, "quirks iframe element x == 0 (x,y,w,h="+pos.x+","+pos.y+","+pos.w+","+pos.h+")");
										doh.t(pos.y===0, "quirks iframe element y == 0 (x,y,w,h="+pos.x+","+pos.y+","+pos.w+","+pos.h+")");
										doh.t(pos.w>0, "quirks iframe element w > 0 (x,y,w,h="+pos.x+","+pos.y+","+pos.w+","+pos.h+")");
										doh.t(pos.h>0, "quirks iframe element h > 0 (x,y,w,h="+pos.x+","+pos.y+","+pos.w+","+pos.h+")");
									});
									dojo.withGlobal(dojo.byId('iframe_strict').win, function(){
										doh.f(has("quirks"), "has('quirks') == false in strict/ifraee");
										doh.f(dojo._isBodyLtr(), "isBodyLtr == false in RTL/iframe");
										var pos = dojo.position('iframe_00_strict');
										doh.t(pos.x===0, "strict iframe element x == 0 (x,y,w,h="+pos.x+","+pos.y+","+pos.w+","+pos.h+")");
										doh.t(pos.y===0, "strict iframe element y == 0 (x,y,w,h="+pos.x+","+pos.y+","+pos.w+","+pos.h+")");
										doh.t(pos.w>0, "strict iframe element w > 0 (x,y,w,h="+pos.x+","+pos.y+","+pos.w+","+pos.h+")");
										doh.t(pos.h>0, "strict iframe element h > 0 (x,y,w,h="+pos.x+","+pos.y+","+pos.w+","+pos.h+")");
									});
									doh.t(!oldLtr == !dojo._isBodyLtr(), "isBodyLtr restored after withGlobal");
									doh.is(oldQuirks, has("quirks"), "has('quirks') restored after withGlobal");
									def.callback(true);
								}catch(e){ def.errback(e); } }, 1000);
								return def;
							}
 FAILED test: ../../dojo/tests/_base/html.html::t::coordsIframe 1120 ms
     _AssertFailure: assertTrue('false') failed with hint: 
 		reloaded iframe element destroyed

     ERROR IN:
 		 function testIframeDestroy10095(t){
							var iframeWin = dojo.byId('10095_iframe').win;
							doh.t(!iframeWin.document.getElementById('10095_textbox'), "reloaded iframe element destroyed");
						}
 FAILED test: ../../dojo/tests/_base/html.html::t::testIframeDestroy10095 0 ms

     Error: doh._AssertFailure: assertEqual() failed:
 	expected
		0
	but got
		-100.19999694824219


     ERROR IN:
 		 function(t){
								if(!has("ie")){ return; }

								var
								d = new doh.Deferred(),
								rect = dojo.byId("rect100"),
								handler = dojo.connect(rect.offsetParent, "onclick", null,
									d.getTestErrback(function(e){
										// move the rectangle to the mouse point
										dojo.disconnect(handler);
										rect.style.left = e.pageX + "px";
										rect.style.top = e.pageY + "px";
										handler = dojo.connect(rect, 'ondblclick', null,
											d.getTestCallback(function(e){
												var offsetX = (event||e).offsetX,
													offsetY = (event||e).offsetY;
												dojo.disconnect(handler);
												t.is(0, offsetX);
												t.is(0, offsetY);
											}));
										setTimeout(d.getTestErrback(function(){
											if(!document.createEvent){
												rect.fireEvent('ondblclick');
											}else{
												var clickEvent = document.createEvent("MouseEvent");
												clickEvent.initMouseEvent("dblclick", true, true, window, 0,0,0,0,0,0,0,0,0,0,null);
												rect.dispatchEvent(clickEvent);
											}
										}), 100); // time to move rect to cursor position
									}));
								setTimeout(d.getTestErrback(function(){
									if(!document.createEvent){
										rect.offsetParent.fireEvent('onclick');
									}else{
										var clickEvent = document.createEvent("MouseEvent");
										clickEvent.initMouseEvent("click", true, true, window, 0,0,0,0,0,0,0,0,0,0,null);
										rect.offsetParent.dispatchEvent(clickEvent);
									}

								}), 100); // time to finish any pre-scrolling
								return d;
							}
 FAILED test: ../../dojo/tests/_base/html_rtl.html::rtl::eventClientXY_IE 203 ms
     _AssertFailure: assertTrue('/* */false') failed
     ERROR IN:
 		 function reciprocalTests(t) {
						createStyledNodes([], function(n) {
							testAndCallback(t, reciprocalMarginBoxTest(n), '', function() {removeTestNode(n); });
						});
					}
 FAILED test: ../../dojo/tests/_base/html_box_quirks.html::t::reciprocalTests 30 ms
     _AssertFailure: assertTrue('/* */false') failed
     ERROR IN:
 		 function fitTests(t) {
						runFitTest(t, null, dojo.mixin({}, defaultChildStyles));
					}
 FAILED test: ../../dojo/tests/_base/html_box_quirks.html::t::fitTests 22 ms
     _AssertFailure: assertTrue('/* */false') failed
     ERROR IN:
 		 function fitTestsOverflow(t) {
						runFitTest(t, null, dojo.mixin({overflow:'hidden'}, defaultChildStyles));
						runFitTest(t, {overflow: 'hidden'}, dojo.mixin({}, defaultChildStyles));
						runFitTest(t, {overflow: 'hidden'}, dojo.mixin({overflow:'hidden'}, defaultChildStyles));
					}
 FAILED test: ../../dojo/tests/_base/html_box_quirks.html::t::fitTestsOverflow 12 ms
     _AssertFailure: assertTrue('/* */false') failed
     ERROR IN:
 		 function fitTestsFloat(t) {
						runFitTest(t, null, dojo.mixin({float: 'left'}, defaultChildStyles));
						runFitTest(t, {float: 'left'}, dojo.mixin({}, defaultChildStyles));
						runFitTest(t, {float: 'left'}, dojo.mixin({float: 'left'}, defaultChildStyles));
					}
 FAILED test: ../../dojo/tests/_base/html_box_quirks.html::t::fitTestsFloat 20 ms
     _AssertFailure: assertEqual() failed:
 	expected
		true
	but got
		false


     ERROR IN:
 		 function testSpeed(t){
							var old_docScroll = function(){
								var
									_b = dojo.body(),
									_w = dojo.global,
									de = dojo.doc.documentElement;
								return {
									y: (_w.pageYOffset || de.scrollTop || _b.scrollTop || 0),
									x: (_w.pageXOffset || dojo._fixIeBiDiScrollLeft(de.scrollLeft) || _b.scrollLeft || 0)
								};
							};
							var count = 10000; // initial guess
							var new_docScroll = dojo._docScroll;
							var t0 = new Date().getTime();
							for (var i=0; i < count; i++){
											var j = new_docScroll();
							}
							t0 = new Date().getTime() - t0;
							// modify guess to get about 1 second of CPU crunching
							if(t0 < 50){ // crazy short time
								count *= 25;
							}else{
								count = Math.ceil(10000000/t0);
							}
							t0 = new Date().getTime();
							for (i=0; i < count; i++){
											j = new_docScroll();
							}
							t0 = new Date().getTime() - t0;
							var t1 = new Date().getTime();
							for (var i=0; i < count; i++){
											j = old_docScroll();
							}
							t1 = new Date().getTime() - t1;
							console.log(Math.floor(100*(t1-t0)/t1)+"% speed improvement");
							t.is(true, t1 > t0);
						}
 FAILED test: ../../dojo/tests/_base/html_docScroll.html::t::testSpeed 1520 ms

Change History (17)

comment:1 Changed 7 years ago by haysmark

Keywords: dohfail added

comment:2 Changed 7 years ago by bill

Milestone: tbd1.8.2

Bulk update of IE10 tickets to 1.8.2, as per meeting. Backports to 1.4 will be handled in a separate ticket. If this ticket just requires a test update, it can be rescheduled for milestone 1.9, and checked into trunk only.

comment:3 Changed 7 years ago by haysmark

Version: 1.8.01.7.4rc1

comment:4 Changed 7 years ago by Kenneth G. Franqueiro

I can reproduce the same failures on Win8 IE10 via Browserstack.

comment:5 Changed 7 years ago by Kitson Kelly

I cannot reproduce this on IE 10.0.9200.16384 running util/doh/runner.html?test=dojo/tests/module on trunk (29997).

comment:6 Changed 7 years ago by Colin Snover

The majority of these failures are also IE8/9 failures, see #12342 for those. The only one that is IE10 only is the RTL eventClientXY_IE test.

This test seems to be one of the worst inferences to see if pageX/Y return the correct value when the document is RTL. It only tests IE, which is wrong, and it took me like 30 minutes to figure out that it was trying to test pageX/Y because the actual test calls are against offsetX/Y, which is also wrong. This test is bad enough that I think it ought to just be deleted entirely.

Last edited 7 years ago by Colin Snover (previous) (diff)

comment:7 Changed 7 years ago by bill

Just some background: In the old days some test(s) required user intervention, by [moving and] clicking the mouse. We changed that because people didn't want to click, or maybe because they wanted to run the tests nightly and didn't want to use robot just for that one part.

Judging from the comments in eventClientXY_IE like

// move the rectangle to the mouse point

it looks like this was one of those tests.

Anyway feel free to remove that eventClientXY_IE test if you want, or at least I have no objections.

comment:8 Changed 7 years ago by bill

Summary: IE10 html test failuresIE10 tests/_base/html test failures

The only test failing for me now in tests/_base/html.html is testIframeDestroy10095, and it's fixed by Doug's patch to #12342.

And for tests/_base/html_rtl.html, eventClientXY_IE is failing. Didn't realize this ticket was about two separate tests.

Last edited 7 years ago by bill (previous) (diff)

comment:9 Changed 7 years ago by bill

Cc: Douglas Hays added
Summary: IE10 tests/_base/html test failuresIE10 tests/_base/html, tests/_base/html_rtl test failures

comment:10 Changed 7 years ago by bill

Since #12342 is fixed (thanks Doug!) presumably it's just the html_rtl failure remaining, the eventClientXY_IE thing.

comment:11 Changed 7 years ago by bill

Cc: Douglas Hays removed
Owner: changed from Eugene Lazutkin to Douglas Hays
Status: newassigned

#9514 is the ticket (fixed by Doug) to automate the eventClientXY_IE test, so assigning to him.

comment:12 Changed 7 years ago by Douglas Hays

I'm not seeing any failures using IE10 preview on Win 7 and running dojo/tests/_base/html_rtl.html .

comment:13 Changed 7 years ago by haysmark

It can only be reproduced in a small square IE10 window. It is not in IE9.

comment:14 Changed 7 years ago by Colin Snover

Milestone: 1.8.21.8.3

1.8.2 release candidate is released; moving to next minor release.

comment:15 Changed 7 years ago by Kitson Kelly

Milestone: 1.8.31.8.4

comment:16 Changed 7 years ago by Douglas Hays

Milestone: 1.8.41.6.2

comment:17 Changed 7 years ago by Douglas Hays

Resolution: fixed
Status: assignedclosed

In [30348]:

Fixes #16120. Add Math.round to fix IE10 partial px tests. Change event coordinate test to not use e.offsetX since IE10 gives an incorrect value for this in RTL mode. Backport thru 1.6.

Note: See TracTickets for help on using tickets.