Files
shiny/inst/tests/test-bootstrap.r

61 lines
2.3 KiB
R

context("bootstrap")
test_that("CSS unit validation", {
# On error, return NA; on success, return result
validateCssUnit_wrap <- function(x) {
tryCatch(validateCssUnit(x), error = function(e) { NA_character_ })
}
# Test strings and expected results
strings <- c("100x", "10px", "10.4px", ".4px", "1px0", "px", "5", "%", "5%", "auto", "1auto", "")
expected <- c(NA, "10px", "10.4px", ".4px", NA, NA, NA, NA, "5%", "auto", NA, NA)
results <- vapply(strings, validateCssUnit_wrap, character(1), USE.NAMES = FALSE)
expect_equal(results, expected)
# Numbers should return string with "px"
expect_equal(validateCssUnit(100), "100px")
})
test_that("Repeated names for selectInput and radioButtons choices", {
# These test might be a bit too closely tied to the exact structure of the
# tag object, but they get the job done for now.
# Select input
x <- selectInput('id','label', choices = c(a='x1', a='x2', b='x3'))
choices <- x[[2]]$children
expect_equal(choices[[1]]$children[[1]], 'a')
expect_equal(choices[[1]]$attribs$value, 'x1')
expect_equal(choices[[1]]$attribs$selected, 'selected')
expect_equal(choices[[2]]$children[[1]], 'a')
expect_equal(choices[[2]]$attribs$value, 'x2')
# This one actually should be NULL, but with the syntax of selectInput, it
# must be 'selected'.
expect_equal(choices[[2]]$attribs$selected, 'selected')
expect_equal(choices[[3]]$children[[1]], 'b')
expect_equal(choices[[3]]$attribs$value, 'x3')
expect_equal(choices[[3]]$attribs$selected, NULL)
# Radio buttons
x <- radioButtons('id','label', choices = c(a='x1', a='x2', b='x3'))
choices <- x$children
expect_equal(choices[[2]]$children[[2]]$children[[1]], 'a')
expect_equal(choices[[2]]$children[[1]]$attribs$value, 'x1')
expect_equal(choices[[2]]$children[[1]]$attribs$checked, 'checked')
expect_equal(choices[[3]]$children[[2]]$children[[1]], 'a')
expect_equal(choices[[3]]$children[[1]]$attribs$value, 'x2')
# This one actually should be NULL, but with the syntax of radioButtons, it
# must be 'checked'.
expect_equal(choices[[3]]$children[[1]]$attribs$checked, 'checked')
expect_equal(choices[[4]]$children[[2]]$children[[1]], 'b')
expect_equal(choices[[4]]$children[[1]]$attribs$value, 'x3')
expect_equal(choices[[4]]$children[[1]]$attribs$checked, NULL)
})