Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
cpdfsdk_helpers_unittest.cpp
Go to the documentation of this file.
1// Copyright 2020 The PDFium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "fpdfsdk/cpdfsdk_helpers.h"
6
7#include "testing/gmock/include/gmock/gmock.h"
8#include "testing/gtest/include/gtest/gtest.h"
9
10using ::testing::ElementsAre;
11using ::testing::IsEmpty;
12
13TEST(CPDFSDK_HelpersTest, NulTerminateMaybeCopyAndReturnLength) {
14 {
15 const ByteString to_be_copied("toBeCopied");
16 constexpr size_t kExpectedToBeCopiedLen = 10;
17 ASSERT_EQ(kExpectedToBeCopiedLen, to_be_copied.GetLength());
18
19 EXPECT_EQ(kExpectedToBeCopiedLen + 1,
20 NulTerminateMaybeCopyAndReturnLength(to_be_copied, nullptr, 0));
21
22 // Buffer should not change if declared length is too short.
23 char buf[kExpectedToBeCopiedLen + 1];
24 memset(buf, 0x42, kExpectedToBeCopiedLen + 1);
25 ASSERT_EQ(kExpectedToBeCopiedLen + 1,
26 NulTerminateMaybeCopyAndReturnLength(to_be_copied, buf,
27 kExpectedToBeCopiedLen));
28 for (char c : buf)
29 EXPECT_EQ(0x42, c);
30
31 // Buffer should copy over if long enough.
32 ASSERT_EQ(kExpectedToBeCopiedLen + 1,
33 NulTerminateMaybeCopyAndReturnLength(to_be_copied, buf,
34 kExpectedToBeCopiedLen + 1));
35 EXPECT_EQ(to_be_copied, ByteString(buf));
36 }
37 {
38 // Empty ByteString should still copy NUL terminator.
39 const ByteString empty;
40 char buf[1];
41 ASSERT_EQ(1u, NulTerminateMaybeCopyAndReturnLength(empty, buf, 1));
42 EXPECT_EQ(empty, ByteString(buf));
43 }
44}
45
46TEST(CPDFSDK_HelpersTest, ParsePageRangeString) {
47 EXPECT_THAT(ParsePageRangeString("", 1), IsEmpty());
48 EXPECT_THAT(ParsePageRangeString(" ", 1), IsEmpty());
49 EXPECT_THAT(ParsePageRangeString("clams", 1), IsEmpty());
50 EXPECT_THAT(ParsePageRangeString("0", 0), IsEmpty());
51 EXPECT_THAT(ParsePageRangeString("1", 0), IsEmpty());
52 EXPECT_THAT(ParsePageRangeString(",1", 10), IsEmpty());
53 EXPECT_THAT(ParsePageRangeString("1,", 10), IsEmpty());
54 EXPECT_THAT(ParsePageRangeString("1,clams", 1), IsEmpty());
55 EXPECT_THAT(ParsePageRangeString("clams,1", 1), IsEmpty());
56 EXPECT_THAT(ParsePageRangeString("0-1", 10), IsEmpty());
57 EXPECT_THAT(ParsePageRangeString("1-0", 10), IsEmpty());
58 EXPECT_THAT(ParsePageRangeString("1-5", 4), IsEmpty());
59 EXPECT_THAT(ParsePageRangeString("1-11,", 10), IsEmpty());
60 EXPECT_THAT(ParsePageRangeString(",1-1", 10), IsEmpty());
61 EXPECT_THAT(ParsePageRangeString("1-", 10), IsEmpty());
62 EXPECT_THAT(ParsePageRangeString("1-,", 10), IsEmpty());
63 EXPECT_THAT(ParsePageRangeString("-2,", 10), IsEmpty());
64 EXPECT_THAT(ParsePageRangeString("1-clams", 10), IsEmpty());
65 EXPECT_THAT(ParsePageRangeString("clams-1,", 10), IsEmpty());
66 EXPECT_THAT(ParsePageRangeString("1-2clams", 10), IsEmpty());
67 EXPECT_THAT(ParsePageRangeString("0,1", 10), IsEmpty());
68 EXPECT_THAT(ParsePageRangeString("1,0", 10), IsEmpty());
69 EXPECT_THAT(ParsePageRangeString("1-2,,,,3-4", 10), IsEmpty());
70 EXPECT_THAT(ParsePageRangeString("1-2-", 10), IsEmpty());
71
72 EXPECT_THAT(ParsePageRangeString("1-1", 10), ElementsAre(0));
73 EXPECT_THAT(ParsePageRangeString("1", 1), ElementsAre(0));
74 EXPECT_THAT(ParsePageRangeString("1-4", 4), ElementsAre(0, 1, 2, 3));
75 EXPECT_THAT(ParsePageRangeString("1- 4", 4), ElementsAre(0, 1, 2, 3));
76 EXPECT_THAT(ParsePageRangeString("1 -4", 4), ElementsAre(0, 1, 2, 3));
77 EXPECT_THAT(ParsePageRangeString("1,2", 10), ElementsAre(0, 1));
78 EXPECT_THAT(ParsePageRangeString("2,1", 10), ElementsAre(1, 0));
79 EXPECT_THAT(ParsePageRangeString("1,50,2", 100), ElementsAre(0, 49, 1));
80 EXPECT_THAT(ParsePageRangeString("1-4,50", 100), ElementsAre(0, 1, 2, 3, 49));
81 EXPECT_THAT(ParsePageRangeString("50,1-2", 100), ElementsAre(49, 0, 1));
82 EXPECT_THAT(ParsePageRangeString("5 0, 1-2 ", 100),
83 ElementsAre(49, 0, 1)); // ???
84 EXPECT_THAT(ParsePageRangeString("1-3,4-6", 10),
85 ElementsAre(0, 1, 2, 3, 4, 5));
86 EXPECT_THAT(ParsePageRangeString("1-4,3-6", 10),
87 ElementsAre(0, 1, 2, 3, 2, 3, 4, 5));
88}
TEST(FXCRYPT, CryptToBase16)