| Index: core/src/fpdfapi/fpdf_parser/cpdf_parser_unittest.cpp | 
| diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_unittest.cpp b/core/src/fpdfapi/fpdf_parser/cpdf_parser_unittest.cpp | 
| similarity index 58% | 
| rename from core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_unittest.cpp | 
| rename to core/src/fpdfapi/fpdf_parser/cpdf_parser_unittest.cpp | 
| index 49521b01024c046e374404b7a60e934a23ded1c1..ec84171059a547356a49155d5adec6da48a39b61 100644 | 
| --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_unittest.cpp | 
| +++ b/core/src/fpdfapi/fpdf_parser/cpdf_parser_unittest.cpp | 
| @@ -6,7 +6,6 @@ | 
| #include <string> | 
|  | 
| #include "core/include/fpdfapi/cpdf_parser.h" | 
| -#include "core/include/fpdfapi/fpdf_parser.h" | 
| #include "core/include/fxcrt/fx_stream.h" | 
| #include "core/include/fxcrt/fx_ext.h" | 
| #include "core/src/fpdfapi/fpdf_parser/cpdf_syntax_parser.h" | 
| @@ -68,171 +67,13 @@ class CPDF_TestParser : public CPDF_Parser { | 
| // Add test cases here as private friend so that protected members in | 
| // CPDF_Parser can be accessed by test cases. | 
| // Need to access RebuildCrossRef. | 
| -  FRIEND_TEST(fpdf_parser_parser, RebuildCrossRefCorrectly); | 
| -  FRIEND_TEST(fpdf_parser_parser, RebuildCrossRefFailed); | 
| +  FRIEND_TEST(cpdf_parser, RebuildCrossRefCorrectly); | 
| +  FRIEND_TEST(cpdf_parser, RebuildCrossRefFailed); | 
| // Need to access LoadCrossRefV4. | 
| -  FRIEND_TEST(fpdf_parser_parser, LoadCrossRefV4); | 
| +  FRIEND_TEST(cpdf_parser, LoadCrossRefV4); | 
| }; | 
|  | 
| -TEST(fpdf_parser_parser, ReadHexString) { | 
| -  { | 
| -    // Empty string. | 
| -    uint8_t data[] = ""; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 0, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    EXPECT_EQ("", parser.ReadHexString()); | 
| -    EXPECT_EQ(0, parser.SavePos()); | 
| -  } | 
| - | 
| -  { | 
| -    // Blank string. | 
| -    uint8_t data[] = "  "; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 2, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    EXPECT_EQ("", parser.ReadHexString()); | 
| -    EXPECT_EQ(2, parser.SavePos()); | 
| -  } | 
| - | 
| -  { | 
| -    // Skips unknown characters. | 
| -    uint8_t data[] = "z12b"; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 4, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    EXPECT_EQ("\x12\xb0", parser.ReadHexString()); | 
| -    EXPECT_EQ(4, parser.SavePos()); | 
| -  } | 
| - | 
| -  { | 
| -    // Skips unknown characters. | 
| -    uint8_t data[] = "*<&*#$^&@1"; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 10, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    EXPECT_EQ("\x10", parser.ReadHexString()); | 
| -    EXPECT_EQ(10, parser.SavePos()); | 
| -  } | 
| - | 
| -  { | 
| -    // Skips unknown characters. | 
| -    uint8_t data[] = "\x80zab"; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 4, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    EXPECT_EQ("\xab", parser.ReadHexString()); | 
| -    EXPECT_EQ(4, parser.SavePos()); | 
| -  } | 
| - | 
| -  { | 
| -    // Skips unknown characters. | 
| -    uint8_t data[] = "\xffzab"; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 4, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    EXPECT_EQ("\xab", parser.ReadHexString()); | 
| -    EXPECT_EQ(4, parser.SavePos()); | 
| -  } | 
| - | 
| -  { | 
| -    // Regular conversion. | 
| -    uint8_t data[] = "1A2b>abcd"; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 9, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    EXPECT_EQ("\x1a\x2b", parser.ReadHexString()); | 
| -    EXPECT_EQ(5, parser.SavePos()); | 
| -  } | 
| - | 
| -  { | 
| -    // Position out of bounds. | 
| -    uint8_t data[] = "12ab>"; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 5, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    parser.RestorePos(5); | 
| -    EXPECT_EQ("", parser.ReadHexString()); | 
| - | 
| -    parser.RestorePos(6); | 
| -    EXPECT_EQ("", parser.ReadHexString()); | 
| - | 
| -    parser.RestorePos(-1); | 
| -    EXPECT_EQ("", parser.ReadHexString()); | 
| - | 
| -    parser.RestorePos(std::numeric_limits<FX_FILESIZE>::max()); | 
| -    EXPECT_EQ("", parser.ReadHexString()); | 
| - | 
| -    // Check string still parses when set to 0. | 
| -    parser.RestorePos(0); | 
| -    EXPECT_EQ("\x12\xab", parser.ReadHexString()); | 
| -  } | 
| - | 
| -  { | 
| -    // Missing ending >. | 
| -    uint8_t data[] = "1A2b"; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 4, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    EXPECT_EQ("\x1a\x2b", parser.ReadHexString()); | 
| -    EXPECT_EQ(4, parser.SavePos()); | 
| -  } | 
| - | 
| -  { | 
| -    // Missing ending >. | 
| -    uint8_t data[] = "12abz"; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 5, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    EXPECT_EQ("\x12\xab", parser.ReadHexString()); | 
| -    EXPECT_EQ(5, parser.SavePos()); | 
| -  } | 
| - | 
| -  { | 
| -    // Uneven number of bytes. | 
| -    uint8_t data[] = "1A2>asdf"; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 8, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    EXPECT_EQ("\x1a\x20", parser.ReadHexString()); | 
| -    EXPECT_EQ(4, parser.SavePos()); | 
| -  } | 
| - | 
| -  { | 
| -    // Uneven number of bytes. | 
| -    uint8_t data[] = "1A2zasdf"; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 8, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    EXPECT_EQ("\x1a\x2a\xdf", parser.ReadHexString()); | 
| -    EXPECT_EQ(8, parser.SavePos()); | 
| -  } | 
| - | 
| -  { | 
| -    // Just ending character. | 
| -    uint8_t data[] = ">"; | 
| -    ScopedFileStream stream(FX_CreateMemoryStream(data, 1, FALSE)); | 
| - | 
| -    CPDF_SyntaxParser parser; | 
| -    parser.InitParser(stream.get(), 0); | 
| -    EXPECT_EQ("", parser.ReadHexString()); | 
| -    EXPECT_EQ(1, parser.SavePos()); | 
| -  } | 
| -} | 
| - | 
| -TEST(fpdf_parser_parser, RebuildCrossRefCorrectly) { | 
| +TEST(cpdf_parser, RebuildCrossRefCorrectly) { | 
| CPDF_TestParser parser; | 
| std::string test_file; | 
| ASSERT_TRUE(PathService::GetTestFilePath("parser_rebuildxref_correct.pdf", | 
| @@ -248,7 +89,7 @@ TEST(fpdf_parser_parser, RebuildCrossRefCorrectly) { | 
| EXPECT_EQ(versions[i], parser.m_ObjectInfo[i].gennum); | 
| } | 
|  | 
| -TEST(fpdf_parser_parser, RebuildCrossRefFailed) { | 
| +TEST(cpdf_parser, RebuildCrossRefFailed) { | 
| CPDF_TestParser parser; | 
| std::string test_file; | 
| ASSERT_TRUE(PathService::GetTestFilePath( | 
| @@ -258,7 +99,7 @@ TEST(fpdf_parser_parser, RebuildCrossRefFailed) { | 
| ASSERT_FALSE(parser.RebuildCrossRef()); | 
| } | 
|  | 
| -TEST(fpdf_parser_parser, LoadCrossRefV4) { | 
| +TEST(cpdf_parser, LoadCrossRefV4) { | 
| { | 
| const unsigned char xref_table[] = | 
| "xref \n" | 
|  |