Bug 1371955: Test. r?heycam
MozReview-Commit-ID: 61LyyLfZYj5
--- a/layout/style/test/mochitest.ini
+++ b/layout/style/test/mochitest.ini
@@ -251,16 +251,17 @@ skip-if = android_version == '18' #debug
[test_priority_preservation.html]
[test_property_database.html]
[test_property_syntax_errors.html]
[test_pseudoelement_state.html]
[test_pseudoelement_parsing.html]
[test_redundant_font_download.html]
support-files = redundant_font_download.sjs
[test_rem_unit.html]
+[test_restyle_table_wrapper.html]
[test_restyles_in_smil_animation.html]
skip-if = toolkit == 'android' # bug 1328522
[test_root_node_display.html]
[test_rule_insertion.html]
[test_rule_serialization.html]
[test_rules_out_of_sheets.html]
[test_selectors.html]
skip-if = toolkit == 'android' #bug 775227
new file mode 100644
--- /dev/null
+++ b/layout/style/test/test_restyle_table_wrapper.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>
+ Test for bug 1371955: We don't incorrectly think that a table wrapper style
+ is the main table element style.
+</title>
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<style>
+/* Test implicitly ::before and ::after too */
+span::before, span::after {
+ content: "";
+ display: table;
+}
+</style>
+<table id="realTable" style="margin: 10px"></table>
+<span id="spanTable" style="display: table; padding: 10px;"></span>
+<script>
+SimpleTest.waitForExplicitFinish();
+const utils = SpecialPowers.getDOMWindowUtils(window);
+document.documentElement.offsetTop;
+for (const element of [realTable, spanTable]) {
+ const previousReflowCount = utils.framesReflowed;
+ const previousRestyleGeneration = utils.restyleGeneration;
+ element.style.color = "blue";
+ document.documentElement.offsetTop;
+ isnot(previousRestyleGeneration, utils.restyleGeneration,
+ "We should have restyled");
+ is(previousReflowCount, utils.framesReflowed,
+ "We shouldn't have reflowed");
+}
+SimpleTest.finish();
+</script>