1test_that("extra arguments to matches passed onto grepl", {
2  expect_success(expect_match("te*st", "e*", fixed = TRUE))
3  expect_success(expect_match("test", "TEST", ignore.case = TRUE))
4})
5
6test_that("special regex characters are escaped in output", {
7  error <- tryCatch(expect_match("f() test", "f() test"), expectation = function(e) e$message)
8  expect_equal(error, "\"f\\(\\) test\" does not match \"f() test\".\nActual value: \"f\\(\\) test\"")
9})
10
11test_that("correct reporting of expected label", {
12  expect_failure(expect_match("[a]", "[b]"), escape_regex("[a]"), fixed = TRUE)
13  expect_failure(expect_match("[a]", "[b]", fixed = TRUE), "[a]", fixed = TRUE)
14})
15
16test_that("errors if obj is empty str", {
17  x <- character(0)
18  err <- expect_error(
19    expect_match(x, 'asdf'),
20    class = "expectation_failure"
21  )
22  expect_match(err$message, 'is empty')
23})
24
25test_that("prints multiple unmatched values", {
26  err <- expect_error(
27    expect_match(letters[1:10], 'asdf'),
28    class = "expectation_failure"
29  )
30  expect_match(err$message, "does not match")
31})
32
33test_that("expect_no_match works", {
34  expect_success(expect_no_match("[a]", "[b]"))
35  expect_success(expect_no_match("[a]", "[b]", fixed = TRUE))
36  expect_failure(expect_no_match("te*st", "e*", fixed = TRUE), escape_regex("te*st"))
37  expect_failure(expect_no_match("test", "TEST", ignore.case = TRUE), "test")
38})
39