diff options
author | npm <npm@chromium.org> | 2016-11-07 08:42:11 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-11-07 08:42:11 -0800 |
commit | 014b012278b7438ef8d4b66730b8598c7eb4623a (patch) | |
tree | 75ea0ea37d0b239412133290d7b24cc975bfcc66 /core/fpdfapi/page/cpdf_streamparser_unittest.cpp | |
parent | 240dec52b2e6502e7deb27a3535af3b1a3e23428 (diff) | |
download | pdfium-014b012278b7438ef8d4b66730b8598c7eb4623a.tar.xz |
Clean up fpdf_page_parsers
- The code in fpdf_page_parser is only called by CPDF_StreamContentParser, so moved there.
- Split fpdf_page_parser_old into its two classes
- Renamed the corresponding unittests accordingly.
- Moved PDF_ReplaceAbbr to namespace
- Fixed few nits
- Added TODO because CPDF_StreamParser has a lot of code similar to CPDF_SyntaxParser
Review-Url: https://codereview.chromium.org/2474303003
Diffstat (limited to 'core/fpdfapi/page/cpdf_streamparser_unittest.cpp')
-rw-r--r-- | core/fpdfapi/page/cpdf_streamparser_unittest.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/core/fpdfapi/page/cpdf_streamparser_unittest.cpp b/core/fpdfapi/page/cpdf_streamparser_unittest.cpp new file mode 100644 index 0000000000..f2a5a542f8 --- /dev/null +++ b/core/fpdfapi/page/cpdf_streamparser_unittest.cpp @@ -0,0 +1,47 @@ +// Copyright 2015 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "core/fpdfapi/page/pageint.h" +#include "testing/gtest/include/gtest/gtest.h" + +TEST(cpdf_streamparser, ReadHexString) { + { + // Position out of bounds. + uint8_t data[] = "12ab>"; + CPDF_StreamParser parser(data, 5); + parser.SetPos(6); + EXPECT_EQ("", parser.ReadHexString()); + } + + { + // Regular conversion. + uint8_t data[] = "1A2b>abcd"; + CPDF_StreamParser parser(data, 5); + EXPECT_EQ("\x1a\x2b", parser.ReadHexString()); + EXPECT_EQ(5u, parser.GetPos()); + } + + { + // Missing ending > + uint8_t data[] = "1A2b"; + CPDF_StreamParser parser(data, 5); + EXPECT_EQ("\x1a\x2b", parser.ReadHexString()); + EXPECT_EQ(5u, parser.GetPos()); + } + + { + // Uneven number of bytes. + uint8_t data[] = "1A2>asdf"; + CPDF_StreamParser parser(data, 5); + EXPECT_EQ("\x1a\x20", parser.ReadHexString()); + EXPECT_EQ(4u, parser.GetPos()); + } + + { + uint8_t data[] = ">"; + CPDF_StreamParser parser(data, 5); + EXPECT_EQ("", parser.ReadHexString()); + EXPECT_EQ(1u, parser.GetPos()); + } +} |