Bug 540360 - Split the borderhandling-rules-border.html reftest into multiple individual tests to prevent it from failing intermittently; r=bernd a=test-only
authorEhsan Akhgari <ehsan@mozilla.com>
Thu, 03 Feb 2011 16:39:31 -0500
changeset 62231 3fd584ee8ed117b180f427b67ed411e88c5f61f1
parent 62230 d37fedadd4ec2028dd0fa933c19e74e2a4b88e0f
child 62232 e328c3c411dfef768547a2cd8b1eea45674e42de
push idunknown
push userunknown
push dateunknown
reviewersbernd, test-only
bugs540360
milestone2.0b12pre
Bug 540360 - Split the borderhandling-rules-border.html reftest into multiple individual tests to prevent it from failing intermittently; r=bernd a=test-only
layout/reftests/table-bordercollapse/borderhandling-rules-border-all-quirks-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-all-quirks.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-all-strict-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-all-strict.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-cols-quirks-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-cols-quirks.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-cols-strict-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-cols-strict.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-empty-quirks-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-empty-quirks.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-empty-strict-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-empty-strict.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-groups-quirks-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-groups-quirks.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-groups-strict-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-groups-strict.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-none-quirks-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-none-quirks.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-none-strict-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-none-strict.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-rows-quirks-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-rows-quirks.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-rows-strict-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-rows-strict.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-rules-quirks-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-rules-quirks.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-rules-strict-ref.html
layout/reftests/table-bordercollapse/borderhandling-rules-border-rules-strict.html
layout/reftests/table-bordercollapse/reftest.list
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-all-quirks-ref.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="all"</th>
+<td>
+<table class="bc">
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc">
+  <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 3px; border-style: outset">
+  <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-all-quirks.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="all"</th>
+<td>
+<table rules="all">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="all" border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="all" border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="all" border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="all" border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-all-strict-ref.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="all"</th>
+<td>
+<table class="bc">
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc">
+  <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 3px; border-style: outset">
+  <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-all-strict.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="all"</th>
+<td>
+<table rules="all">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="all" border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="all" border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="all" border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="all" border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-cols-quirks-ref.html
@@ -0,0 +1,60 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="cols"</th>
+<td>
+<table table class="bc" >
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table table class="bc" >
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table table class="bc" style="border-width: 3px; border-style: outset">
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-cols-quirks.html
@@ -0,0 +1,55 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="cols"</th>
+<td>
+<table rules="cols">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="cols" border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="cols" border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="cols" border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="cols" border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-cols-strict-ref.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="cols"</th>
+<td>
+<table table class="bc" >
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table table class="bc" >
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table table class="bc" style="border-width: 3px; border-style: outset">
+   <colgroup><col class="bcborder"><col class="bcborder"></colgroup>
+   <colgroup><col class="bcborder"></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-cols-strict.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="cols"</th>
+<td>
+<table rules="cols">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="cols" border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="cols" border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="cols" border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="cols" border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-empty-quirks-ref.html
@@ -0,0 +1,58 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>empty</th>
+<td><table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame inner">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame inner">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame inner" style="border-width:3px">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-empty-quirks.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>empty</th>
+<td><table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-empty-strict-ref.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>empty</th>
+<td><table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame inner">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame inner">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame inner" style="border-width:3px">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-empty-strict.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>empty</th>
+<td><table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-groups-quirks-ref.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="groups"</th>
+<td>
+<table class="bc">
+   <colgroup class="bcborder"><col><col></colgroup>
+   <colgroup class="bcborder"><col></colgroup>
+   <thead class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup class="bcborder"><col><col></colgroup>
+   <colgroup class="bcborder"><col></colgroup>
+   <thead class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc">
+   <colgroup class="bcborder"><col><col></colgroup>
+   <colgroup class="bcborder"><col></colgroup>
+   <thead class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup class="bcborder"><col><col></colgroup>
+   <colgroup class="bcborder"><col></colgroup>
+   <thead class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 3px; border-style: outset">
+   <colgroup class="bcborder"><col><col></colgroup>
+   <colgroup class="bcborder"><col></colgroup>
+   <thead class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-groups-quirks.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="groups"</th>
+<td>
+<table rules="groups">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="groups" border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="groups" border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="groups" border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="groups" border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-groups-strict-ref.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="groups"</th>
+<td>
+<table class="bc">
+   <colgroup class="bcborder"><col><col></colgroup>
+   <colgroup class="bcborder"><col></colgroup>
+   <thead class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup class="bcborder"><col><col></colgroup>
+   <colgroup class="bcborder"><col></colgroup>
+   <thead class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc">
+   <colgroup class="bcborder"><col><col></colgroup>
+   <colgroup class="bcborder"><col></colgroup>
+   <thead class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup class="bcborder"><col><col></colgroup>
+   <colgroup class="bcborder"><col></colgroup>
+   <thead class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 3px; border-style: outset">
+   <colgroup class="bcborder"><col><col></colgroup>
+   <colgroup class="bcborder"><col></colgroup>
+   <thead class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody class="bcborder"><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-groups-strict.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="groups"</th>
+<td>
+<table rules="groups">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="groups" border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="groups" border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="groups" border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="groups" border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-none-quirks-ref.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="none"</th>
+<td>
+<table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame" style="border-width:3px">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-none-quirks.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="none"</th>
+<td>
+<table rules="none">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="none" border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="none" border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="none" border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="none" border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-none-strict-ref.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="none"</th>
+<td>
+<table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame" style="border-width:3px">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-none-strict.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="none"</th>
+<td>
+<table rules="none">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="none" border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="none" border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="none" border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="none" border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-rows-quirks-ref.html
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="rows"</th>
+<td>
+<table class="bc">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc">
+  <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 3px; border-style: outset">
+  <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-rows-quirks.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="rows"</th>
+<td>
+<table rules="rows">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="rows" border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="rows" border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="rows" border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="rows" border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-rows-strict-ref.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="rows"</th>
+<td>
+<table class="bc">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc">
+  <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 1px; border-style: solid">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="bc" style="border-width: 3px; border-style: outset">
+  <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr><tr class="bcborder"><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-rows-strict.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules="rows"</th>
+<td>
+<table rules="rows">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="rows" border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="rows" border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="rows" border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules="rows" border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-rules-quirks-ref.html
@@ -0,0 +1,58 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules</th>
+<td><table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame inner">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame inner">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame inner" style="border-width:3px">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-rules-quirks.html
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules</th>
+<td><table rules>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-rules-strict-ref.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+div {width: 3px; height: 3px;}
+table.frame {border-style: outset; border-width: thin ;}
+
+table.bc{ border-collapse:collapse; border-style: hidden}
+.bcborder {border-width: 1px; border-style: solid}
+td.inner {border-style: inset; border-width: thin;}
+table.inner td {border-style: inset; border-width: thin;}
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules</th>
+<td><table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame inner">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame inner">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table class="frame inner" style="border-width:3px">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-bordercollapse/borderhandling-rules-border-rules-strict.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<style>
+div {width: 3px; height: 3px;}
+
+</style>
+</head>
+<body>
+<table cellpadding="5" rules="all">
+<tr><th>rules/border</th><th>empty</th><th>border</th><th>border="0"</th><th>border="1"</th><th>border="3"</th></tr>
+<tr><th>rules</th>
+<td><table rules>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules border>
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules border="0">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules border="1">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+<td><table rules border="3">
+   <colgroup><col><col></colgroup>
+   <colgroup><col></colgroup>
+   <thead><tr><td><div/></td><td><div/></td><td><div/></td></tr></thead>
+   <tfoot><tr><td><div/></td><td><div/></td><td><div/></td></tr></tfoot>
+   <tbody><tr><td><div/></td><td><div/></td><td><div/></td></tr><tr><td><div/></td><td><div/></td><td><div/></td></tr></tbody>
+</table></td>
+</tr>
+</table>
+
+</body>
+</html>
--- a/layout/reftests/table-bordercollapse/reftest.list
+++ b/layout/reftests/table-bordercollapse/reftest.list
@@ -69,13 +69,26 @@ fails-if(cocoaWidget) == bc_borderoffset
 == borderhandling-2.html borderhandling-ref.html
 == borderhandling-3.html borderhandling-ref.html
 == borderhandling-4.html borderhandling-ref.html
 == borderhandling-5.xhtml borderhandling-strict-ref.html
 == borderhandling-6.xhtml borderhandling-strict-ref.html
 == borderhandling-7.xhtml borderhandling-strict-ref.html
 == borderhandling-8.html borderhandling-strict-ref.html
 == borderhandling-frame-border.html borderhandling-frame-border-ref.html
