mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-04 06:56:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			161 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
// Checking the colors of the search tab headers.
 | 
						||
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 {
 | 
						||
        // Setting the theme.
 | 
						||
        set-local-storage: {"rustdoc-theme": |theme|, "rustdoc-use-system-theme": "false"}
 | 
						||
        reload:
 | 
						||
 | 
						||
        // 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", " (23) ")
 | 
						||
assert-text: ("#search-tabs > button:nth-child(2) > .count", " (4)  ")
 | 
						||
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}
 | 
						||
)
 |