1context("xml_nodeset") 2 3test_that("methods work on empty nodesets", { 4 5 x <- read_xml("<a><b/></a>") 6 empty <- xml_find_all(x, "//c") 7 8 expect_error(empty[[1]], "subscript out of bounds") 9 expect_identical(empty[1], empty) 10 test <- empty 11 12 xml_attr(test, "test") <- 1 13 expect_identical(test, empty) 14 15 xml_attrs(test) <- c("test" = 1) 16 expect_identical(test, empty) 17 18 xml_name(test) <- "test" 19 expect_identical(test, empty) 20 21 xml_text(test) <- "test" 22 expect_identical(test, empty) 23 24 expect_identical(as.character(empty), character(0)) 25 expect_identical(as_list(empty), list()) 26 expect_identical(nodeset_apply(empty, identical), empty) 27 expect_output(print(empty), "\\{xml_nodeset \\(0\\)\\}") 28 expect_output(tree_structure(empty), NA) 29 30 xml_add_child(test, "test") 31 expect_identical(test, empty) 32 33 xml_add_sibling(test, "test") 34 expect_identical(test, empty) 35 36 expect_identical(xml_attr(empty, "test"), character()) 37 expect_identical(xml_attrs(empty), list()) 38 expect_identical(xml_double(empty), numeric()) 39 expect_identical(xml_find_all(empty), empty) 40 expect_identical(xml_find_chr(empty), character()) 41 expect_identical(xml_find_first(empty), empty) 42 expect_identical(xml_find_lgl(empty), logical()) 43 expect_identical(xml_find_num(empty), numeric()) 44 expect_identical(xml_integer(empty), integer()) 45 expect_identical(xml_length(empty), 0L) 46 expect_identical(xml_name(empty), character()) 47 expect_identical(xml_ns(empty), character()) 48 expect_identical(xml_parent(empty), empty) 49 expect_identical(xml_path(empty), character()) 50 51 xml_remove(test) 52 expect_identical(test, empty) 53 54 xml_replace(test) 55 expect_identical(test, empty) 56 57 xml_set_attr(test, "test", 1) 58 expect_identical(test, empty) 59 60 xml_set_attrs(test, c("test" = 1)) 61 expect_identical(test, empty) 62 63 xml_set_name(test, "test") 64 expect_identical(test, empty) 65 66 xml_set_text(test, "test") 67 expect_identical(test, empty) 68 69 expect_identical(xml_siblings(empty), empty) 70 expect_output(xml_structure(empty), NA) 71 72 expect_identical(xml_text(empty), character()) 73 expect_identical(xml_type(empty), character()) 74 expect_identical(xml_url(empty), character()) 75}) 76