test_that("checking other fields is always ok", {
desc <- description$new(test_path("D1"))
desc$set("Note", "Blah-blah")
expect_equal(desc$get("Note"), c(Note = "Blah-blah"))
})
test_that("we catch syntax errors", {
desc <- description$new(test_path("D1"))
expect_warning(
desc$set("Package", "444!!! not a valid package name"),
"must only contain ASCII letters.*must start with a letter"
)
expect_warning(
desc$set("Package", "4aaaa"),
"must start with a letter"
)
})
test_that("generic field check is always true", {
field <- list(key = "XY", value = "foobar")
class(field) <- "DescriptionField"
expect_silent(check_field(field, warn = TRUE))
expect_true(check_field(field))
})
test_chk <- function(field, value, warn_msg, warn = TRUE, class = field) {
rec <- list(key = field, value = value)
class(rec) <- c(paste0("Description", class), "DescriptionField")
test_that(paste(field, "syntax"), {
if (warn) {
expect_warning(check_field(rec, warn = TRUE), warn_msg)
} else {
expect_silent(check_field(rec, warn = TRUE))
}
})
}
test_chk("License", "GPL", warn = FALSE)
test_chk("License", "", "must not be empty")
test_chk("License", "almost good but \x80", "only ASCII characters")
test_chk("Title", "This is a Good Title", warn = FALSE)
test_chk("Title", "", "must not be empty")
test_chk("Title", "Not a good title.", "must not end with a period")
test_chk("Title", "Good title by Bugs Bunny et al.", warn = FALSE)
test_chk("Maintainer", "Bugs Bunny <bb@acme.com>", warn = FALSE)
test_chk("Maintainer", "ORPHANED", warn = FALSE)
test_chk("Maintainer", "", "must not be empty")
test_chk("Maintainer", "foobar", "must contain an email address")
test_chk("RepoList", "", warn = FALSE)
test_chk("RepoList", "http://cran.rstudio.com", warn = FALSE)
test_chk("RepoList", "http://cran.rstudio.com, https://cran.r-project.org",
warn = FALSE)
test_chk("RepoList", "foobar", "must be a comma .* repository URLs")
test_chk("RepoList", "http://foo.bar http://fobar", "must be a comma")
test_chk("URL", "http://acme.com", warn = FALSE)
test_chk("URL", "not this one", "must be a http, https or ftp URL")
test_chk("URLList", "", warn = FALSE)
test_chk("URLList", "http://cran.rstudio.com", warn = FALSE)
test_chk("URLList", "http://cran.rstudio.com, https://cran.r-project.org",
warn = FALSE)
test_chk("URLList", "foobar", "must be a comma .* URLs")
test_chk("URLList", "http://foo.bar http://fobar", "must be a comma")
test_chk("Priority", "recommended", warn = FALSE)
test_chk("Priority", "foobar", "must be one of")
test_chk("LazyLoad", "yes", warn = FALSE, class = "Logical")
test_chk("LazyLoad", "foobar", "must be one of", class = "Logical")
test_chk("VignetteBuilder", "devtools, knitr", warn = FALSE,
class = "PackageList")
test_chk("VignetteBuilder", "this is not", "must be a comma",
class = "PackageList")
test_chk("Encoding", "UTF-8", warn = FALSE)
test_chk("Encoding", "foobar", "must be one of")
test_chk("OSType", "unix", warn = FALSE)
test_chk("OSType", "foobar", "must be one of")
test_chk("Type", "Translation", warn = FALSE)
test_chk("Type", "foobar", "must be either")
test_chk("Classification", "", warn = FALSE)
test_chk("Language", "hun, deu", warn = FALSE)
test_chk("Language", "this is not", "must be a list of IETF language")
test_chk("Date", "2015-01-21", warn = FALSE)
test_chk("Date", "foobar", "must be an ISO date")
test_chk("Compression", "gzip", warn = FALSE)
test_chk("Compression", "foobar", "must be one of")
test_chk("Repository", "", warn = FALSE)
test_chk("AddedByRCMD", "", warn = FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.