Files
rust/tests/rustdoc-gui/search-tab.goml
Nicholas Nethercote 121e87bf14 Remove rustc::existing_doc_keyword lint.
`CheckAttrVisitor::check_doc_keyword` checks `#[doc(keyword = "..")]`
attributes to ensure they are on an empty module, and that the value is
a non-empty identifier.

The `rustc::existing_doc_keyword` lint checks these attributes to ensure
that the value is the name of a keyword.

It's silly to have two different checking mechanisms for these
attributes. This commit does the following.
- Changes `check_doc_keyword` to check that the value is the name of a
  keyword (avoiding the need for the identifier check, which removes a
  dependency on `rustc_lexer`).
- Removes the lint.
- Updates tests accordingly.

There is one hack: the `SelfTy` FIXME case used to used to be handled by
disabling the lint, but now is handled with a special case in
`is_doc_keyword`. That hack will go away if/when the FIXME is fixed.

Co-Authored-By: Guillaume Gomez <guillaume1.gomez@gmail.com>
2024-12-17 13:56:10 +11:00

160 lines
6.0 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Checking the colors of the search tab headers.
include: "utils.goml"
go-to: "file://" + |DOC_PATH| + "/test_docs/fn.foo.html?search=foo"
show-text: true
define-function: (
"check-colors",
[theme, background, background_selected, background_hover, border_bottom,
border_bottom_selected, border_bottom_hover, border_top, border_top_selected,
border_top_hover],
block {
call-function: ("switch-theme", {"theme": |theme|})
// These two commands are used to be sure the search will be run.
focus: ".search-input"
press-key: "Enter"
wait-for: "#search-tabs"
assert-css: ("#search-tabs > button:not(.selected)", {
"background-color": |background|,
"border-bottom": |border_bottom|,
"border-top": |border_top|,
})
assert-css: ("#search-tabs > button.selected", {
"background-color": |background_selected|,
"border-bottom": |border_bottom_selected|,
"border-top": |border_top_selected|,
})
move-cursor-to: "#search-tabs > button:not(.selected)"
assert-css: ("#search-tabs > button:not(.selected):hover", {
"background-color": |background_hover|,
"border-bottom": |border_bottom_hover|,
"border-top": |border_top_hover|,
})
// To prevent disrupting next run of this function.
move-cursor-to: ".search-input"
},
)
call-function: ("check-colors", {
"theme": "ayu",
"background": "transparent",
"background_selected": "#141920",
"background_hover": "transparent",
"border_bottom": "0px none #c5c5c5",
"border_bottom_selected": "1px solid #ffb44c",
"border_bottom_hover": "1px solid rgba(242, 151, 24, 0.3)",
"border_top": "0px none #c5c5c5",
"border_top_selected": "0px none #c5c5c5",
"border_top_hover": "0px none #c5c5c5",
})
call-function: ("check-colors", {
"theme": "dark",
"background": "#252525",
"background_selected": "#353535",
"background_hover": "#353535",
"border_bottom": "0px none #ddd",
"border_bottom_selected": "0px none #ddd",
"border_bottom_hover": "0px none #ddd",
"border_top": "2px solid #252525",
"border_top_selected": "2px solid #0089ff",
"border_top_hover": "2px solid #0089ff",
})
call-function: ("check-colors", {
"theme": "light",
"background": "#e6e6e6",
"background_selected": "#fff",
"background_hover": "#fff",
"border_bottom": "0px none #000",
"border_bottom_selected": "0px none #000",
"border_bottom_hover": "0px none #000",
"border_top": "2px solid #e6e6e6",
"border_top_selected": "2px solid #0089ff",
"border_top_hover": "2px solid #0089ff",
})
// set size wide enough that the text is in a single row
set-window-size: (851, 600)
// Check the size and count in tabs
assert-text: ("#search-tabs > button:nth-child(1) > .count", "(26)")
assert-text: ("#search-tabs > button:nth-child(2) > .count", "(6)")
assert-text: ("#search-tabs > button:nth-child(3) > .count", "(0)")
store-property: ("#search-tabs > button:nth-child(1)", {"offsetWidth": buttonWidth})
assert-property: ("#search-tabs > button:nth-child(2)", {"offsetWidth": |buttonWidth|})
assert-property: ("#search-tabs > button:nth-child(3)", {"offsetWidth": |buttonWidth|})
store-property: ("#search-tabs > button:nth-child(1) > .count", {"offsetWidth": countWidth})
assert-property: ("#search-tabs > button:nth-child(2) > .count", {"offsetWidth": |countWidth|})
assert-property: ("#search-tabs > button:nth-child(3) > .count", {"offsetWidth": |countWidth|})
// Check that counts are in a row with each other
compare-elements-position: (
"#search-tabs > button:nth-child(1) > .count",
"#search-tabs > button:nth-child(2) > .count",
["y"]
)
compare-elements-position: (
"#search-tabs > button:nth-child(2) > .count",
"#search-tabs > button:nth-child(3) > .count",
["y"]
)
// Check that counts are beside the titles and haven't wrapped
compare-elements-position-near: (
"#search-tabs > button:nth-child(1)",
"#search-tabs > button:nth-child(1) > .count",
{"y": 8}
)
compare-elements-position-near: (
"#search-tabs > button:nth-child(2)",
"#search-tabs > button:nth-child(2) > .count",
{"y": 8}
)
compare-elements-position-near: (
"#search-tabs > button:nth-child(2)",
"#search-tabs > button:nth-child(2) > .count",
{"y": 8}
)
// Set size narrow enough that they wrap.
// When I tested it, it wrapped at 811px, but I added some fudge factor to ensure it
// doesn't prematurely wrap with slightly different font kerning or whatever, with a
// @media query
set-window-size: (850, 600)
// all counts and buttons still have same size
store-property: ("#search-tabs > button:nth-child(1)", {"offsetWidth": buttonWidth})
assert-property: ("#search-tabs > button:nth-child(2)", {"offsetWidth": |buttonWidth|})
assert-property: ("#search-tabs > button:nth-child(3)", {"offsetWidth": |buttonWidth|})
store-property: ("#search-tabs > button:nth-child(1) > .count", {"offsetWidth": countWidth})
assert-property: ("#search-tabs > button:nth-child(2) > .count", {"offsetWidth": |countWidth|})
assert-property: ("#search-tabs > button:nth-child(3) > .count", {"offsetWidth": |countWidth|})
// Check that counts are still in a row with each other
compare-elements-position: (
"#search-tabs > button:nth-child(1) > .count",
"#search-tabs > button:nth-child(2) > .count",
["y"]
)
compare-elements-position: (
"#search-tabs > button:nth-child(2) > .count",
"#search-tabs > button:nth-child(3) > .count",
["y"]
)
// Check that counts are NOT beside the titles; now they have wrapped
compare-elements-position-near-false: (
"#search-tabs > button:nth-child(1)",
"#search-tabs > button:nth-child(1) > .count",
{"y": 8}
)
compare-elements-position-near-false: (
"#search-tabs > button:nth-child(2)",
"#search-tabs > button:nth-child(2) > .count",
{"y": 8}
)
compare-elements-position-near-false: (
"#search-tabs > button:nth-child(2)",
"#search-tabs > button:nth-child(2) > .count",
{"y": 8}
)