tests/testthat/test-generatePDF.R

context("generatePDF")

basepath <- test_path()
tinytex_installed <- nchar(tinytex::tinytex_root(error = FALSE)) > 0


testpath <- file.path(basepath, "temp")
dir.create(testpath)

test_that("generatePDF - correct behaviour, DATED=FALSE,CLEANUP=TRUE", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  generatePDF(srcpath = basepath, srcname = "basic", destpath = testpath, destname = "basic", DATED = FALSE)
  
  expect_true(file.exists(file.path(testpath, "basic.pdf")))
  expect_true(file.exists(file.path(testpath, "basic.tex")))
  expect_false(file.exists(file.path(testpath, "basic.log")))
  expect_false(file.exists(file.path(testpath, "basic.aux")))
  expect_false(file.exists(file.path(testpath, "basic.out")))
  expect_false(file.exists(file.path(testpath, "basic.toc")))
})

test_that("generatePDF - correct behaviour, DATED=FALSE,CLEANUP=TRUE, compiler=xelatex", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  generatePDF(srcpath = basepath, srcname = "basic", destpath = testpath, destname = "basic", DATED = FALSE)
  
  expect_true(file.exists(file.path(testpath, "basic.pdf")))
  expect_true(file.exists(file.path(testpath, "basic.tex")))
  expect_false(file.exists(file.path(testpath, "basic.log")))
  expect_false(file.exists(file.path(testpath, "basic.aux")))
  expect_false(file.exists(file.path(testpath, "basic.out")))
  expect_false(file.exists(file.path(testpath, "basic.toc")))
})

test_that("generatePDF - correct behaviour, quick generate", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  generatePDF(srcpath = basepath, srcname = "datatabletest")
  
  expect_true(file.exists(file.path(basepath, "datatabletest.pdf")))
  expect_true(file.exists(file.path(basepath, "datatabletest.tex")))
  expect_false(file.exists(file.path(basepath, "datatabletest.log")))
  expect_false(file.exists(file.path(basepath, "datatabletest.aux")))
  expect_false(file.exists(file.path(basepath, "datatabletest.out")))
  expect_false(file.exists(file.path(basepath, "datatabletest.toc")))
  
  dtfiles <- dir(path = basepath, pattern = "datatabletest*", full.names = TRUE)
  dtfiles <- dtfiles[!dtfiles %in% file.path(basepath, c("datatabletest.Rnw", "datatabletest.pdf"))]
  file.remove(dtfiles)
  
})

test_that("generatePDF - correct behaviour, quick & quiet generate", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  generatePDF(srcpath = basepath, srcname = "datatabletest", QUIET = TRUE)
  
  expect_true(file.exists(file.path(basepath, "datatabletest.pdf")))
  expect_true(file.exists(file.path(basepath, "datatabletest.tex")))
  expect_false(file.exists(file.path(basepath, "datatabletest.log")))
  expect_false(file.exists(file.path(basepath, "datatabletest.aux")))
  expect_false(file.exists(file.path(basepath, "datatabletest.out")))
  expect_false(file.exists(file.path(basepath, "datatabletest.toc")))
  
  dtfiles <- dir(path = basepath, pattern = "datatabletest*", full.names = TRUE)
  dtfiles <- dtfiles[!dtfiles %in% file.path(basepath, c("datatabletest.Rnw", "datatabletest.pdf"))]
  file.remove(dtfiles)
  
})

test_that("generatePDF - correct behaviour, DATED=FALSE,CLEANUP=TRUE, compiler=xelatex", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  generatePDF(srcpath = basepath, srcname = "datatabletest", destpath = testpath, destname = "datatabletest", DATED = FALSE, compiler = "xelatex")
  
  expect_true(file.exists(file.path(testpath, "datatabletest.pdf")))
  expect_true(file.exists(file.path(testpath, "datatabletest.tex")))
  expect_false(file.exists(file.path(testpath, "datatabletest.log")))
  expect_false(file.exists(file.path(testpath, "datatabletest.aux")))
  expect_false(file.exists(file.path(testpath, "datatabletest.out")))
  expect_false(file.exists(file.path(testpath, "datatabletest.toc")))
})

test_that("generatePDF - correct behaviour, DATED=TRUE,CLEANUP=TRUE", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  generatePDF(srcpath = basepath, srcname = "basic", destpath = testpath, destname = "basic", DATED = TRUE)
  
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".pdf"))))
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".tex"))))
  expect_false(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".log"))))
  expect_false(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".aux"))))
  expect_false(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".out"))))
  expect_false(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".toc"))))
})


