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 right 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 right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is 'tr1-td1'
PASS document.elementFromPoint(edge, middleY).id is 'tr1-td2'
PASS document.elementFromPoint(edge + 1, middleY).id is 'tr1-td2'
Executing for element tr1-td2 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is 'tr1-td2'
PASS document.elementFromPoint(edge, middleY).id is 'tr1-td3'
PASS document.elementFromPoint(edge + 1, middleY).id is 'tr1-td3'
Executing for element tr1-td3 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is 'tr1-td3'
PASS document.elementFromPoint(edge, middleY).id is 'tr1-td4'
PASS document.elementFromPoint(edge + 1, middleY).id is 'tr1-td4'
Executing for element tr1-td4 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is 'tr1-td4'
PASS document.elementFromPoint(edge, middleY).id is ''
PASS document.elementFromPoint(edge + 1, middleY).id is ''
Executing for element tr2-td1 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is 'tr2-td1'
PASS document.elementFromPoint(edge, middleY).id is 'tr2-td2'
PASS document.elementFromPoint(edge + 1, middleY).id is 'tr2-td2'
Executing for element tr2-td2 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is 'tr2-td2'
PASS document.elementFromPoint(edge, middleY).id is 'tr2-td3'
PASS document.elementFromPoint(edge + 1, middleY).id is 'tr2-td3'
Executing for element tr2-td3 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is 'tr2-td3'
PASS document.elementFromPoint(edge, middleY).id is 'tr2-td4'
PASS document.elementFromPoint(edge + 1, middleY).id is 'tr2-td4'
Executing for element tr2-td4 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is 'tr2-td4'
PASS document.elementFromPoint(edge, middleY).id is ''
PASS document.elementFromPoint(edge + 1, middleY).id is ''
Executing for element tr3-td1 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is ''
PASS document.elementFromPoint(edge, middleY).id is ''
PASS document.elementFromPoint(edge + 1, middleY).id is ''
Executing for element tr3-td2 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is ''
PASS document.elementFromPoint(edge, middleY).id is ''
PASS document.elementFromPoint(edge + 1, middleY).id is ''
Executing for element tr3-td3 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is ''
PASS document.elementFromPoint(edge, middleY).id is ''
PASS document.elementFromPoint(edge + 1, middleY).id is ''
Executing for element tr3-td4 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is ''
PASS document.elementFromPoint(edge, middleY).id is ''
PASS document.elementFromPoint(edge + 1, middleY).id is ''
Executing for element tr4-td1 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is 'tr4-td1'
PASS document.elementFromPoint(edge, middleY).id is 'tr4-td2'
PASS document.elementFromPoint(edge + 1, middleY).id is 'tr4-td2'
Executing for element tr4-td2 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is 'tr4-td2'
PASS document.elementFromPoint(edge, middleY).id is 'tr4-td3'
PASS document.elementFromPoint(edge + 1, middleY).id is 'tr4-td3'
Executing for element tr4-td3 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is 'tr4-td3'
PASS document.elementFromPoint(edge, middleY).id is 'tr4-td4'
PASS document.elementFromPoint(edge + 1, middleY).id is 'tr4-td4'
Executing for element tr4-td4 on the right edge of the table cell:
PASS document.elementFromPoint(edge - 1, middleY).id is 'tr4-td4'
PASS document.elementFromPoint(edge, middleY).id is ''
PASS document.elementFromPoint(edge + 1, middleY).id is ''
PASS successfullyParsed is true

TEST COMPLETE

