// This test ensures that code blocks buttons are displayed on hover and when you click on them.
go-to: "file://" + |DOC_PATH| + "/test_docs/fn.foo.html"
include: "utils.goml"

// First we check we "hover".
move-cursor-to: ".example-wrap"
assert-css: (".example-wrap .copy-button", { "visibility": "visible" })
move-cursor-to: ".search-input"
assert-css: (".example-wrap .copy-button", { "visibility": "hidden" })

// Now we check the click.
assert-count: (".example-wrap:not(:hover) .button-holder.keep-visible", 0)
click: ".example-wrap"
move-cursor-to: ".search-input"
// It should have a new class and be visible.
wait-for-count: (".example-wrap:not(:hover) .button-holder.keep-visible", 1)
wait-for-css: (".example-wrap:not(:hover) .button-holder.keep-visible", { "visibility": "visible" })
// Clicking again will remove the class.
click: ".example-wrap"
move-cursor-to: ".search-input"
assert-count: (".example-wrap:not(:hover) .button-holder.keep-visible", 0)
assert-css: (".example-wrap .copy-button", { "visibility": "hidden" })

// Clicking on the "copy code" button shouldn't make the buttons stick.
click: ".example-wrap .copy-button"
move-cursor-to: ".search-input"
assert-count: (".example-wrap:not(:hover) .button-holder.keep-visible", 0)
assert-css: (".example-wrap .copy-button", { "visibility": "hidden" })

define-function: (
    "check-buttons",
    [theme, background, filter, filter_hover],
    block {
        call-function: ("switch-theme", {"theme": |theme|})

        assert-css: (".example-wrap .test-arrow", {"visibility": "hidden"})
        assert-css: (".example-wrap .copy-button", {"visibility": "hidden"})

        move-cursor-to: ".example-wrap"
        assert-css: (".example-wrap .test-arrow", {
            "visibility": "visible",
            "background-color": |background|,
            "border-radius": "2px",
        })
        assert-css: (".example-wrap .test-arrow::before", {
            "filter": |filter|,
        })
        assert-css: (".example-wrap .copy-button", {
            "visibility": "visible",
            "background-color": |background|,
            "border-radius": "2px",
        })
        assert-css: (".example-wrap .copy-button::before", {
            "filter": |filter|,
        })

        move-cursor-to: ".example-wrap .test-arrow"
        assert-css: (".example-wrap .test-arrow:hover", {
            "visibility": "visible",
            "background-color": |background|,
            "border-radius": "2px",
        })
        assert-css: (".example-wrap .test-arrow:hover::before", {
            "filter": |filter_hover|,
        })

        move-cursor-to: ".example-wrap .copy-button"
        assert-css: (".example-wrap .copy-button:hover", {
            "visibility": "visible",
            "background-color": |background|,
            "border-radius": "2px",
        })
        assert-css: (".example-wrap .copy-button:hover::before", {
            "filter": |filter_hover|,
        })
    },
)

call-function: ("check-buttons",{
    "theme": "ayu",
    "background": "#0f1419",
    "filter": "invert(0.7)",
    "filter_hover": "invert(1)",
})
call-function: ("check-buttons",{
    "theme": "dark",
    "background": "#353535",
    "filter": "invert(0.5)",
    "filter_hover": "invert(0.65)",
})
call-function: ("check-buttons",{
    "theme": "light",
    "background": "#fff",
    "filter": "invert(0.5)",
    "filter_hover": "invert(0.35)",
})

define-function: (
    "check-buttons-position",
    [pre_selector],
    block {
        move-cursor-to: |pre_selector| + " .rust:not(.item-decl)"
        store-position: (|pre_selector| + " .rust:not(.item-decl)", {"x": x, "y": y})
        assert-position: (|pre_selector| + " .rust:not(.item-decl) + .button-holder", {
            "y": |y| + 4,
        })
    }
)

call-function: ("check-buttons-position", {"pre_selector": ".example-wrap"})

go-to: "file://" + |DOC_PATH| + "/scrape_examples/fn.test_many.html"
// We should work as well for scraped examples.
call-function: ("check-buttons-position", {"pre_selector": ".scraped-example .example-wrap"})
// And also when the scraped example "title" goes above.
set-window-size: (600, 600)
call-function: ("check-buttons-position", {"pre_selector": ".scraped-example .example-wrap"})
