test_that("checks if R is run under JGR or RStudio", { expect_identical(.is_jgr(), "package:JGR" %in% search()) expect_identical(.is_rstudio(), rstudioapi::isAvailable()) }) test_that("manipulates data in a temporary environment", { expect_identical(.temp_env(), as.environment("SciViews:TempEnv")) expect_identical(.assign_temp(".test_variable", 1:10), 1:10) expect_identical(.get_temp(".test_variable"), 1:10) expect_identical(.get_temp(".nonexisting_variable", default = "a"), "a") rm(list = ".test_variable", envir = .temp_env()) expect_identical(.get_temp(".test_variable", default = "a"), "a") }) test_that("has a default GUI available named .GUI", { expect_true(".GUI" %in% gui_list()) expect_s3_class(.GUI, c("nativeGUI", "textCLI", "gui", "environment")) }) test_that("creates a second GUI with only textCLI", { gui_add("CLI", widgets = "textCLI", ask = FALSE) expect_true("CLI" %in% gui_list()) expect_s3_class(.GUI, c("textCLI", "gui", "environment")) }) test_that("creates a third GUI with no widgets", { gui_add("NONE", widgets = NULL, ask = NULL) expect_true("NONE" %in% gui_list()) expect_s3_class(NONE, c("gui", "environment")) }) test_that("dlg_dir works in non-interactive sessions", { wd <- getwd() if (.Platform$OS.type == "windows") wd <- gsub("\\\\", "/", wd) td <- tempdir() if (.Platform$OS.type == "windows") td <- gsub("\\\\", "/", td) expect_identical(dlg_dir()$res, wd) expect_identical(dlg_dir(title = "test")$res, wd) expect_identical(dlg_dir(title = "")$res, wd) expect_identical(dlg_dir(title = character(0))$res, wd) expect_identical(dlg_dir(title = NULL)$res, wd) expect_identical(dlg_dir(default = wd)$res, wd) expect_identical(dlg_dir(default = td)$res, td) expect_identical(dlg_dir(gui = CLI)$res, wd) expect_identical(dlg_dir(title = "test", gui = CLI)$res, wd) expect_identical(dlg_dir(default = wd, gui = CLI)$res, wd) expect_identical(dlg_dir(gui = NONE)$res, wd) newdir <- file.path(tempdir(), "test_directory") expect_identical(dlg_dir(default = newdir)$res, newdir) # TODO: this works well on MacOS, but not on Linux or Windows, why??? # options(SciViews.force.interactive = TRUE) # DON'T use this is real life! # expect_error(dlg_dir(default = wd, gui = NONE), # "No workable method available to display a dir selection dialog box", # fixed = FALSE) # expect_identical(NONE$res, NA) # expect_equivalent(NONE$status, "error") # expect_identical(NONE$widgets, "none") # expect_identical(NONE$args$title, "Choose a directory") # expect_identical(NONE$args$default, wd) # expect_error(dlg_dir(default = wd, title = "test", gui = NONE), # "No workable method available to display a dir selection dialog box", # fixed = FALSE) # expect_identical(NONE$res, NA) # expect_equivalent(NONE$status, "error") # expect_identical(NONE$widgets, "none") # expect_identical(NONE$args$title, "test") # expect_identical(NONE$args$default, wd) # options(SciViews.force.interactive = NULL) # Remove this option quickly # TODO: check the creation of a new sub-directory, or even sub-sub-directory })