tests/testthat/test-check.R

## some tests require CRAN access - make sure a mirror is set
if ("@CRAN@" %in% getOption("repos"))
    chooseCRANmirror(FALSE, 1, TRUE)

test_that("different styles for titles are ok", {
  # check_str is the function used in check_title

  # base
  str <- "An R Package for Customizable Tooltips in Interactive Graphics"
  expect_true(rjtools:::check_str(str)$result)

  # title should not include special format: \\pkg{}
  str <- "\\pkg{toOoOlTiPs}: An R Package for Customizable Tooltips in Interactive Graphics"
  expect_false(rjtools:::check_str(str)$result)

  # title should not include special format: multiple \\pkgs{}
  str <- "\\pkg{toOoOlTiPs}: An R Package for Customizable Tooltips in \\pkg{leaflet}"
  expect_false(rjtools:::check_str(str)$result)

  # title should not include special format: with dot in the pkg name
  str <- "\\pkg{toOoOlTiPs}: An R Package for Customizable Tooltips in \\pkg{data.table}"
  expect_false(rjtools:::check_str(str)$result)

  # use the ignore parameter
  str <- "toOoOlTiPs: An R Package for Customizable Tooltips in Interactive Graphics"
  expect_true(rjtools:::check_str(str, ignore = "toOoOlTiPs")$result)

  # use the ignore parameter with multiple packages
  str <- "toOoOlTiPs: An R Package for Customizable Tooltips in data.table"
  expect_true(rjtools:::check_str(str, ignore = c("toOoOlTiPs", "data.table"))$result)
})

test_that("check abstract works", {

  # pick up BIOpkg, CRANpkg, and pkg markups
  str <- "The package \\BIOpkg{toOoOlTiPs} for the R language is great."
  expect_true(check_abstract_str(str))
  str <- "The package \\CRANpkg{toOoOlTiPs} for the R language is great."
  expect_true(check_abstract_str(str))
  str <- "The package \\pkg{toOoOlTiPs} for the R language is great."
  expect_true(check_abstract_str(str))

  # pick up citation
  str <- "It is an \\cite{xxx} package "
  expect_true(check_abstract_str(str))
  str <- "It uses different forms of citation: \\citet{fox2009}"
  expect_true(check_abstract_str(str))
  str <- "Also, \\citep{bayesassurance}"
  expect_true(check_abstract_str(str))

  # others
  str <- "Highlight with \\texttt{xxx()} is not allowed"
  expect_true(check_abstract_str(str))
  str <- "neither is \\emph{sdkfjls}"
  expect_true(check_abstract_str(str))
  str <- "You should generally not cite \\proglang{R}. "
  expect_true(check_abstract_str(str))

# pick up mathematics
  str <- "and great equations $\\mathcal{O}$"
  expect_true(check_abstract_str(str))

})


expect_SUCCESS <- function(expr) expect_equal(c(expr), "SUCCESS")
expect_NOTE <- function(expr) expect_equal(c(expr), "NOTE")
expect_ERROR <- function(expr) expect_equal(c(expr), "ERROR")

article_path <- system.file("sample-article", package = "rjtools")
bad_article_path <- "../bad-article"

#test_that("filenames check works", {
#    expect_SUCCESS(check_filenames(article_path))
#})

test_that("structure check works", {
    expect_SUCCESS(check_structure(article_path))
    ## we cannot ship a file with spaces since that would trigger
    ## check failure, so we have to create it here
    writeLines("foo", fws <- file.path(bad_article_path, "file with spaces"))
    expect_ERROR(check_structure(bad_article_path))
    unlink(fws)
    ## create invalid nesting
    dir.create(file.path(bad_article_path, "a", "b", "c", "d"), TRUE, TRUE)
    expect_ERROR(check_structure(bad_article_path))
    unlink(file.path(bad_article_path, "a"), TRUE)
    ## create unicode file name
    writeLines("foo", fwu <- file.path(bad_article_path, "\u010cesko"))
    expect_ERROR(check_structure(bad_article_path))
    unlink(fwu)
    expect_SUCCESS(check_structure(bad_article_path))
})

test_that("title check works", {
    expect_SUCCESS(check_title(article_path))
    expect_ERROR(check_title(bad_article_path))
})

test_that("section check works", {
    expect_SUCCESS(check_section(article_path))
})

test_that("cover letter check works", {
    expect_SUCCESS(check_cover_letter(article_path))
    expect_NOTE(check_cover_letter(bad_article_path))
})

test_that("unnecessary check works", {
    expect_SUCCESS(check_unnecessary_files(article_path))
    expect_ERROR(check_unnecessary_files(bad_article_path))
})

#test_that("spelling check works", {
#    expect_NOTE(check_spelling(article_path))
#})

test_that("proposed package check works", {
    expect_SUCCESS(check_proposed_pkg("ggplot2"))
    expect_NOTE(check_proposed_pkg("nonexistent"))
})

test_that("available packages check works", {
    expect_SUCCESS(check_packages_available(article_path, ignore="ToOoOlTiPs"))
})

Try the rjtools package in your browser

Any scripts or data that you put into this service are public.

rjtools documentation built on May 29, 2024, 9:57 a.m.