-random == borderhandling-rules-border.html borderhandling-rules-border-ref.html # bug 540360 (depends on bug 540256)
+== borderhandling-rules-border-empty-quirks.html borderhandling-rules-border-empty-quirks-ref.html
+== borderhandling-rules-border-rules-quirks.html borderhandling-rules-border-rules-quirks-ref.html
+== borderhandling-rules-border-none-quirks.html borderhandling-rules-border-none-quirks-ref.html
+== borderhandling-rules-border-groups-quirks.html borderhandling-rules-border-groups-quirks-ref.html
+== borderhandling-rules-border-rows-quirks.html borderhandling-rules-border-rows-quirks-ref.html
+== borderhandling-rules-border-cols-quirks.html borderhandling-rules-border-cols-quirks-ref.html
+== borderhandling-rules-border-all-quirks.html borderhandling-rules-border-all-quirks-ref.html
+== borderhandling-rules-border-empty-strict.html borderhandling-rules-border-empty-strict-ref.html
+== borderhandling-rules-border-rules-strict.html borderhandling-rules-border-rules-strict-ref.html
+== borderhandling-rules-border-none-strict.html borderhandling-rules-border-none-strict-ref.html
+== borderhandling-rules-border-groups-strict.html borderhandling-rules-border-groups-strict-ref.html
+== borderhandling-rules-border-rows-strict.html borderhandling-rules-border-rows-strict-ref.html
+== borderhandling-rules-border-cols-strict.html borderhandling-rules-border-cols-strict-ref.html
+== borderhandling-rules-border-all-strict.html borderhandling-rules-border-all-strict-ref.html
 == bordercolor-1.html bordercolor-ref.html
 != bordercolor-2.html bordercolor-ref.html
 == bordercolor-3.html bordercolor-3-ref.html
 == bordercolor-4.html bordercolor-4-ref.html