test_that("print.html preserves dependencies for HTML()", { # Regression test for issue #125 dep <- htmlDependency("dummytestdep", "1.0", c(href="http://example.com/"), script = "test.js" ) url <- NULL op <- options(viewer = function(url) { url <<- url }) on.exit(options(op), add = TRUE) print(attachDependencies(HTML("test"), list(dep) ), browse = TRUE) result_contents <- readLines(url) expect_true(any(grepl("http://example.com/test.js", result_contents))) }) test_that("CRLF is properly handled", { txt <- paste(c("x", "y", ""), collapse = "\r\n") tmp <- tempfile(fileext = ".txt") on.exit(unlink(tmp), add = TRUE) writeBin(charToRaw(txt), tmp) obj <- tagList( includeHTML(tmp), includeCSS(tmp), includeMarkdown(tmp), includeScript(tmp), includeText(tmp), txt, HTML(txt) ) out <- tempfile(fileext = ".html") on.exit(unlink(out), add = TRUE) wd <- getwd() save_html(obj, out) # Verify that save_html doesn't alter working dir expect_identical(getwd(), wd) chr <- readChar(out, file.size(out)) expect_false(grepl("\r\r\n", chr)) expect_false(grepl("\r\r\n", as.character(obj))) }) test_that("Special characters are not re-encoded", { skip_on_cran() # https://github.com/rstudio/htmltools/pull/117 f <- tempfile(fileext = ".html") withr::with_options( list(encoding = "UTF-8"), { save_html(div("brûlée"), f) expect_true(any(grepl("brûlée", readLines(f)))) } ) }) test_that("save_html() language parameter is set", { output <- tempfile(fileext = ".html") # test for default save_html("

Howdy

", output) output_read <- readLines(output) expect_true( grepl("", paste(output_read, collapse = " ")) ) # test for fr save_html("

Howdy

", output, lang = "fr") output_read <- readLines(output) expect_true( grepl("", paste(output_read, collapse = " ")) ) }) test_that("save_html() can write to subdirectories", { tmpDir <- tempfile() dir.create(tmpDir) withr::local_dir(tmpDir) dir.create("foo") save_html(tags$h2("Howdy"), "foo/bar.html") expect_true( grepl("

Howdy

", paste(readLines("foo/bar.html"), collapse = " ")) ) }) test_that("save_html() can write to a file connection", { f <- file() on.exit(close(f), add = TRUE) save_html(tags$h2("Howdy"), f) expect_true( grepl("

Howdy

", paste(readLines(f), collapse = " ")) ) }) test_that("save_html.default() throws when undefined arguments are provided", { expect_error( save_html(div(), tempfile(), foo = "bar") ) expect_error( save_html(div(), tempfile(), background = "white", libdir = "lib", lang = "en", "bar") ) })