library(testthat)
library(XML)
context("htmlTable - styles check")
test_that("Check that row styles are present",{
mx <-
matrix(ncol=6, nrow=8)
rownames(mx) <- paste(c("1st", "2nd",
"3rd",
paste0(4:8, "th")),
"row")
colnames(mx) <- paste(c("1st", "2nd",
"3rd",
paste0(4:6, "th")),
"hdr")
for (nr in 1:nrow(mx)){
for (nc in 1:ncol(mx)){
mx[nr, nc] <-
paste0(nr, ":", nc)
}
}
css.cell = rep("font-size: 1em", times = ncol(mx) + 1)
css.cell[1] = "font-size: 2em"
out <- htmlTable(mx,
css.cell=css.cell,
cgroup = c("Cgroup 1", "Cgroup 2"),
n.cgroup = c(2,4))
for (n in rownames(mx)) {
expect_match(out, sprintf("\n[^<]*
]+>%s", n))
}
for (nr in 1:nrow(mx)){
for (nc in 1:ncol(mx)){
expect_match(out, sprintf("\n[^<]* | ]+>%s", mx[nr, nc]) )
}
}
})
test_that("Check prPrepareCss",{
mx <- matrix(1:5, ncol = 5, nrow = 1)
rownames(mx) <- "1st"
colnames(mx) <- paste(c("1st", "2nd", "3rd", paste0(4:ncol(mx), "th")), "hdr")
css.cell = rep("font-size: 1em", times = ncol(mx) + 1)
css.cell[1] = "font-size: 2em"
out <- prPrepareCss(mx, css = css.cell, header = names(mx), rnames = rownames(mx))
expect_equal(dim(out), dim(mx))
css.cell = matrix("padding-left: .5em;", nrow = nrow(mx) + 1, ncol = ncol(mx))
out <- prPrepareCss(mx, css = css.cell, header = colnames(mx), rnames = rownames(mx))
expect_equal(dim(out), dim(mx))
})
test_that("Test prGetStyle merge funciton", {
styles <- c(background = "black", border ="1px solid grey")
expect_equivalent(length(prGetStyle(styles)), 1)
expect_match(prGetStyle(styles), "background: black;")
expect_match(prGetStyle(styles), "border: [^;]+grey;")
expect_match(prGetStyle(styles), "border: [^;]+grey;")
expect_match(prGetStyle(styles, a=2), "border: [^;]+grey;")
expect_error(prGetStyle(styles, "invalid style"))
expect_error(prGetStyle(styles, "invalid style:"))
expect_error(prGetStyle(styles, ":invalid style"))
expect_match(prGetStyle(styles, "valid: style"), "valid: style;")
expect_match(prGetStyle(styles, c(valid= "style")), "valid: style;")
expect_match(prGetStyle(styles, c(valid= "style", valid1= "style")), "valid: style; valid1: style;")
expect_match(prGetStyle(styles, c(valid= "style1", valid= "style2")), "valid: style2;")
expect_match(prGetStyle(styles, c(valid= "style1", valid= "style2"), "valid: style3"), "valid: style3;")
})
test_that("Later style has precedence", {
styles <- c(background = "black", border ="1px solid grey")
expect_match(prGetStyle(border = "2px solid red", styles),
styles["border"])
expect_match(prGetStyle(styles, border = "2px solid red"),
"2px solid red")
})
|