diff options
Diffstat (limited to 'fpdfsdk/src/fpdfsave_embeddertest.cpp')
-rw-r--r-- | fpdfsdk/src/fpdfsave_embeddertest.cpp | 62 |
1 files changed, 21 insertions, 41 deletions
diff --git a/fpdfsdk/src/fpdfsave_embeddertest.cpp b/fpdfsdk/src/fpdfsave_embeddertest.cpp index bee452beaf..1c93f4f0e1 100644 --- a/fpdfsdk/src/fpdfsave_embeddertest.cpp +++ b/fpdfsdk/src/fpdfsave_embeddertest.cpp @@ -9,64 +9,44 @@ #include "public/fpdfview.h" #include "testing/embedder_test.h" #include "testing/fx_string_testhelpers.h" +#include "testing/gmock/include/gmock/gmock-matchers.h" #include "testing/gtest/include/gtest/gtest.h" +#include "testing/test_support.h" -class FPDFSaveEmbedderTest : public EmbedderTest, public FPDF_FILEWRITE { - public: - FPDFSaveEmbedderTest() { - FPDF_FILEWRITE::version = 1; - FPDF_FILEWRITE::WriteBlock = WriteBlockCallback; - } - bool SaveDocumentToString() { - m_String.clear(); - return FPDF_SaveAsCopy(document(), this, 0); - } - bool SaveDocumentWithVersionToString(int version) { - m_String.clear(); - return FPDF_SaveWithVersion(document(), this, 0, version); - } - const std::string& GetString() const { return m_String; } - - private: - static int WriteBlockCallback(FPDF_FILEWRITE* pFileWrite, - const void* data, - unsigned long size) { - FPDFSaveEmbedderTest* pThis = - static_cast<FPDFSaveEmbedderTest*>(pFileWrite); - pThis->m_String.append(static_cast<const char*>(data), size); - return 1; - } - - std::string m_String; -}; +class FPDFSaveEmbedderTest : public EmbedderTest, public TestSaver {}; TEST_F(FPDFSaveEmbedderTest, SaveSimpleDoc) { EXPECT_TRUE(OpenDocument("hello_world.pdf")); - EXPECT_TRUE(SaveDocumentToString()); - EXPECT_EQ("%PDF-1.7\r\n", GetString().substr(0, 10)); + EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); + EXPECT_THAT(GetString(), testing::StartsWith("%PDF-1.7\r\n")); EXPECT_EQ(843, GetString().length()); } TEST_F(FPDFSaveEmbedderTest, SaveSimpleDocWithVersion) { EXPECT_TRUE(OpenDocument("hello_world.pdf")); - EXPECT_TRUE(SaveDocumentWithVersionToString(14)); - EXPECT_EQ("%PDF-1.4\r\n", GetString().substr(0, 10)); + EXPECT_TRUE(FPDF_SaveWithVersion(document(), this, 0, 14)); + EXPECT_THAT(GetString(), testing::StartsWith("%PDF-1.4\r\n")); EXPECT_EQ(843, GetString().length()); } TEST_F(FPDFSaveEmbedderTest, SaveSimpleDocWithBadVersion) { EXPECT_TRUE(OpenDocument("hello_world.pdf")); - EXPECT_TRUE(SaveDocumentWithVersionToString(-1)); - EXPECT_EQ("%PDF-1.7\r\n", GetString().substr(0, 10)); - EXPECT_TRUE(SaveDocumentWithVersionToString(0)); - EXPECT_EQ("%PDF-1.7\r\n", GetString().substr(0, 10)); - EXPECT_TRUE(SaveDocumentWithVersionToString(18)); - EXPECT_EQ("%PDF-1.7\r\n", GetString().substr(0, 10)); + EXPECT_TRUE(FPDF_SaveWithVersion(document(), this, 0, -1)); + EXPECT_THAT(GetString(), testing::StartsWith("%PDF-1.7\r\n")); + + ClearString(); + EXPECT_TRUE(FPDF_SaveWithVersion(document(), this, 0, 0)); + EXPECT_THAT(GetString(), testing::StartsWith("%PDF-1.7\r\n")); + + ClearString(); + EXPECT_TRUE(FPDF_SaveWithVersion(document(), this, 0, 18)); + EXPECT_THAT(GetString(), testing::StartsWith("%PDF-1.7\r\n")); } TEST_F(FPDFSaveEmbedderTest, BUG_342) { EXPECT_TRUE(OpenDocument("hello_world.pdf")); - EXPECT_TRUE(SaveDocumentToString()); - EXPECT_EQ(std::string::npos, GetString().find("0000000000 65536 f\r\n")); - EXPECT_NE(std::string::npos, GetString().find("0000000000 65535 f\r\n")); + EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0)); + EXPECT_THAT(GetString(), testing::HasSubstr("0000000000 65535 f\r\n")); + EXPECT_THAT(GetString(), + testing::Not(testing::HasSubstr("0000000000 65536 f\r\n"))); } |