<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=330964 --> <head> <title>Test for Bug 706406</title> <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> </head> <body> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=330964">Mozilla Bug 330964</a> <p id="display"></p> <math> <mtable framespacing="7px 20px" frame="solid" rowspacing="11px 27px" columnspacing="5px 16px" style="border-width: 2px;" id="mtable0"> <mtr> <mtd id="mtd0"> <mn>X</mn> </mtd> <mtd id="mtd1"> <mn>X</mn> </mtd> <mtd id="mtd2"> <mn>X</mn> </mtd> </mtr> <mtr> <mtd id="mtd3"> <mn>X</mn> </mtd> <mtd id="mtd4"> <mn>X</mn> </mtd> <mtd id="mtd5"> <mn>X</mn> </mtd> </mtr> <mtr> <mtd id="mtd6"> <mn>X</mn> </mtd> <mtd id="mtd7"> <mn>X</mn> </mtd> <mtd id="mtd8"> <mn>X</mn> </mtd> </mtr> </mtable> </math> <pre id="test"> <script type="application/javascript"> var epsilon = 2; function almostEqual(x, y) { return Math.abs(x - y) < epsilon; } rectTable = $("mtable0").getBoundingClientRect(); rect0 = $("mtd0").getBoundingClientRect(); rect1 = $("mtd1").getBoundingClientRect(); rect2 = $("mtd2").getBoundingClientRect(); rect3 = $("mtd3").getBoundingClientRect(); rect4 = $("mtd4").getBoundingClientRect(); rect5 = $("mtd5").getBoundingClientRect(); rect6 = $("mtd6").getBoundingClientRect(); rect7 = $("mtd7").getBoundingClientRect(); rect8 = $("mtd8").getBoundingClientRect(); ok(almostEqual(rect1.left - rect0.right, 5), "columnspacing wonky"); ok(almostEqual(rect2.left - rect1.right, 16), "columnspacing wonky"); ok(almostEqual(rect4.left - rect3.right, 5), "columnspacing wonky"); ok(almostEqual(rect5.left - rect4.right, 16), "columnspacing wonky"); ok(almostEqual(rect7.left - rect6.right, 5), "columnspacing wonky"); ok(almostEqual(rect8.left - rect7.right, 16), "columnspacing wonky"); ok(almostEqual(rect3.top - rect0.bottom, 11), "rowspacing wonky"); ok(almostEqual(rect4.top - rect1.bottom, 11), "rowspacing wonky"); ok(almostEqual(rect5.top - rect2.bottom, 11), "rowspacing wonky"); ok(almostEqual(rect6.top - rect3.bottom, 27), "rowspacing wonky"); ok(almostEqual(rect7.top - rect4.bottom, 27), "rowspacing wonky"); ok(almostEqual(rect8.top - rect5.bottom, 27), "rowspacing wonky"); // Remember to subtract border ok(almostEqual(rect0.left - rectTable.left - 2, 7), "framespacing left wonky"); ok(almostEqual(rect3.left - rectTable.left - 2, 7), "framespacing left wonky"); ok(almostEqual(rect6.left - rectTable.left - 2, 7), "framespacing left wonky"); ok(almostEqual(rect0.top - rectTable.top - 2, 20), "framespacing top wonky"); ok(almostEqual(rect1.top - rectTable.top - 2, 20), "framespacing top wonky"); ok(almostEqual(rect2.top - rectTable.top - 2, 20), "framespacing top wonky"); ok(almostEqual(rectTable.bottom - rect6.bottom - 2, 20), "framespacing bottom wonky"); ok(almostEqual(rectTable.bottom - rect7.bottom - 2, 20), "framespacing bottom wonky"); ok(almostEqual(rectTable.bottom - rect8.bottom - 2, 20), "framespacing bottom wonky"); ok(almostEqual(rectTable.right - rect2.right - 2, 7), "framespacing right wonky"); ok(almostEqual(rectTable.right - rect5.right - 2, 7), "framespacing right wonky"); ok(almostEqual(rectTable.right - rect8.right - 2, 7), "framespacing right wonky"); </script> </pre> </body> </html>