mirror of
https://github.com/rust-lang/mdBook.git
synced 2025-12-27 10:16:09 -05:00
This adds the ability to use multiple books for the GUI tests. This is helpful since some tests need special configuration, and sharing the same book can make it difficult or impossible to test different configurations. It also makes it difficult to make changes to the test_book since it can affect other tests. This works by placing the books in the tests/gui/books directory. The test runner will automatically build all the books. The gui tests can then just access the DOC_PATH with the name of the book. Books are now saved in a temp directory to make it easier to use the DOC_PATH variable, instead of being tests/gui/books/book_name/book which is a little awkward. Following commits will restructure the existing book. This is just a mechanical move.
52 lines
2.9 KiB
Plaintext
52 lines
2.9 KiB
Plaintext
// Tests for collapsed heading sidebar navigation.
|
|
|
|
set-window-size: (1400, 800)
|
|
go-to: |DOC_PATH| + "test_book/headings/collapsed.html"
|
|
|
|
assert-count: (".header-item", 12)
|
|
assert-count: (".current-header", 1)
|
|
assert-text: (".current-header", "Heading 1")
|
|
// Collapsed elements do not have "expanded" class.
|
|
assert-attribute: ("li:has(> a[href='#heading-12'])", {"class": "header-item"})
|
|
assert-attribute: ("li:has(> a[href='#heading-21'])", {"class": "header-item"})
|
|
|
|
// Click 1.2, doesn't change expanded.
|
|
click: "a.header-in-summary[href='#heading-12']"
|
|
assert-attribute: ("li:has(> a[href='#heading-12'])", {"class": "header-item"})
|
|
assert-attribute: ("li:has(> a[href='#heading-21'])", {"class": "header-item"})
|
|
assert-css: ("//li[preceding-sibling::li[1][a[@href='#heading-12']]]/ol", {"display": "none"})
|
|
// Click expand chevron.
|
|
// 1.2.1 and 1.2.2 should be visible
|
|
click: "a.header-in-summary[href='#heading-12'] ~ a.header-toggle"
|
|
assert-attribute: ("li:has(> a[href='#heading-12'])", {"class": "header-item expanded"})
|
|
assert-attribute: ("li:has(> a[href='#heading-21'])", {"class": "header-item"})
|
|
assert-css: ("//li[preceding-sibling::li[1][a[@href='#heading-12']]]/ol", {"display": "block"})
|
|
|
|
// Click 1.3
|
|
click: "a.header-in-summary[href='#heading-13']"
|
|
// Everything should be collapsed
|
|
assert-attribute: ("li:has(> a[href='#heading-12'])", {"class": "header-item"})
|
|
assert-attribute: ("li:has(> a[href='#heading-21'])", {"class": "header-item"})
|
|
assert-css: ("//li[preceding-sibling::li[1][a[@href='#heading-12']]]/ol", {"display": "none"})
|
|
assert-css: ("//li[preceding-sibling::li[1][a[@href='#heading-21']]]/ol", {"display": "none"})
|
|
|
|
|
|
assert-attribute: ("li:has(> a[href='#heading-12'])", {"class": "header-item"})
|
|
assert-attribute: ("li:has(> a[href='#heading-21'])", {"class": "header-item"})
|
|
assert-attribute: ("li:has(> a[href='#heading-211'])", {"class": "header-item"})
|
|
assert-attribute: ("li:has(> a[href='#heading-2111'])", {"class": "header-item"})
|
|
// Scroll to bottom of page
|
|
press-key: 'PageDown'
|
|
press-key: 'PageDown'
|
|
press-key: 'PageDown'
|
|
press-key: 'PageDown'
|
|
// 2.1.1.1.1 should be visible, and all the chevrons should be open, and expanded should be on each one
|
|
assert-attribute: ("li:has(> a[href='#heading-12'])", {"class": "header-item"})
|
|
assert-attribute: ("li:has(> a[href='#heading-21'])", {"class": "header-item expanded"})
|
|
assert-attribute: ("li:has(> a[href='#heading-211'])", {"class": "header-item expanded"})
|
|
assert-attribute: ("li:has(> a[href='#heading-2111'])", {"class": "header-item expanded"})
|
|
assert-css: ("//li[preceding-sibling::li[1][a[@href='#heading-12']]]/ol", {"display": "none"})
|
|
assert-css: ("//li[preceding-sibling::li[1][a[@href='#heading-21']]]/ol", {"display": "block"})
|
|
assert-css: ("//li[preceding-sibling::li[1][a[@href='#heading-211']]]/ol", {"display": "block"})
|
|
assert-css: ("//li[preceding-sibling::li[1][a[@href='#heading-2111']]]/ol", {"display": "block"})
|