swh:1:snp:bdc19e867479541d0f4994ceaa711217d0dc28ed
Tip revision: 74b598025322cd572dcd58326f0c5fb465f503ab authored by Hadley Wickham on 23 June 2022, 13:00:02 UTC
version 2.0.5
version 2.0.5
Tip revision: 74b5980
test-tweak-homepage.R
test_that("first header is wrapped in page-header div", {
html <- xml2::read_html('
<h1>First</h1>
<h1>Second</h1>
')
tweak_homepage_html(html)
expect_equal(xpath_attr(html, ".//div", "class"), "page-header")
})
test_that("removes dummy page-header", {
html <- xml2::read_html('
<div class="page-header"><h1>Page header</h1></div>
<h1>Header</h1>
')
tweak_homepage_html(html)
expect_equal(xpath_text(html, ".//h1"), "Header")
})
test_that("can remove first header", {
html <- xml2::read_html('
<h1>First</h1>
<h1>Second</h1>
')
tweak_homepage_html(html, strip_header = TRUE)
expect_equal(xpath_length(html, ".//div"), 0)
})
test_that("can remove logo", {
# Without link
html <- xml2::read_html('
<h1>First <img src="logo.png" /></h1>
')
tweak_homepage_html(html, bs_version = 5, logo = "mylogo.png")
expect_snapshot(xpath_xml(html, ".//div"))
# With link
html <- xml2::read_html('
<h1>First <a><img src="logo.png" /></a></h1>
')
tweak_homepage_html(html, bs_version = 5, logo = "mylogo.png")
expect_snapshot(xpath_xml(html, ".//div"))
})
# badges -------------------------------------------------------------------
test_that("can move badges to sidebar", {
html <- xml2::read_html('
<h1>Title</h1>
<div id="badges">
<p><a href="x"><img src="y"></a></p>
</div>
<div class="dev-status"></div>
')
tweak_sidebar_html(html)
expect_snapshot(xpath_xml(html, ".//div"))
})
test_that("remove dev-status & badges if badges suppress", {
html <- xml2::read_html('
<h1>Title</h1>
<div id="badges">
<p><a href="x"><img src="y"></a></p>
</div>
<div class="dev-status"></div>
')
tweak_sidebar_html(html, show_badges = FALSE)
expect_equal(xpath_length(html, "//div"), 0)
})
test_that("doesn't find badges when they don't exist", {
expect_equal(badges_extract_text("<h1></h1>"), character())
expect_equal(badges_extract_text("<p></p>"), character())
# first paragraph contains non-image components
expect_equal(
badges_extract_text('<p><a href="url"><img src="img" alt="alt" /></a>Hi!</p>'),
character()
)
})
test_that("finds single badge", {
expect_equal(
badges_extract_text('<p><a href="x"><img src="y"></a></p>'),
'<a href="x"><img src="y"></a>'
)
})
test_that("finds badges in #badges div", {
expect_equal(
badges_extract_text('<p></p><div id="badges"><a href="x"><img src="y"></a></div>'),
'<a href="x"><img src="y"></a>'
)
# even if there's extra text
expect_equal(
badges_extract_text('<p></p><p><div id="badges"><a href="x"><img src="y"></a>Hi!</div></p>'),
'<a href="x"><img src="y"></a>'
)
})
test_that("can find badges in comments", {
html <- '
<!-- badges: start -->
<p><a href="x"><img src="y"></a></p>
<!-- badges: end -->
'
expect_equal(badges_extract_text(html), '<a href="x"><img src="y"></a>')
# produced by usethis
html <- '
<!-- badges: start -->
<p><a href="x"><img src="y"></a>
<!-- badges: end -->
</p>
'
expect_equal(badges_extract_text(html), '<a href="x"><img src="y"></a>')
})
test_that("ignores extraneous content", {
html <- '
<!-- badges: start -->
<p><a href="x"><img src="y"></a></p>
<p>a</p>
<p><a href="b.html">B</a></p>
<!-- badges: end -->
'
expect_equal(badges_extract_text(html), '<a href="x"><img src="y"></a>')
})