summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2015-10-28 13:32:35 -0400
committerDan Sinclair <dsinclair@chromium.org>2015-10-28 13:32:35 -0400
commitdd4cd523ef4546b43d68e8ca6ec0a97fbe8954e9 (patch)
treedc4465dea283ad6b3b48625ff348f7ccabc05e31
parentb9d06fb2186d7002d6231d1805bcf97fc60144c5 (diff)
downloadpdfium-dd4cd523ef4546b43d68e8ca6ec0a97fbe8954e9.tar.xz
Check if document was opened during testing.
When we call OpenDocument we fail to check if the document was actually opened. Currently we return true in all cases (assuming we read the file). This CL updates the code to check if the document was opened and return false if not. I've updated several tests to check for FALSE instead of TRUE. I verified the documents in fact don't open with my local (non-PDFium) PDF reader. BUG=pdfium:223 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1417893007 .
-rw-r--r--core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_embeddertest.cpp2
-rw-r--r--fpdfsdk/src/fpdf_dataavail_embeddertest.cpp8
-rw-r--r--fpdfsdk/src/fpdfview_embeddertest.cpp6
-rw-r--r--testing/embedder_test.cpp11
4 files changed, 15 insertions, 12 deletions
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_embeddertest.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_embeddertest.cpp
index b6cfc4e89f..ed2863bcf3 100644
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_embeddertest.cpp
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser_embeddertest.cpp
@@ -9,7 +9,7 @@ class FPDFParserEmbeddertest : public EmbedderTest {};
TEST_F(FPDFParserEmbeddertest, LoadError_454695) {
// Test trailer dictionary with $$ze instead of Size.
- EXPECT_TRUE(OpenDocument("testing/resources/bug_454695.pdf"));
+ EXPECT_FALSE(OpenDocument("testing/resources/bug_454695.pdf"));
}
TEST_F(FPDFParserEmbeddertest, Bug_481363) {
diff --git a/fpdfsdk/src/fpdf_dataavail_embeddertest.cpp b/fpdfsdk/src/fpdf_dataavail_embeddertest.cpp
index 65e9348f55..730a793d63 100644
--- a/fpdfsdk/src/fpdf_dataavail_embeddertest.cpp
+++ b/fpdfsdk/src/fpdf_dataavail_embeddertest.cpp
@@ -10,13 +10,13 @@
class FPDFDataAvailEmbeddertest : public EmbedderTest {};
TEST_F(FPDFDataAvailEmbeddertest, TrailerUnterminated) {
- // Document must open without crashing but is too malformed to be available.
- EXPECT_TRUE(OpenDocument("testing/resources/trailer_unterminated.pdf"));
+ // Document must load without crashing but is too malformed to be available.
+ EXPECT_FALSE(OpenDocument("testing/resources/trailer_unterminated.pdf"));
EXPECT_FALSE(FPDFAvail_IsDocAvail(avail_, &hints_));
}
TEST_F(FPDFDataAvailEmbeddertest, TrailerAsHexstring) {
- // Document must open without crashing but is too malformed to be available.
- EXPECT_TRUE(OpenDocument("testing/resources/trailer_as_hexstring.pdf"));
+ // Document must load without crashing but is too malformed to be available.
+ EXPECT_FALSE(OpenDocument("testing/resources/trailer_as_hexstring.pdf"));
EXPECT_FALSE(FPDFAvail_IsDocAvail(avail_, &hints_));
}
diff --git a/fpdfsdk/src/fpdfview_embeddertest.cpp b/fpdfsdk/src/fpdfview_embeddertest.cpp
index 896a196fb7..c06adb4102 100644
--- a/fpdfsdk/src/fpdfview_embeddertest.cpp
+++ b/fpdfsdk/src/fpdfview_embeddertest.cpp
@@ -184,7 +184,8 @@ TEST_F(FPDFViewEmbeddertest, Crasher_113) {
}
TEST_F(FPDFViewEmbeddertest, Crasher_451830) {
- EXPECT_TRUE(OpenDocument("testing/resources/bug_451830.pdf"));
+ // Document is damaged and can't be opened.
+ EXPECT_FALSE(OpenDocument("testing/resources/bug_451830.pdf"));
}
TEST_F(FPDFViewEmbeddertest, Crasher_452455) {
@@ -195,5 +196,6 @@ TEST_F(FPDFViewEmbeddertest, Crasher_452455) {
}
TEST_F(FPDFViewEmbeddertest, Crasher3) {
- EXPECT_TRUE(OpenDocument("testing/resources/bug_454695.pdf"));
+ // Document is damanged and can't be opened.
+ EXPECT_FALSE(OpenDocument("testing/resources/bug_454695.pdf"));
}
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index 723bad7f8a..b474955566 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -93,9 +93,8 @@ void EmbedderTest::TearDown() {
bool EmbedderTest::OpenDocument(const std::string& filename) {
file_contents_ = GetFileContents(filename.c_str(), &file_length_);
- if (!file_contents_) {
+ if (!file_contents_)
return false;
- }
loader_ = new TestLoader(file_contents_, file_length_);
file_access_.m_FileLen = static_cast<unsigned long>(file_length_);
@@ -111,11 +110,13 @@ bool EmbedderTest::OpenDocument(const std::string& filename) {
avail_ = FPDFAvail_Create(&file_avail_, &file_access_);
(void)FPDFAvail_IsDocAvail(avail_, &hints_);
- if (!FPDFAvail_IsLinearized(avail_)) {
+ if (!FPDFAvail_IsLinearized(avail_))
document_ = FPDF_LoadCustomDocument(&file_access_, nullptr);
- } else {
+ else
document_ = FPDFAvail_GetDocument(avail_, nullptr);
- }
+
+ if (!document_)
+ return false;
(void)FPDF_GetDocPermissions(document_);
(void)FPDFAvail_IsFormAvail(avail_, &hints_);