rust/tests/rustdoc-gui/search-result-color.goml
2023-06-23 15:50:30 +02:00

393 lines
11 KiB
Plaintext

// The goal of this test is to ensure the color of the text is the one expected.
define-function: (
"check-result-color",
(result_kind, color, hover_color),
block {
assert-css: (".result-" + |result_kind| + " ." + |result_kind|, {"color": |color|}, ALL)
assert-css: (
".result-" + |result_kind|,
{"color": |entry_color|, "background-color": |background_color|},
)
move-cursor-to: ".result-" + |result_kind|
assert-css: (
".result-" + |result_kind| + ":hover",
{"color": |hover_entry_color|, "background-color": |hover_background_color|},
)
assert-css: (
".result-" + |result_kind| + ":hover ." + |result_kind|,
{"color": |hover_color|},
)
move-cursor-to: ".search-input"
focus: ".result-" + |result_kind|
assert-css: (
".result-" + |result_kind| + ":focus",
{"color": |hover_entry_color|, "background-color": |hover_background_color|},
)
assert-css: (
".result-" + |result_kind| + ":focus ." + |result_kind|,
{"color": |hover_color|},
)
// color of the typename (struct, module, method, ...) before search results
assert-css: (
".result-name .typename",
{"color": |grey|},
ALL,
)
},
)
go-to: "file://" + |DOC_PATH| + "/test_docs/index.html?search=coo"
// This is needed so that the text color is computed.
show-text: true
// Ayu theme
set-local-storage: {
"rustdoc-theme": "ayu",
"rustdoc-use-system-theme": "false",
}
reload:
// Waiting for the search results to appear...
wait-for: "#search-tabs"
assert-css: (
"#search-tabs > button > .count",
{"color": "#888"},
ALL,
)
assert-css: (
"//*[@class='desc'][text()='Just a normal struct.']",
{"color": "#c5c5c5"},
)
assert-css: (
"//*[@class='result-name']/*[text()='test_docs::']",
{"color": "#0096cf"},
)
// Checking the color of the bottom border.
assert-css: (
".search-results > a",
{"border-bottom-color": "#aaa3"}
)
store-value: (entry_color, "#0096cf") // color of the search entry
store-value: (hover_entry_color, "#fff") // color of the hovered/focused search entry
store-value: (background_color, "transparent") // background color
store-value: (hover_background_color, "#3c3c3c") // hover background color
store-value: (grey, "#999")
call-function: (
"check-result-color", (
"keyword", // item kind
"#39afd7", // color of item kind
"#39afd7", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"struct", // item kind
"#ffa0a5", // color of item kind
"#ffa0a5", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"associatedtype", // item kind
"#39afd7", // color of item kind
"#39afd7", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"tymethod", // item kind
"#fdd687", // color of item kind
"#fdd687", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"method", // item kind
"#fdd687", // color of item kind
"#fdd687", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"structfield", // item kind
"#0096cf", // color of item kind
"#fff", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"macro", // item kind
"#a37acc", // color of item kind
"#a37acc", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"fn", // item kind
"#fdd687", // color of item kind
"#fdd687", // color of hovered/focused item kind
),
)
// Checking the `<a>` container.
move-cursor-to: ".search-input"
focus: ".search-input" // To ensure the `<a>` container isnt focus or hover.
assert-css: (
"//*[@class='result-name']/*[text()='test_docs::']/ancestor::a",
{"color": "#0096cf", "background-color": "transparent"},
ALL,
)
// Checking color and background on hover.
move-cursor-to: "//*[@class='desc'][text()='Just a normal struct.']"
assert-css: (
"//*[@class='result-name']/*[text()='test_docs::']",
{"color": "#fff"},
)
assert-css: (
"//*[@class='result-name']/*[text()='test_docs::']/ancestor::a",
{"color": "#fff", "background-color": "rgb(60, 60, 60)"},
)
// Dark theme
set-local-storage: {
"rustdoc-theme": "dark",
"rustdoc-use-system-theme": "false",
}
reload:
// Waiting for the search results to appear...
wait-for: "#search-tabs"
assert-css: (
"#search-tabs > button > .count",
{"color": "#888"},
ALL,
)
assert-css: (
"//*[@class='desc'][text()='Just a normal struct.']",
{"color": "#ddd"},
)
assert-css: (
"//*[@class='result-name']/*[text()='test_docs::']",
{"color": "#ddd"},
)
// Checking the color of the bottom border.
assert-css: (
".search-results > a",
{"border-bottom-color": "#aaa3"}
)
store-value: (entry_color, "#ddd") // color of the search entry
store-value: (hover_entry_color, "#ddd") // color of the hovered/focused search entry
store-value: (background_color, "transparent") // background color
store-value: (hover_background_color, "#616161") // hover background color
store-value: (grey, "#ccc")
call-function: (
"check-result-color", (
"keyword", // item kind
"#d2991d", // color of item kind
"#d2991d", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"struct", // item kind
"#2dbfb8", // color of item kind
"#2dbfb8", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"associatedtype", // item kind
"#d2991d", // color of item kind
"#d2991d", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"tymethod", // item kind
"#2bab63", // color of item kind
"#2bab63", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"method", // item kind
"#2bab63", // color of item kind
"#2bab63", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"structfield", // item kind
"#ddd", // color of item kind
"#ddd", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"macro", // item kind
"#09bd00", // color of item kind
"#09bd00", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"fn", // item kind
"#2bab63", // color of item kind
"#2bab63", // color of hovered/focused item kind
),
)
// Checking the `<a>` container.
move-cursor-to: ".search-input"
focus: ".search-input" // To ensure the `<a>` container isnt focus or hover.
assert-css: (
"//*[@class='result-name']/*[text()='test_docs::']/ancestor::a",
{"color": "#ddd", "background-color": "transparent"},
)
// Light theme
set-local-storage: {"rustdoc-theme": "light", "rustdoc-use-system-theme": "false"}
reload:
// Waiting for the search results to appear...
wait-for: "#search-tabs"
assert-css: (
"#search-tabs > button > .count",
{"color": "#888"},
ALL,
)
assert-css: (
"//*[@class='desc'][text()='Just a normal struct.']",
{"color": "#000"},
)
assert-css: (
"//*[@class='result-name']/*[text()='test_docs::']",
{"color": "#000"},
)
// Checking the color of the bottom border.
assert-css: (
".search-results > a",
{"border-bottom-color": "#aaa3"}
)
store-value: (entry_color, "#000") // color of the search entry
store-value: (hover_entry_color, "#000") // color of the hovered/focused search entry
store-value: (background_color, "transparent") // background color
store-value: (hover_background_color, "#ccc") // hover background color
store-value: (grey, "#999")
call-function: (
"check-result-color", (
"keyword", // item kind
"#3873ad", // color of item kind
"#3873ad", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"struct", // item kind
"#ad378a", // color of item kind
"#ad378a", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"associatedtype", // item kind
"#3873ad", // color of item kind
"#3873ad", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"tymethod", // item kind
"#ad7c37", // color of item kind
"#ad7c37", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"method", // item kind
"#ad7c37", // color of item kind
"#ad7c37", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"structfield", // item kind
"#000", // color of item kind
"#000", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"macro", // item kind
"#068000", // color of item kind
"#068000", // color of hovered/focused item kind
),
)
call-function: (
"check-result-color", (
"fn", // item kind
"#ad7c37", // color of item kind
"#ad7c37", // color of hovered/focused item kind
),
)
// Checking the `<a>` container.
move-cursor-to: ".search-input"
focus: ".search-input" // To ensure the `<a>` container isnt focus or hover.
assert-css: (
"//*[@class='result-name']/*[text()='test_docs::']/ancestor::a",
{"color": "#000", "background-color": "transparent"},
)
// Check the alias.
go-to: "file://" + |DOC_PATH| + "/test_docs/index.html"
// If the text isn't displayed, the browser doesn't compute color style correctly...
show-text: true
define-function: (
"check-alias",
(theme, alias, grey),
block {
set-local-storage: {"rustdoc-theme": |theme|, "rustdoc-use-system-theme": "false"}
reload:
write: (".search-input", "thisisanalias")
// To be SURE that the search will be run.
press-key: 'Enter'
// Waiting for the search results to appear...
wait-for: "#search-tabs"
// Checking that the colors for the alias element are the ones expected.
assert-css: (".result-name > .alias", {"color": |alias|})
assert-css: (".result-name > .alias > .grey", {"color": |grey|})
// Leave the search results to prevent reloading with an already filled search input.
press-key: "Escape"
},
)
call-function: ("check-alias", {
"theme": "ayu",
"alias": "#c5c5c5",
"grey": "#999",
})
call-function: ("check-alias", {
"theme": "dark",
"alias": "#fff",
"grey": "#ccc",
})
call-function: ("check-alias", {
"theme": "light",
"alias": "#000",
"grey": "#999",
})