Chromium Code Reviews| Index: fpdfsdk/fpdfppo_embeddertest.cpp |
| diff --git a/fpdfsdk/fpdfppo_embeddertest.cpp b/fpdfsdk/fpdfppo_embeddertest.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..64936387d1e65a1fd4850226a919d318c71b5bab |
| --- /dev/null |
| +++ b/fpdfsdk/fpdfppo_embeddertest.cpp |
| @@ -0,0 +1,91 @@ |
| +// Copyright 2016 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_ppo.h" |
| + |
| +#include "core/fxcrt/fx_basic.h" |
| +#include "public/fpdf_edit.h" |
| +#include "public/fpdfview.h" |
| +#include "testing/embedder_test.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| +#include "testing/test_support.h" |
| + |
| +namespace { |
| + |
| +class FPDFPPOEmbeddertest : public EmbedderTest {}; |
| + |
| +} // namespace |
| + |
| +TEST_F(FPDFPPOEmbeddertest, NoViewerPreferences) { |
| + EXPECT_TRUE(OpenDocument("hello_world.pdf")); |
| + |
| + FPDF_DOCUMENT output_doc = FPDF_CreateNewDocument(); |
| + EXPECT_TRUE(output_doc); |
| + EXPECT_FALSE(FPDF_CopyViewerPreferences(output_doc, document())); |
| + FPDF_CloseDocument(output_doc); |
| +} |
| + |
| +TEST_F(FPDFPPOEmbeddertest, ViewerPreferences) { |
| + EXPECT_TRUE(OpenDocument("viewer_ref.pdf")); |
| + |
| + FPDF_DOCUMENT output_doc = FPDF_CreateNewDocument(); |
| + EXPECT_TRUE(output_doc); |
| + EXPECT_TRUE(FPDF_CopyViewerPreferences(output_doc, document())); |
| + FPDF_CloseDocument(output_doc); |
| +} |
| + |
| +TEST_F(FPDFPPOEmbeddertest, ImportPages) { |
| + EXPECT_TRUE(OpenDocument("viewer_ref.pdf")); |
| + |
| + FPDF_PAGE page = LoadPage(0); |
| + EXPECT_TRUE(page); |
| + |
| + FPDF_DOCUMENT output_doc = FPDF_CreateNewDocument(); |
| + EXPECT_TRUE(output_doc); |
| + EXPECT_TRUE(FPDF_CopyViewerPreferences(output_doc, document())); |
| + EXPECT_TRUE(FPDF_ImportPages(output_doc, document(), "1", 0)); |
| + EXPECT_EQ(1, FPDF_GetPageCount(output_doc)); |
| + FPDF_CloseDocument(output_doc); |
| + |
| + UnloadPage(page); |
| +} |
| + |
| +TEST_F(FPDFPPOEmbeddertest, BadRanges) { |
| + EXPECT_TRUE(OpenDocument("viewer_ref.pdf")); |
| + |
| + FPDF_PAGE page = LoadPage(0); |
| + EXPECT_TRUE(page); |
| + |
| + FPDF_DOCUMENT output_doc = FPDF_CreateNewDocument(); |
| + EXPECT_TRUE(output_doc); |
| + EXPECT_FALSE(FPDF_ImportPages(output_doc, document(), "clams", 0)); |
| + EXPECT_FALSE(FPDF_ImportPages(output_doc, document(), "0", 0)); |
| + EXPECT_FALSE(FPDF_ImportPages(output_doc, document(), "42", 0)); |
| + EXPECT_FALSE(FPDF_ImportPages(output_doc, document(), "1,2", 0)); |
| + EXPECT_FALSE(FPDF_ImportPages(output_doc, document(), "1-2", 0)); |
| + EXPECT_FALSE(FPDF_ImportPages(output_doc, document(), ",1", 0)); |
| + EXPECT_FALSE(FPDF_ImportPages(output_doc, document(), "1,", 0)); |
| + EXPECT_FALSE(FPDF_ImportPages(output_doc, document(), "1-", 0)); |
| + EXPECT_FALSE(FPDF_ImportPages(output_doc, document(), "-1", 0)); |
| + EXPECT_FALSE(FPDF_ImportPages(output_doc, document(), "-,0,,,1-", 0)); |
| + FPDF_CloseDocument(output_doc); |
| + |
| + UnloadPage(page); |
| +} |
| + |
| +TEST_F(FPDFPPOEmbeddertest, GoodRanges) { |
| + EXPECT_TRUE(OpenDocument("viewer_ref.pdf")); |
|
Lei Zhang
2016/11/12 00:44:07
Maybe add another test with a multi-page PDF so yo
Tom Sepez
2016/11/12 00:50:09
Ok, lots of follow-ups. Theres a more important
|
| + |
| + FPDF_PAGE page = LoadPage(0); |
| + EXPECT_TRUE(page); |
| + |
| + FPDF_DOCUMENT output_doc = FPDF_CreateNewDocument(); |
| + EXPECT_TRUE(output_doc); |
| + EXPECT_TRUE(FPDF_CopyViewerPreferences(output_doc, document())); |
| + EXPECT_TRUE(FPDF_ImportPages(output_doc, document(), "1,1,1,1", 0)); |
|
Lei Zhang
2016/11/12 00:44:07
Test FPDF_GetPageCount().
Tom Sepez
2016/11/12 00:50:09
Done.
Fascinating. Doc now has 5 copies of page
Lei Zhang
2016/11/12 00:57:44
Yes, it does to me. If you have imported page 1 4x
|
| + EXPECT_TRUE(FPDF_ImportPages(output_doc, document(), "1-1", 0)); |
| + FPDF_CloseDocument(output_doc); |
| + |
| + UnloadPage(page); |
| +} |