test_that("sections with class .tabset are converted to tabsets", { skip_on_os("windows") # some line ending problem pkg <- local_pkgdown_site() html <- markdown_to_html(pkg, " # Tabset {.tabset .tabset-pills} ## Tab 1 Contents 1 ## Tab 2 Contents 2 ") tweak_tabsets(html) # strip class for older pandoc compat on GHA headings <- xml2::xml_find_all(html, ".//h1") xml2::xml_set_attr(headings, "class", NULL) expect_snapshot_output(xpath_xml(html, ".//body/div")) }) test_that("can adjust active tab", { skip_on_os("windows") # some line ending problem pkg <- local_pkgdown_site() html <- markdown_to_html(pkg, " ## Tabset {.tabset .tabset-pills} ### Tab 1 Contents 1 ### Tab 2 {.active} Contents 2 ") tweak_tabsets(html) expect_equal( xpath_attr(html, "//div/div/div", "class"), c("tab-pane", "active tab-pane") ) }) test_that("can fade", { pkg <- local_pkgdown_site() html <- markdown_to_html(pkg, " ## Tabset {.tabset .tabset-fade} ### Tab 1 Contents 1 ### Tab 2 {.active} Contents 2 ") tweak_tabsets(html) expect_equal( xpath_attr(html, "//div/div/div", "class"), c("fade tab-pane", "show active fade tab-pane") ) }) test_that("can accept html", { pkg <- local_pkgdown_site() html <- markdown_to_html(pkg, " ## Tabset {.tabset} ### Tab 1 `with_code` {#toc-1} Contents 1 ### Tab 2 {#toc-2} Contents 2 ### Normal Tab {#toc-normal} Contents of normal tab ") tweak_tabsets(html) expect_match( as.character(xpath_xml(html, ".//*[@id = 'toc-1-tab']")), "Tab 1 with_code", fixed = TRUE ) expect_match( as.character(xpath_xml(html, ".//*[@id = 'toc-2-tab']")), " Tab 2", fixed = TRUE ) expect_match( as.character(xpath_xml(html, ".//*[@id = 'toc-normal-tab']")), ">Normal Tab", fixed = TRUE ) })