diff options
author | Lei Zhang <thestig@chromium.org> | 2018-07-25 17:35:18 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-07-25 17:35:18 +0000 |
commit | 5b322338073162afab98bb28c920692c73b995ed (patch) | |
tree | 87a3bcc964b484e4e6c8956d4d7aab465d9914f9 /core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp | |
parent | 1b54bc1474af7923f6b82496924978cb87844ff0 (diff) | |
download | pdfium-5b322338073162afab98bb28c920692c73b995ed.tar.xz |
Move CPDF_SyntaxParser init methods into ctor.
- CPDF_SyntaxParser can no longer be initialized multiple times.
- Make the file length and header offset const.
- Make the header offset type FX_FILESIZE consistently.
- Simplify for the common case where the header offset is 0.
Change-Id: I7138db1fbcec3b7578b0239b92fc1154fa4dc4ce
Reviewed-on: https://pdfium-review.googlesource.com/38850
Reviewed-by: Art Snake <art-snake@yandex-team.ru>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp')
-rw-r--r-- | core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp | 61 |
1 files changed, 30 insertions, 31 deletions
diff --git a/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp b/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp index cb065eb4e2..57d26b1ed1 100644 --- a/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp +++ b/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp @@ -18,8 +18,8 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Empty string. uint8_t data[] = ""; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 0, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 0, false)); EXPECT_EQ("", parser.ReadHexString()); EXPECT_EQ(0, parser.GetPos()); } @@ -27,8 +27,8 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Blank string. uint8_t data[] = " "; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 2, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 2, false)); EXPECT_EQ("", parser.ReadHexString()); EXPECT_EQ(2, parser.GetPos()); } @@ -36,8 +36,8 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Skips unknown characters. uint8_t data[] = "z12b"; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 4, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 4, false)); EXPECT_EQ("\x12\xb0", parser.ReadHexString()); EXPECT_EQ(4, parser.GetPos()); } @@ -45,8 +45,8 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Skips unknown characters. uint8_t data[] = "*<&*#$^&@1"; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 10, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 10, false)); EXPECT_EQ("\x10", parser.ReadHexString()); EXPECT_EQ(10, parser.GetPos()); } @@ -54,8 +54,8 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Skips unknown characters. uint8_t data[] = "\x80zab"; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 4, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 4, false)); EXPECT_EQ("\xab", parser.ReadHexString()); EXPECT_EQ(4, parser.GetPos()); } @@ -63,8 +63,8 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Skips unknown characters. uint8_t data[] = "\xffzab"; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 4, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 4, false)); EXPECT_EQ("\xab", parser.ReadHexString()); EXPECT_EQ(4, parser.GetPos()); } @@ -72,8 +72,8 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Regular conversion. uint8_t data[] = "1A2b>abcd"; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 9, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 9, false)); EXPECT_EQ("\x1a\x2b", parser.ReadHexString()); EXPECT_EQ(5, parser.GetPos()); } @@ -81,8 +81,8 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Position out of bounds. uint8_t data[] = "12ab>"; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 5, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 5, false)); parser.SetPos(5); EXPECT_EQ("", parser.ReadHexString()); @@ -103,8 +103,8 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Missing ending >. uint8_t data[] = "1A2b"; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 4, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 4, false)); EXPECT_EQ("\x1a\x2b", parser.ReadHexString()); EXPECT_EQ(4, parser.GetPos()); } @@ -112,8 +112,8 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Missing ending >. uint8_t data[] = "12abz"; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 5, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 5, false)); EXPECT_EQ("\x12\xab", parser.ReadHexString()); EXPECT_EQ(5, parser.GetPos()); } @@ -121,8 +121,8 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Uneven number of bytes. uint8_t data[] = "1A2>asdf"; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 8, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 8, false)); EXPECT_EQ("\x1a\x20", parser.ReadHexString()); EXPECT_EQ(4, parser.GetPos()); } @@ -130,8 +130,8 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Uneven number of bytes. uint8_t data[] = "1A2zasdf"; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 8, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 8, false)); EXPECT_EQ("\x1a\x2a\xdf", parser.ReadHexString()); EXPECT_EQ(8, parser.GetPos()); } @@ -139,27 +139,26 @@ TEST(cpdf_syntax_parser, ReadHexString) { { // Just ending character. uint8_t data[] = ">"; - CPDF_SyntaxParser parser; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 1, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 1, false)); EXPECT_EQ("", parser.ReadHexString()); EXPECT_EQ(1, parser.GetPos()); } } TEST(cpdf_syntax_parser, GetInvalidReference) { - CPDF_SyntaxParser parser; // Data with a reference with number CPDF_Object::kInvalidObjNum uint8_t data[] = "4294967295 0 R"; - parser.InitParser(pdfium::MakeRetain<CFX_MemoryStream>(data, 14, false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, 14, false)); std::unique_ptr<CPDF_Object> ref = parser.GetObjectBody(nullptr); EXPECT_FALSE(ref); } TEST(cpdf_syntax_parser, PeekNextWord) { - CPDF_SyntaxParser parser; uint8_t data[] = " WORD "; - parser.InitParser( - pdfium::MakeRetain<CFX_MemoryStream>(data, sizeof(data), false), 0); + CPDF_SyntaxParser parser( + pdfium::MakeRetain<CFX_MemoryStream>(data, sizeof(data), false)); EXPECT_EQ("WORD", parser.PeekNextWord(nullptr)); EXPECT_EQ("WORD", parser.GetNextWord(nullptr)); } |