16TEST(CPDFSDKHelpersTest, NulTerminateMaybeCopyAndReturnLength) {
18 const ByteString to_be_copied(
"toBeCopied");
19 constexpr size_t kExpectedToBeCopiedLen = 10;
20 ASSERT_EQ(kExpectedToBeCopiedLen, to_be_copied.GetLength());
21 EXPECT_EQ(kExpectedToBeCopiedLen + 1,
22 NulTerminateMaybeCopyAndReturnLength(to_be_copied,
23 pdfium::span<
char>()));
26 char buf[kExpectedToBeCopiedLen + 1];
27 fxcrt::Fill(buf, 0x42);
28 ASSERT_EQ(kExpectedToBeCopiedLen + 1,
29 NulTerminateMaybeCopyAndReturnLength(
31 pdfium::make_span(buf).first(kExpectedToBeCopiedLen)));
36 ASSERT_EQ(kExpectedToBeCopiedLen + 1,
37 NulTerminateMaybeCopyAndReturnLength(to_be_copied,
38 pdfium::make_span(buf)));
39 EXPECT_EQ(to_be_copied, ByteString(buf));
43 const ByteString empty;
45 ASSERT_EQ(1u, NulTerminateMaybeCopyAndReturnLength(empty,
46 pdfium::make_span(buf)));
47 EXPECT_EQ(empty, ByteString(buf));
51TEST(CPDFSDKHelpersTest, ParsePageRangeString) {
52 EXPECT_THAT(ParsePageRangeString(
"", 1), IsEmpty());
53 EXPECT_THAT(ParsePageRangeString(
" ", 1), IsEmpty());
54 EXPECT_THAT(ParsePageRangeString(
"clams", 1), IsEmpty());
55 EXPECT_THAT(ParsePageRangeString(
"0", 0), IsEmpty());
56 EXPECT_THAT(ParsePageRangeString(
"1", 0), IsEmpty());
57 EXPECT_THAT(ParsePageRangeString(
",1", 10), IsEmpty());
58 EXPECT_THAT(ParsePageRangeString(
"1,", 10), IsEmpty());
59 EXPECT_THAT(ParsePageRangeString(
"1,clams", 1), IsEmpty());
60 EXPECT_THAT(ParsePageRangeString(
"clams,1", 1), IsEmpty());
61 EXPECT_THAT(ParsePageRangeString(
"0-1", 10), IsEmpty());
62 EXPECT_THAT(ParsePageRangeString(
"1-0", 10), IsEmpty());
63 EXPECT_THAT(ParsePageRangeString(
"1-5", 4), IsEmpty());
64 EXPECT_THAT(ParsePageRangeString(
"1-11,", 10), IsEmpty());
65 EXPECT_THAT(ParsePageRangeString(
",1-1", 10), IsEmpty());
66 EXPECT_THAT(ParsePageRangeString(
"1-", 10), IsEmpty());
67 EXPECT_THAT(ParsePageRangeString(
"1-,", 10), IsEmpty());
68 EXPECT_THAT(ParsePageRangeString(
"-2,", 10), IsEmpty());
69 EXPECT_THAT(ParsePageRangeString(
"1-clams", 10), IsEmpty());
70 EXPECT_THAT(ParsePageRangeString(
"clams-1,", 10), IsEmpty());
71 EXPECT_THAT(ParsePageRangeString(
"1-2clams", 10), IsEmpty());
72 EXPECT_THAT(ParsePageRangeString(
"0,1", 10), IsEmpty());
73 EXPECT_THAT(ParsePageRangeString(
"1,0", 10), IsEmpty());
74 EXPECT_THAT(ParsePageRangeString(
"1-2,,,,3-4", 10), IsEmpty());
75 EXPECT_THAT(ParsePageRangeString(
"1-2-", 10), IsEmpty());
77 EXPECT_THAT(ParsePageRangeString(
"1-1", 10), ElementsAre(0));
78 EXPECT_THAT(ParsePageRangeString(
"1", 1), ElementsAre(0));
79 EXPECT_THAT(ParsePageRangeString(
"1-4", 4), ElementsAre(0, 1, 2, 3));
80 EXPECT_THAT(ParsePageRangeString(
"1- 4", 4), ElementsAre(0, 1, 2, 3));
81 EXPECT_THAT(ParsePageRangeString(
"1 -4", 4), ElementsAre(0, 1, 2, 3));
82 EXPECT_THAT(ParsePageRangeString(
"1,2", 10), ElementsAre(0, 1));
83 EXPECT_THAT(ParsePageRangeString(
"2,1", 10), ElementsAre(1, 0));
84 EXPECT_THAT(ParsePageRangeString(
"1,50,2", 100), ElementsAre(0, 49, 1));
85 EXPECT_THAT(ParsePageRangeString(
"1-4,50", 100), ElementsAre(0, 1, 2, 3, 49));
86 EXPECT_THAT(ParsePageRangeString(
"50,1-2", 100), ElementsAre(49, 0, 1));
87 EXPECT_THAT(ParsePageRangeString(
"5 0, 1-2 ", 100),
88 ElementsAre(49, 0, 1));
89 EXPECT_THAT(ParsePageRangeString(
"1-3,4-6", 10),
90 ElementsAre(0, 1, 2, 3, 4, 5));
91 EXPECT_THAT(ParsePageRangeString(
"1-4,3-6", 10),
92 ElementsAre(0, 1, 2, 3, 2, 3, 4, 5));