about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2024-10-27 11:26:45 +0100
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2024-10-27 11:26:45 +0100
commitc50bfda34f6559211688957d50a21207f46fdcb5 (patch)
treeeb20270d7b04b940caaa64877cd8bd310e5d7f97
parentde7cef75be8fab7a7e1b4d5bb01b51b4bac925c3 (diff)
downloadrust-c50bfda34f6559211688957d50a21207f46fdcb5.tar.gz
rust-c50bfda34f6559211688957d50a21207f46fdcb5.zip
Add GUI regression test for doc struct fields margins
-rw-r--r--tests/rustdoc-gui/fields.goml49
-rw-r--r--tests/rustdoc-gui/struct-fields.goml3
2 files changed, 42 insertions, 10 deletions
diff --git a/tests/rustdoc-gui/fields.goml b/tests/rustdoc-gui/fields.goml
index b8139a2edac..5d13d7be2f9 100644
--- a/tests/rustdoc-gui/fields.goml
+++ b/tests/rustdoc-gui/fields.goml
@@ -1,13 +1,36 @@
-// This test checks that fields are displayed as expected (one by line).
-go-to: "file://" + |DOC_PATH| + "/test_docs/fields/struct.Struct.html"
-store-position: ("#structfield\.a", {"y": a_y})
-store-position: ("#structfield\.b", {"y": b_y})
-assert: |a_y| < |b_y|
+// This test checks that fields are displayed as expected (one by line) and they are surrounded
+// by margins.
 
-go-to: "file://" + |DOC_PATH| + "/test_docs/fields/union.Union.html"
-store-position: ("#structfield\.a", {"y": a_y})
-store-position: ("#structfield\.b", {"y": b_y})
-assert: |a_y| < |b_y|
+define-function: (
+    "check-fields",
+    [path, selector_1, selector_2],
+    block {
+        go-to: "file://" + |DOC_PATH| + "/test_docs/fields/" + |path|
+        store-position: (|selector_1|, {"y": a_y})
+        store-position: (|selector_2|, {"y": b_y})
+        assert: |a_y| < |b_y|
+
+        // Check the margins.
+        assert-css: (".structfield.section-header", {
+            "margin-top": "9.6px",
+            "margin-bottom": "9.6px",
+            "margin-left": "0px",
+            "margin-right": "0px",
+        }, ALL)
+    }
+)
+
+call-function: ("check-fields", {
+    "path": "struct.Struct.html",
+    "selector_1": "#structfield\.a",
+    "selector_2": "#structfield\.b",
+})
+
+call-function: ("check-fields", {
+    "path": "union.Union.html",
+    "selector_1": "#structfield\.a",
+    "selector_2": "#structfield\.b",
+})
 
 go-to: "file://" + |DOC_PATH| + "/test_docs/fields/enum.Enum.html"
 store-position: ("#variant\.A\.field\.a", {"y": a_y})
@@ -16,3 +39,11 @@ assert: |a_y| < |b_y|
 store-position: ("#variant\.B\.field\.a", {"y": a_y})
 store-position: ("#variant\.B\.field\.b", {"y": b_y})
 assert: |a_y| < |b_y|
+
+// Check the margins.
+assert-css: (".sub-variant-field .section-header", {
+    "margin-top": "0px",
+    "margin-bottom": "0px",
+    "margin-left": "0px",
+    "margin-right": "0px",
+}, ALL)
diff --git a/tests/rustdoc-gui/struct-fields.goml b/tests/rustdoc-gui/struct-fields.goml
index 3c87a4cd654..302a1a0d80b 100644
--- a/tests/rustdoc-gui/struct-fields.goml
+++ b/tests/rustdoc-gui/struct-fields.goml
@@ -1,4 +1,5 @@
-// This test ensures that each field is on its own line (In other words, they have display: block).
+// This test ensures that each field is on its own line (In other words, they have
+// `display: block`).
 go-to: "file://" + |DOC_PATH| + "/test_docs/struct.StructWithPublicUndocumentedFields.html"
 
 store-property: ("//*[@id='structfield.first']", {"offsetTop": first_top})