| // 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) |