From 488b7ad845d6de212d89cd957303b294ecfa5922 Mon Sep 17 00:00:00 2001 From: dsinclair Date: Tue, 4 Oct 2016 11:55:50 -0700 Subject: Move core/fpdfapi/fpdf_parser to core/fpdfapi/parser BUG=pdfium:603 Review-Url: https://codereview.chromium.org/2392603004 --- core/fpdfapi/parser/cpdf_parser_embeddertest.cpp | 59 ++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 core/fpdfapi/parser/cpdf_parser_embeddertest.cpp (limited to 'core/fpdfapi/parser/cpdf_parser_embeddertest.cpp') diff --git a/core/fpdfapi/parser/cpdf_parser_embeddertest.cpp b/core/fpdfapi/parser/cpdf_parser_embeddertest.cpp new file mode 100644 index 0000000000..f523d6b31b --- /dev/null +++ b/core/fpdfapi/parser/cpdf_parser_embeddertest.cpp @@ -0,0 +1,59 @@ +// 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 "public/fpdf_text.h" +#include "testing/embedder_test.h" +#include "testing/gtest/include/gtest/gtest.h" + +class CPDFParserEmbeddertest : public EmbedderTest {}; + +TEST_F(CPDFParserEmbeddertest, LoadError_454695) { + // Test a dictionary with hex string instead of correct content. + // Verify that the defective pdf shouldn't be opened correctly. + EXPECT_FALSE(OpenDocument("bug_454695.pdf")); +} + +TEST_F(CPDFParserEmbeddertest, Bug_481363) { + // Test colorspace object with malformed dictionary. + EXPECT_TRUE(OpenDocument("bug_481363.pdf")); + FPDF_PAGE page = LoadPage(0); + EXPECT_NE(nullptr, page); + UnloadPage(page); +} + +TEST_F(CPDFParserEmbeddertest, Bug_544880) { + // Test self referencing /Pages object. + EXPECT_TRUE(OpenDocument("bug_544880.pdf")); + // Shouldn't crash. We don't check the return value here because we get the + // the count from the "/Count 1" in the testcase (at the time of writing) + // rather than the actual count (0). + (void)GetPageCount(); +} + +TEST_F(CPDFParserEmbeddertest, Feature_Linearized_Loading) { + EXPECT_TRUE(OpenDocument("feature_linearized_loading.pdf", nullptr, true)); +} + +TEST_F(CPDFParserEmbeddertest, Bug_325a) { + EXPECT_FALSE(OpenDocument("bug_325_a.pdf")); +} + +TEST_F(CPDFParserEmbeddertest, Bug_325b) { + EXPECT_FALSE(OpenDocument("bug_325_b.pdf")); +} + +TEST_F(CPDFParserEmbeddertest, Bug_602650) { + // Test the case that cross reference entries, which are well formed, + // but do not match with the objects. + EXPECT_TRUE(OpenDocument("bug_602650.pdf")); + FPDF_PAGE page = LoadPage(0); + EXPECT_NE(nullptr, page); + FPDF_TEXTPAGE text_page = FPDFText_LoadPage(page); + EXPECT_NE(nullptr, text_page); + // The page should not be blank. + EXPECT_LT(0, FPDFText_CountChars(text_page)); + + FPDFText_ClosePage(text_page); + UnloadPage(page); +} -- cgit v1.2.3