tests/testthat/test-properties.R

test_that("read docx properties", {
  doc <- read_docx(path = system.file(package = "officer", "doc_examples/example.docx"))
  properties <- doc_properties(doc)
  expect_equal( properties$value[properties$tag %in% "title"], "document title" )
  expect_equal( properties$value[properties$tag %in% "subject"], "document subject" )
  expect_equal( properties$value[properties$tag %in% "creator"], "author" )
  expect_equal( properties$value[properties$tag %in% "description"], "these are comments" )
  expect_equal( properties$value[properties$tag %in% "created"], "2017-04-26T13:10:00Z" )

})

test_that("read pptx properties", {
  doc <- read_pptx(path = system.file(package = "officer", "doc_examples/example.pptx"))
  properties <- doc_properties(doc)
  expect_equal( properties$value[properties$tag %in% "title"], "document title" )
  expect_equal( properties$value[properties$tag %in% "subject"], "document subject" )
  expect_equal( properties$value[properties$tag %in% "creator"], "author" )
  expect_equal( properties$value[properties$tag %in% "description"], "these are comments" )
  expect_equal( properties$value[properties$tag %in% "created"], "2017-04-27T11:29:40Z" )

})


test_that("set docx properties", {
  doc <- read_docx()
  time_now <- Sys.time()
  filename <- tempfile(fileext = ".docx")
  doc <- set_doc_properties(doc, title = "title",
                       subject = "document subject", creator = "Me me me",
                       description = "this document is not empty",
                       created = time_now )
  dooc <- print(doc, target = filename )

  doc <- read_docx(path = filename)
  properties <- doc_properties(doc)

  expect_equal( properties$value[properties$tag %in% "title"], "title" )
  expect_equal( properties$value[properties$tag %in% "subject"], "document subject" )
  expect_equal( properties$value[properties$tag %in% "creator"], "Me me me" )
  expect_equal( properties$value[properties$tag %in% "description"], "this document is not empty" )
  expect_equal( properties$value[properties$tag %in% "created"], format( time_now, "%Y-%m-%dT%H:%M:%SZ") )

})

test_that("set custom properties", {
  filename <- tempfile(fileext = ".docx")
  doc <- read_docx()
  doc <- set_doc_properties(doc, coco = "coucou", zozo = "zuzu")
  print(doc, target = filename )

  doc <- read_docx(path = filename)
  properties <- doc_properties(doc)

  expect_equal( properties$value[properties$tag %in% "coco"], "coucou" )
  expect_equal( properties$value[properties$tag %in% "zozo"], "zuzu" )

  filename <- tempfile(fileext = ".pptx")
  doc <- read_pptx()
  doc <- set_doc_properties(doc, coco = "coucou", zozo = "zuzu")
  print(doc, target = filename )

  doc <- read_pptx(path = filename)
  properties <- doc_properties(doc)

  expect_equal( properties$value[properties$tag %in% "coco"], "coucou" )
  expect_equal( properties$value[properties$tag %in% "zozo"], "zuzu" )

  doc <- read_docx()
  filename <- tempfile(fileext = ".docx")
  doc <- set_doc_properties(doc, values = list(coco = "coucou", zozo = "zuzu"))
  print(doc, target = filename )

  doc <- read_docx(path = filename)
  properties <- doc_properties(doc)

  expect_equal( properties$value[properties$tag %in% "coco"], "coucou" )
  expect_equal( properties$value[properties$tag %in% "zozo"], "zuzu" )

  doc <- read_pptx()
  filename <- tempfile(fileext = ".pptx")
  doc <- set_doc_properties(doc, values = list(coco = "coucou", zozo = "zuzu"))
  print(doc, target = filename )

  doc <- read_pptx(path = filename)
  properties <- doc_properties(doc)

  expect_equal( properties$value[properties$tag %in% "coco"], "coucou" )
  expect_equal( properties$value[properties$tag %in% "zozo"], "zuzu" )
})



test_that("set pptx properties", {
  doc <- read_pptx()
  time_now <- Sys.time()
  filename <- tempfile(fileext = ".pptx")
  doc <- set_doc_properties(doc, title = "title",
                       subject = "document subject", creator = "Me me me",
                       description = "this document is not empty",
                       created = time_now )
  print(doc, target = filename )

  doc <- read_pptx(path = filename)
  properties <- doc_properties(doc)

  expect_equal( properties$value[properties$tag %in% "title"], "title" )
  expect_equal( properties$value[properties$tag %in% "subject"], "document subject" )
  expect_equal( properties$value[properties$tag %in% "creator"], "Me me me" )
  expect_equal( properties$value[properties$tag %in% "description"], "this document is not empty" )
  expect_equal( properties$value[properties$tag %in% "created"], format( time_now, "%Y-%m-%dT%H:%M:%SZ") )

})

Try the officer package in your browser

Any scripts or data that you put into this service are public.

officer documentation built on Oct. 10, 2024, 1:06 a.m.