source("utils.R") get_wml_node <- function(x) { xml_ <- to_wml(x) read_xml(wml_str(xml_)) } get_pml_node <- function(x) { xml_ <- pml_str(to_pml(x)) read_xml(xml_) } test_that("fpar content", { fp <- fpar( ftext("toto", shortcuts$fp_bold()), ftext("titi", shortcuts$fp_italic()) ) fp <- fpar(ftext("toto", fp_text(font.size = 9)), "titi") fp <- update(fp, fp_t = fp_text(bold = TRUE, font.size = 9)) df <- as.data.frame(fp) expect_equal(df$value, c("toto", "titi")) expect_equal(df$size, c(9, 9)) expect_equal(df$bold, c(FALSE, TRUE)) expect_equal(df$italic, c(FALSE, FALSE)) }) test_that("fpar wml", { fp <- fpar( ftext("toto", shortcuts$fp_bold()), ftext("titi", shortcuts$fp_italic()) ) node <- get_wml_node(fp) expect_equal(xml_text(node), "tototiti") expect_equal(xml_text(xml_find_all(node, "//w:r/w:t")), c("toto", "titi")) val <- xml_attr(xml_find_all(node, "//w:pPr/w:jc"), "val") expect_equal(val, "left") fp <- update(fp, fp_p = fp_par(text.align = "center")) node <- get_wml_node(fp) val <- xml_find_all(node, "//w:pPr/w:jc") val <- xml_attr(val, "val") expect_equal(val, "center") fp <- fpar( ftext("pi", fp_text()), ftext(" = ", fp_text(italic = TRUE)), pi ) fp <- update(fp, fp_t = fp_text(bold = TRUE)) node <- get_wml_node(fp) italic <- xml_find_all(node, "//w:r/w:rPr") italic <- xml_child(italic, "w:i") italic <- xml_attr(italic, "val") %in% "true" bold <- xml_find_all(node, "//w:r/w:rPr") bold <- xml_child(bold, "w:b") bold <- xml_attr(bold, "val") %in% "true" expect_equal(italic, c(FALSE, TRUE, FALSE)) expect_equal(bold, c(FALSE, FALSE, TRUE)) }) test_that("fpar pml", { fp <- fpar( ftext("toto", shortcuts$fp_bold()), ftext("titi", shortcuts$fp_italic()) ) node <- get_pml_node(fp) expect_equal(xml_text(node), "tototiti") expect_equal(xml_text(xml_find_all(node, "//a:r/a:t")), c("toto", "titi")) expect_equal(xml_attr(xml_find_all(node, "//a:r/a:rPr"), "b"), c("1", "0")) expect_equal(xml_attr(xml_find_all(node, "//a:r/a:rPr"), "i"), c("0", "1")) val <- xml_attr(xml_find_all(node, "//a:p/a:pPr"), "algn") expect_equal(val, "l") fp <- update(fp, fp_p = fp_par(text.align = "center")) node <- get_pml_node(fp) val <- xml_attr(xml_find_all(node, "//a:p/a:pPr"), "algn") expect_equal(val, "ctr") }) test_that("fpar css", { fp <- fpar( ftext("toto", shortcuts$fp_bold()), ftext("titi", shortcuts$fp_italic()) ) node <- read_xml(to_html(fp)) expect_equal(xml_text(node), "tototiti") expect_equal(xml_text(xml_find_all(node, "//span")), c("toto", "titi")) bold <- xml_attr(xml_find_all(node, "//span"), "style") bold <- has_css_attr(bold, atname = "font-weight", value = "bold") expect_equal(bold, c(TRUE, FALSE)) italic <- xml_attr(xml_find_all(node, "//span"), "style") italic <- has_css_attr(italic, atname = "font-style", value = "italic") expect_equal(italic, c(FALSE, TRUE)) val <- xml_attr(xml_find_all(node, "//p"), "style") val <- has_css_attr(val, atname = "text-align", value = "left") expect_true(val) fp <- update(fp, fp_p = fp_par(text.align = "center")) node <- read_xml(to_html(fp)) val <- xml_attr(xml_find_all(node, "//p"), "style") val <- has_css_attr(val, atname = "text-align", value = "center") expect_true(val) })