test_that("generatePDF - correct behaviour, DATED=FALSE,CLEANUP=FALSE", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  generatePDF(srcpath = basepath, srcname = "basic", destpath = testpath, destname = "basic", DATED = FALSE, CLEANUP = FALSE)
  
  expect_true(file.exists(file.path(testpath, "basic.pdf")))
  expect_true(file.exists(file.path(testpath, "basic.tex")))
  expect_true(file.exists(file.path(testpath, "basic.log")))
  expect_true(file.exists(file.path(testpath, "basic.aux")))
  expect_true(file.exists(file.path(testpath, "basic.toc")))
})


test_that("generatePDF - correct behaviour, DATED=TRUE,CLEANUP=FALSE", {
  skip_on_cran() 
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  generatePDF(srcpath = basepath, srcname = "basic", destpath = testpath, destname = "basic", DATED = TRUE, CLEANUP = FALSE)
  
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".pdf"))))
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".tex"))))
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".log"))))
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".aux"))))
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".toc"))))
})


test_that("generatePDF - multiple calls still performs as expected correct behaviour,CLEANUP=TRUE", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  
  generatePDF(srcpath = basepath, srcname = "basic", destpath = testpath, destname = "basic", DATED = FALSE)
  
  generatePDF(srcpath = basepath, srcname = "basic", destpath = testpath, destname = "basic", DATED = TRUE)
  
  expect_true(file.exists(file.path(testpath, "basic.pdf")))
  expect_true(file.exists(file.path(testpath, "basic.tex")))
  expect_false(file.exists(file.path(testpath, "basic.log")))
  expect_false(file.exists(file.path(testpath, "basic.aux")))
  expect_false(file.exists(file.path(testpath, "basic.toc")))
  
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".pdf"))))
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".tex"))))
  expect_false(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".log"))))
  expect_false(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".aux"))))
  expect_false(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".toc"))))
})

test_that("generatePDF - multiple calls still performs as expected correct behaviour,CLEANUP=FALSE", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  
  generatePDF(srcpath = basepath, srcname = "basic", destpath = testpath, destname = "basic", DATED = FALSE, CLEANUP = FALSE)
  
  generatePDF(srcpath = basepath, srcname = "basic", destpath = testpath, destname = "basic", DATED = TRUE, CLEANUP = FALSE)
  
  expect_true(file.exists(file.path(testpath, "basic.pdf")))
  expect_true(file.exists(file.path(testpath, "basic.tex")))
  expect_true(file.exists(file.path(testpath, "basic.log")))
  expect_true(file.exists(file.path(testpath, "basic.aux")))
  expect_true(file.exists(file.path(testpath, "basic.toc")))
  
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".pdf"))))
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".tex"))))
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".log"))))
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".aux"))))
  expect_true(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".toc"))))
})


test_that("generatePDF - errors - DATED=FALSE, source file does not exist", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  expect_error(generatePDF(srcpath = basepath, srcname = "basic1", destpath = testpath, destname = "basic1", DATED = FALSE))
  
  expect_false(file.exists(file.path(testpath, "basic1.pdf")))
  expect_false(file.exists(file.path(testpath, "basic1.tex")))
  expect_false(file.exists(file.path(testpath, "basic1.log")))
  expect_false(file.exists(file.path(testpath, "basic1.aux")))
  expect_false(file.exists(file.path(testpath, "basic.toc")))
})


test_that("generatePDF - errors - DATED=TRUE, source file does not exist", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  expect_error(generatePDF(srcpath = basepath, srcname = "basic1", destpath = testpath, destname = "basic1", DATED = TRUE))
  
  expect_false(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".pdf"))))
  expect_false(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".tex"))))
  expect_false(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".log"))))
  expect_false(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".aux"))))
  expect_false(file.exists(file.path(testpath, paste0("basic", format(Sys.Date(), "%Y%m%d"), ".toc"))))
})


test_that("generatePDF - errors - missing inputs", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  expect_error(generatePDF(srcpath = basepath, destpath = testpath, destname = "basic"))
  
  expect_false(file.exists(file.path(testpath, "basic1.pdf")))
  expect_false(file.exists(file.path(testpath, "basic1.tex")))
  expect_false(file.exists(file.path(testpath, "basic1.log")))
  expect_false(file.exists(file.path(testpath, "basic1.aux")))
  expect_false(file.exists(file.path(testpath, "basic.toc")))
})

test_that("generatePDF - errors - missing inputs", {
  skip_on_cran()
  skip_if_not(tinytex_installed)
  file.remove(dir(testpath, full.names = TRUE))
  expect_error(generatePDF())
  
  expect_false(file.exists(file.path(testpath, "basic1.pdf")))
  expect_false(file.exists(file.path(testpath, "basic1.tex")))
  expect_false(file.exists(file.path(testpath, "basic1.log")))
  expect_false(file.exists(file.path(testpath, "basic1.aux")))
  expect_false(file.exists(file.path(testpath, "basic.toc")))
})

unlink(testpath, recursive = TRUE)
stephlocke/optiRum documentation built on March 11, 2024, 2:25 a.m.