test_bug375003-1.html (6558B)
1 <!DOCTYPE HTML> 2 <html id="html"> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=375003 5 --> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 8 <title>Test 1 for bug 375003</title> 9 10 <script src="/tests/SimpleTest/SimpleTest.js"></script> 11 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 12 13 <style type="text/css"> 14 15 html,body { 16 color:black; background-color:white; font-size:16px; padding:0; margin:0; 17 } 18 19 .s { display:block; width:20px; height:20px; background-color:lime; } 20 table { background:pink; } 21 #td5,#td6 { border:7px solid blue;} 22 </style> 23 24 <script> 25 var x = [ 'Left','Top','Width','Height' ]; 26 function test(id,s,expected) { 27 var el = document.getElementById(id); 28 for(var i = 0; i < x.length; ++i) { 29 // eslint-disable-next-line no-eval 30 var actual = eval('el.'+s+x[i]); 31 if (expected[i] != -1 && s+x[i]!='scrollHeight') 32 is(actual, expected[i], id+"."+s+x[i]); 33 } 34 } 35 function t3(id,c,o,s,pid) { 36 test(id,'client',c); 37 test(id,'offset',o); 38 test(id,'scroll',s); 39 var p = document.getElementById(id).offsetParent; 40 is(p.id, pid, id+".offsetParent"); 41 } 42 43 function run_test() { 44 t3('span1',[0,0,20,20],[12,12,20,20],[0,0,20,20],'td1'); 45 t3('td1' ,[1,1,69,44],[16,16,71,46],[0,0,69,46],'table1'); 46 t3('tr1' ,[0,0,71,46],[16,16,71,46],[0,0,71,44],'table1'); 47 t3('span2',[10,0,20,20],[27,12,30,20],[0,0,20,20],'td2'); 48 t3('table1',[0,0,103,131],[10,10,103,131],[0,0,103,131],'body'); 49 t3('div1',[10,10,-1,131],[0,0,-1,151],[0,0,-1,85],'body'); 50 51 t3('span2b',[10,0,20,20],[25,-1,30,20],[0,0,20,20],'body'); 52 // XXX not sure how to make reliable cross-platform tests for replaced-inline, inline 53 // t3('span2c',[10,2,18,2],[25,-1,30,6],[0,0,30,20],'body'); 54 // t3('span2d',[0,0,0,0],[25,-1,10,19],[0,0,10,20],'body'); 55 56 t3('span3' ,[0,0,20,20],[15,0,20,20],[0,0,20,20],'td3'); 57 t3('td3' ,[0,0,35,20],[0,0,35,20],[0,0,35,20],'table3'); 58 t3('tr3' ,[0,0,35,20],[0,0,35,20],[0,0,35,22],'table3'); 59 t3('span4' ,[0,0,20,20],[0,0,20,20],[0,0,20,20],'td4'); 60 t3('table3',[0,0,35,40],[0,0,35,40],[0,0,35,40],'div3'); 61 t3('div3',[10,10,-1,40],[0,151,-1,60],[0,0,-1,70],'body'); 62 63 t3('span5' ,[0,0,20,20],[1,1,20,20],[0,0,20,20],'td5'); 64 t3('td5' ,[7,7,22,22],[2,2,36,36],[0,0,22,36],'table5'); 65 t3('tr5' ,[0,0,36,36],[2,2,36,36],[0,0,36,22],'table5'); 66 t3('span6' ,[0,0,20,20],[20,58,20,20],[0,0,20,20],'div5'); 67 t3('table5',[0,0,40,78],[0,0,40,78],[0,0,40,78],'div5'); 68 t3('div5',[10,10,-1,78],[0,211,-1,98],[0,0,-1,70],'body'); 69 70 t3('span7' ,[0,0,20,20],[1,1,20,20],[0,0,20,20],'td7'); 71 t3('td7' ,[1,1,37,22],[2,2,39,24],[0,0,37,22],'table7'); 72 t3('tr7' ,[0,0,39,24],[2,2,39,24],[0,0,39,22],'table7'); 73 t3('span8' ,[0,0,20,20],[19,30,20,20],[0,0,20,20],'table7'); 74 t3('table7',[0,0,57,68],[10,319,57,68],[0,0,57,68],'body'); 75 t3('div7',[10,10,-1,68],[0,309,-1,88],[0,0,-1,70],'body'); 76 77 t3('span9' ,[0,0,20,20],[1,1,20,20],[0,0,20,20],'td9'); 78 t3('td9' ,[1,1,22,22],[2,2,24,24],[0,0,22,24],'table9'); 79 t3('tr9' ,[0,0,24,24],[2,2,24,24],[0,0,24,22],'table9'); 80 t3('span10' ,[0,0,20,20],[17,43,20,20],[0,0,20,20],'table9'); 81 t3('table9',[0,0,54,60],[10,407,54,60],[0,0,54,60],'body'); 82 t3('div9',[10,10,-1,0],[0,397,-1,20],[0,0,-1,70],'body'); 83 84 t3('span11' ,[0,0,20,20],[1,1,20,20],[0,0,20,20],'td11'); 85 t3('td11' ,[0,0,22,22],[2,2,22,22],[0,0,22,22],'table11'); 86 t3('tr11' ,[0,0,22,22],[2,2,22,22],[0,0,22,22],'table11'); 87 t3('span12' ,[0,0,20,20],[28,454,20,20],[0,0,20,20],'body'); 88 t3('table11',[0,0,26,30],[10,427,26,30],[0,0,26,30],'body'); 89 t3('div11',[10,10,-1,30],[0,417,-1,50],[0,0,-1,70],'body'); 90 } 91 </script> 92 </head> 93 <body id="body"> 94 95 <div id="content"> 96 <div id="div1" style="border:10px solid black"> 97 <table id="table1" cellspacing="7" cellpadding="12" border="9"> 98 <tbody id="tbody1"><tr id="tr1"><td id="td1"><div class="s" id="span1"></div></td></tr></tbody> 99 <tbody id="tbody2"><tr id="tr2"><td id="td2"><div class="s" id="span2" style="margin-left:15px; border-left:10px solid blue;"></div></td></tr></tbody> 100 </table> 101 </div> 102 103 <div id="div3" style="border:10px solid black; position:relative"> 104 <table id="table3" cellpadding="0" cellspacing="0" border="0"> 105 <tbody id="tbody3"><tr id="tr3"><td id="td3"><div class="s" id="span3" style="margin-left:15px"></div></td></tr></tbody> 106 <tbody id="tbody4"><tr id="tr4"><td id="td4"><div class="s" id="span4"></div></td></tr></tbody> 107 </table> 108 </div> 109 110 <div id="div5" style="border:10px solid black; position:relative"> 111 <table id="table5"> 112 <tbody id="tbody5"><tr id="tr5"><td id="td5"><div class="s" id="span5"></div></td></tr></tbody> 113 <tbody id="tbody6"><tr id="tr6"><td id="td6"><div class="s" id="span6" style="left:10px; top:10px; position:relative"></div></td></tr></tbody> 114 </table> 115 </div> 116 117 <div id="div7" style="border:10px solid black;"> 118 <table id="table7" style="position:relative" border=7> 119 <tbody id="tbody7"><tr id="tr7"><td id="td7"><div class="s" id="span7"></div></td></tr></tbody> 120 <tbody id="tbody8"><tr id="tr8"><td id="td8"><div class="s" id="span8" style="position:relative; margin-left:15px"></div></td></tr></tbody> 121 </table> 122 </div> 123 124 <div id="div9" style="border:10px solid black;"> 125 <table id="table9" style="position:absolute" border="13"> 126 <tbody id="tbody9"><tr id="tr9"><td id="td9"><div class="s" id="span9"></div></td></tr></tbody> 127 <tbody id="tbody10"><tr id="tr10"><td id="td10"><div class="s" id="span10" style="position:absolute"></div></td></tr></tbody> 128 </table> 129 </div> 130 131 <div id="div11" style="border:10px solid black; "> 132 <table id="table11"> 133 <tbody id="tbody11"><tr id="tr11"><td id="td11"><div class="s" id="span11"></div></td></tr></tbody> 134 <tbody id="tbody12"><tr id="tr12"><td id="td12"><div class="s" id="span12" style="position:absolute;margin-left:15px"></div></td></tr></tbody> 135 </table> 136 </div> 137 138 <div style="border:10px solid black"> 139 <div class="s" id="span2b" style="margin-left:15px; border-left:10px solid blue;"></div></div> 140 141 <div style="border:10px solid black"> 142 <button id="span2c" style="margin-left:15px; border-left:10px solid blue;"></button></div> 143 144 <div style="border:10px solid black"> 145 <span id="span2d" style="margin-left:15px; border-left:10px solid blue;"></span></div> 146 </div> 147 148 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=375003">Mozilla Bug 375003</a> 149 150 <pre id="test"> 151 <script class="testbody" type="text/javascript"> 152 run_test(); 153 </script> 154 </pre> 155 156 </body> 157 </html>