Test for Bugzilla Bug 74864: There is additional space not belonged to a table between the table cells.

An event generated on the edge of a table cell is not being consumed by the appropriate underlying element. This test verifies that the hittest result on the bottom edge of a table cell (with borders) returns the proper underlying element.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Executing for element tr1-td1 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr1-td1'
PASS document.elementFromPoint(middleX, edge).id is 'tr2-td1'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr2-td1'
Executing for element tr1-td2 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr1-td1'
PASS document.elementFromPoint(middleX, edge).id is 'tr2-td1'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr2-td1'
Executing for element tr1-td3 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr1-td1'
PASS document.elementFromPoint(middleX, edge).id is 'tr2-td1'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr2-td1'
Executing for element tr1-td4 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr1-td2'
PASS document.elementFromPoint(middleX, edge).id is 'tr2-td2'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr2-td2'
Executing for element tr2-td1 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr2-td1'
PASS document.elementFromPoint(middleX, edge).id is 'tr3-td1'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr3-td1'
Executing for element tr2-td2 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr2-td1'
PASS document.elementFromPoint(middleX, edge).id is 'tr3-td1'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr3-td1'
Executing for element tr2-td3 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr2-td1'
PASS document.elementFromPoint(middleX, edge).id is 'tr3-td1'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr3-td1'
Executing for element tr2-td4 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr2-td2'
PASS document.elementFromPoint(middleX, edge).id is 'tr3-td2'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr3-td2'
Executing for element tr3-td1 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr3-td1'
PASS document.elementFromPoint(middleX, edge).id is 'tr4-td1'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr4-td1'
Executing for element tr3-td2 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr3-td1'
PASS document.elementFromPoint(middleX, edge).id is 'tr4-td1'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr4-td1'
Executing for element tr3-td3 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr3-td1'
PASS document.elementFromPoint(middleX, edge).id is 'tr4-td1'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr4-td1'
Executing for element tr3-td4 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr3-td2'
PASS document.elementFromPoint(middleX, edge).id is 'tr4-td2'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr4-td2'
Executing for element tr4-td1 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr4-td1'
PASS document.elementFromPoint(middleX, edge).id is ''
PASS document.elementFromPoint(middleX, edge + 1).id is ''
Executing for element tr4-td2 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr4-td2'
PASS document.elementFromPoint(middleX, edge).id is ''
PASS document.elementFromPoint(middleX, edge + 1).id is ''
Executing for element tr4-td3 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is ''
PASS document.elementFromPoint(middleX, edge).id is ''
PASS document.elementFromPoint(middleX, edge + 1).id is ''
Executing for element tr4-td4 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is 'tr4-td4'
PASS document.elementFromPoint(middleX, edge).id is ''
PASS document.elementFromPoint(middleX, edge + 1).id is ''
PASS successfullyParsed is true

TEST COMPLETE

