// Checks that the setting "line numbers" is working as expected.
include: "utils.goml"

go-to: "file://" + |DOC_PATH| + "/test_docs/fn.foo.html"

// Otherwise, we can't check text color
show-text: true

store-value: (line_numbers_selector, ".example-wrap pre.rust code [data-nosnippet]")
// We check that without this setting, there is no line number displayed.
assert-count: (|line_numbers_selector|, 0)

// All corners should be rounded.
assert-css: (
    ".example-wrap .rust",
    {
        "border-top-left-radius": "6px",
        "border-bottom-left-radius": "6px",
        "border-top-right-radius": "6px",
        "border-bottom-right-radius": "6px",
    },
    ALL,
)

// Before we add line numbers, we get the X position of a span in a code example that we will
// use later on to ensure that when we disable the line numbers, it goes back to its original
// position.
store-position: (".example-wrap code .macro", {"x": span_x_pos})

// We enable the setting to show the line numbers on code examples.
call-function: ("switch-line-numbers-setting", {"expected_status": "true"})
// We ensure that there are actually line numbers generated in the DOM.
assert-text: (".example-wrap pre.rust code span[data-nosnippet]", "1")
assert-position-false: (".example-wrap code .macro", {"x": |span_x_pos|})

// Let's now check some CSS properties...
define-function: (
    "check-colors",
    [theme, color],
    block {
        // Page will be reloaded in "switch-theme".
        call-function: ("switch-theme", {"theme": |theme|})
        // If the test didn't fail, it means that it was found!
        assert-css: (
            ".digits-1 pre [data-nosnippet]",
            {
                "color": |color|,
                "margin-top": "0px",
                "margin-bottom": "0px",
                "margin-left": "0px",
                "margin-right": "20px",
                "padding-top": "0px",
                "padding-bottom": "0px",
                "padding-left": "4px",
                "padding-right": "4px",
                "text-align": "right",
            },
            ALL,
        )
    },
)
call-function: ("check-colors", {
    "theme": "ayu",
    "color": "#5c6773",
})
call-function: ("check-colors", {
    "theme": "dark",
    "color": "#3b91e2",
})
call-function: ("check-colors", {
    "theme": "light",
    "color": "#c67e2d",
})

// Now, try changing the setting dynamically. We'll turn it off, using the settings menu,
// and make sure it goes away.

call-function: ("switch-line-numbers-setting", {"expected_status": "false"})
assert: ".digits-1.hide-lines"

// The line numbers not being displayed, their "space" should have disappear as well.
assert-position: (".example-wrap code .macro", {"x": |span_x_pos|})

// Finally, turn it on again.
call-function: ("switch-line-numbers-setting", {"expected_status": "true"})
wait-for: ".digits-1:not(.hide-lines)"

// The line numbers are being displayed, their "space" should be back.
assert-position-false: (".example-wrap code .macro", {"x": |span_x_pos|})

// Same check with scraped examples line numbers.
go-to: "file://" + |DOC_PATH| + "/scrape_examples/fn.test_many.html"

define-function: (
    "check-padding",
    [path, padding_bottom],
    block {
        assert-css: (|path| + " span[data-nosnippet]", {
            "padding-top": "0px",
            "padding-bottom": "0px",
            "padding-left": "4px",
            "padding-right": "4px",
            "margin-right": "20px",
            "margin-left": "0px",
            "margin-top": "0px",
            "margin-bottom": "0px",
        }, ALL)
    },
)

call-function: ("check-padding", {
    "path": ".scraped-example .example-wrap",
    "padding_bottom": "0px",
})

move-cursor-to: ".scraped-example .example-wrap .rust"
wait-for: ".scraped-example .example-wrap .button-holder .expand"
click: ".scraped-example .example-wrap .button-holder .expand"
wait-for: ".scraped-example.expanded"

call-function: ("check-padding", {
    "path": ".scraped-example.expanded .example-wrap",
    "padding_bottom": "14px",
})

define-function: ("check-line-numbers-existence", [], block {
    assert-local-storage: {"rustdoc-line-numbers": "true"}
    assert-count-false: (|line_numbers_selector|, 0)
    call-function: ("switch-line-numbers-setting", {"expected_status": "false"})
    // Line numbers should still be there.
    assert-count-false: (|line_numbers_selector|, 0)
    assert-css: (|line_numbers_selector|, {"display": "block"})
    // Now re-enabling the setting.
    call-function: ("switch-line-numbers-setting", {"expected_status": "true"})
})

// Checking that turning off the line numbers setting won't remove line numbers from scraped
// examples.
call-function: ("check-line-numbers-existence", {})

// Now checking the line numbers in the source code page.
click: ".src"
assert-css: ("a[data-nosnippet]", {
    "padding-top": "0px",
    "padding-bottom": "0px",
    "padding-left": "4px",
    "padding-right": "4px",
    "margin-top": "0px",
    "margin-bottom": "0px",
    "margin-left": "0px",
    "margin-right": "20px",
}, ALL)
// Checking that turning off the line numbers setting won't remove line numbers.
call-function: ("check-line-numbers-existence", {})

// Now checking that even non-rust code blocks have line numbers generated.
go-to: "file://" + |DOC_PATH| + "/lib2/sub_mod/struct.Foo.html"
assert-local-storage: {"rustdoc-line-numbers": "true" }
assert: ".example-wrap > pre.language-txt"
assert: ".example-wrap > pre.rust"
assert-count: (".example-wrap", 2)
assert-count: (".example-wrap.digits-1", 2)

// Disabling the line numbers setting.
call-function: ("switch-line-numbers-setting", {"expected_status": "false"})
wait-for-count: (".example-wrap.digits-1.hide-lines", 2)

// Now re-enabling the setting.
call-function: ("switch-line-numbers-setting", {"expected_status": "true"})
wait-for-count: (".example-wrap.digits-1", 2)
wait-for-count: (".example-wrap.digits-1.hide-lines", 0)
