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 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 'tr4-td1'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr4-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 'tr4-td1'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr4-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 'tr4-td1'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr4-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 'tr4-td2'
PASS document.elementFromPoint(middleX, edge + 1).id is 'tr4-td2'
Executing for element tr3-td1 on the bottom edge of the table cell:
PASS document.elementFromPoint(middleX, edge - 1).id is ''
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 ''
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 ''
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 ''
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

