Bug 1371955: Test. r?heycam draft
authorEmilio Cobos Álvarez <emilio@crisal.io>
Mon, 12 Jun 2017 01:05:22 +0200
changeset 593389 d008c0c0c3e514986f4d2bc9347ffd5521bea13f
parent 593388 d1f58c715b36d9485d7c2d71f82eb42d1589570c
child 593390 70acd02d03de85e72751ed169acdaa5428e8dc85
push id63675
push userbmo:emilio+bugs@crisal.io
push dateTue, 13 Jun 2017 13:49:44 +0000
reviewersheycam
bugs1371955
milestone56.0a1
Bug 1371955: Test. r?heycam MozReview-Commit-ID: 61LyyLfZYj5
layout/style/test/mochitest.ini
layout/style/test/test_restyle_table_wrapper.html
--- 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>