[unseasoned-pdf] Move TestPDFiumEngine
into its own separate files.
Move `TestPDFiumEngine` to its own separate files in //pdf/test/ so that it can be used in multiple unit test files in the future. Bug: 1240395 Change-Id: I0d039b76d89ffdf8c641fcb44286d6fa1c122f4c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3106246 Commit-Queue: Hui Yingst <nigi@chromium.org> Reviewed-by: K. Moon <kmoon@chromium.org> Cr-Commit-Position: refs/heads/main@{#914989}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
492c0e3278
commit
c49eb240ad
@ -401,6 +401,8 @@ if (enable_pdf) {
|
||||
"test/test_document_loader.h",
|
||||
"test/test_helpers.cc",
|
||||
"test/test_helpers.h",
|
||||
"test/test_pdfium_engine.cc",
|
||||
"test/test_pdfium_engine.h",
|
||||
]
|
||||
|
||||
configs += [ ":common" ]
|
||||
|
@ -10,7 +10,6 @@
|
||||
#include <vector>
|
||||
|
||||
#include "base/containers/contains.h"
|
||||
#include "base/containers/flat_set.h"
|
||||
#include "base/memory/weak_ptr.h"
|
||||
#include "base/test/icu_test_util.h"
|
||||
#include "base/time/time.h"
|
||||
@ -21,10 +20,10 @@
|
||||
#include "pdf/document_attachment_info.h"
|
||||
#include "pdf/document_metadata.h"
|
||||
#include "pdf/pdf_engine.h"
|
||||
#include "pdf/pdfium/pdfium_engine.h"
|
||||
#include "pdf/ppapi_migration/callback.h"
|
||||
#include "pdf/ppapi_migration/graphics.h"
|
||||
#include "pdf/ppapi_migration/url_loader.h"
|
||||
#include "pdf/test/test_pdfium_engine.h"
|
||||
#include "testing/gmock/include/gmock/gmock.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "third_party/abseil-cpp/absl/types/optional.h"
|
||||
@ -39,79 +38,6 @@ namespace {
|
||||
// net::GetSuggestedFilename().
|
||||
constexpr char kDefaultDownloadFileName[] = "download";
|
||||
|
||||
// Dummy data to save.
|
||||
constexpr uint8_t kSaveData[] = {'1', '2', '3'};
|
||||
|
||||
// Page number.
|
||||
constexpr uint32_t kPageNumber = 13u;
|
||||
|
||||
class TestPDFiumEngine : public PDFiumEngine {
|
||||
public:
|
||||
explicit TestPDFiumEngine(PDFEngine::Client* client)
|
||||
: PDFiumEngine(client, PDFiumFormFiller::ScriptOption::kNoJavaScript) {}
|
||||
|
||||
TestPDFiumEngine(const TestPDFiumEngine&) = delete;
|
||||
|
||||
TestPDFiumEngine& operator=(const TestPDFiumEngine&) = delete;
|
||||
|
||||
~TestPDFiumEngine() override = default;
|
||||
|
||||
bool HasPermission(DocumentPermission permission) const override {
|
||||
return base::Contains(permissions_, permission);
|
||||
}
|
||||
|
||||
const std::vector<DocumentAttachmentInfo>& GetDocumentAttachmentInfoList()
|
||||
const override {
|
||||
return doc_attachment_info_list_;
|
||||
}
|
||||
|
||||
const DocumentMetadata& GetDocumentMetadata() const override {
|
||||
return metadata_;
|
||||
}
|
||||
|
||||
int GetNumberOfPages() const override {
|
||||
return static_cast<int>(kPageNumber);
|
||||
}
|
||||
|
||||
base::Value GetBookmarks() override {
|
||||
// Return an empty bookmark list.
|
||||
return base::Value(base::Value::Type::LIST);
|
||||
}
|
||||
|
||||
uint32_t GetLoadedByteSize() override { return sizeof(kSaveData); }
|
||||
|
||||
bool ReadLoadedBytes(uint32_t length, void* buffer) override {
|
||||
DCHECK_LE(length, GetLoadedByteSize());
|
||||
memcpy(buffer, kSaveData, length);
|
||||
return true;
|
||||
}
|
||||
|
||||
std::vector<uint8_t> GetSaveData() override {
|
||||
return std::vector<uint8_t>(std::begin(kSaveData), std::end(kSaveData));
|
||||
}
|
||||
|
||||
void SetPermissions(const std::vector<DocumentPermission>& permissions) {
|
||||
permissions_.clear();
|
||||
|
||||
for (auto& permission : permissions)
|
||||
permissions_.insert(permission);
|
||||
}
|
||||
|
||||
protected:
|
||||
std::vector<DocumentAttachmentInfo>& doc_attachment_info_list() {
|
||||
return doc_attachment_info_list_;
|
||||
}
|
||||
|
||||
DocumentMetadata& metadata() { return metadata_; }
|
||||
|
||||
private:
|
||||
std::vector<DocumentAttachmentInfo> doc_attachment_info_list_;
|
||||
|
||||
DocumentMetadata metadata_;
|
||||
|
||||
base::flat_set<DocumentPermission> permissions_;
|
||||
};
|
||||
|
||||
class TestPDFiumEngineWithDocInfo : public TestPDFiumEngine {
|
||||
public:
|
||||
explicit TestPDFiumEngineWithDocInfo(PDFEngine::Client* client)
|
||||
@ -413,8 +339,8 @@ base::Value CreateExpectedSaveToBufferResponse(const std::string& token) {
|
||||
expected_response.SetStringKey("type", "saveData");
|
||||
expected_response.SetStringKey("token", token);
|
||||
expected_response.SetStringKey("fileName", kDefaultDownloadFileName);
|
||||
expected_response.SetKey("dataToSave",
|
||||
base::Value(base::make_span(kSaveData)));
|
||||
expected_response.SetKey(
|
||||
"dataToSave", base::Value(base::make_span(TestPDFiumEngine::kSaveData)));
|
||||
return expected_response;
|
||||
}
|
||||
|
||||
@ -932,7 +858,7 @@ TEST_F(PdfViewPluginBaseWithEngineTest, GetAccessibilityDocInfo) {
|
||||
engine->SetPermissions({});
|
||||
|
||||
AccessibilityDocInfo doc_info = fake_plugin_.GetAccessibilityDocInfo();
|
||||
EXPECT_EQ(kPageNumber, doc_info.page_count);
|
||||
EXPECT_EQ(TestPDFiumEngine::kPageNumber, doc_info.page_count);
|
||||
EXPECT_FALSE(doc_info.text_accessible);
|
||||
EXPECT_FALSE(doc_info.text_copyable);
|
||||
|
||||
@ -940,7 +866,7 @@ TEST_F(PdfViewPluginBaseWithEngineTest, GetAccessibilityDocInfo) {
|
||||
engine->SetPermissions({DocumentPermission::kCopy});
|
||||
|
||||
doc_info = fake_plugin_.GetAccessibilityDocInfo();
|
||||
EXPECT_EQ(kPageNumber, doc_info.page_count);
|
||||
EXPECT_EQ(TestPDFiumEngine::kPageNumber, doc_info.page_count);
|
||||
EXPECT_FALSE(doc_info.text_accessible);
|
||||
EXPECT_TRUE(doc_info.text_copyable);
|
||||
|
||||
@ -948,7 +874,7 @@ TEST_F(PdfViewPluginBaseWithEngineTest, GetAccessibilityDocInfo) {
|
||||
engine->SetPermissions({DocumentPermission::kCopyAccessible});
|
||||
|
||||
doc_info = fake_plugin_.GetAccessibilityDocInfo();
|
||||
EXPECT_EQ(kPageNumber, doc_info.page_count);
|
||||
EXPECT_EQ(TestPDFiumEngine::kPageNumber, doc_info.page_count);
|
||||
EXPECT_TRUE(doc_info.text_accessible);
|
||||
EXPECT_FALSE(doc_info.text_copyable);
|
||||
|
||||
@ -957,7 +883,7 @@ TEST_F(PdfViewPluginBaseWithEngineTest, GetAccessibilityDocInfo) {
|
||||
{DocumentPermission::kCopy, DocumentPermission::kCopyAccessible});
|
||||
|
||||
doc_info = fake_plugin_.GetAccessibilityDocInfo();
|
||||
EXPECT_EQ(kPageNumber, doc_info.page_count);
|
||||
EXPECT_EQ(TestPDFiumEngine::kPageNumber, doc_info.page_count);
|
||||
EXPECT_TRUE(doc_info.text_accessible);
|
||||
EXPECT_TRUE(doc_info.text_copyable);
|
||||
}
|
||||
|
76
pdf/test/test_pdfium_engine.cc
Normal file
76
pdf/test/test_pdfium_engine.cc
Normal file
@ -0,0 +1,76 @@
|
||||
// Copyright 2021 The Chromium 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 "pdf/test/test_pdfium_engine.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <vector>
|
||||
|
||||
#include "base/check_op.h"
|
||||
#include "base/containers/contains.h"
|
||||
#include "base/containers/flat_set.h"
|
||||
#include "base/values.h"
|
||||
#include "pdf/document_attachment_info.h"
|
||||
#include "pdf/document_metadata.h"
|
||||
#include "pdf/pdf_engine.h"
|
||||
#include "pdf/pdfium/pdfium_engine.h"
|
||||
#include "pdf/pdfium/pdfium_form_filler.h"
|
||||
|
||||
namespace chrome_pdf {
|
||||
|
||||
// static
|
||||
const uint32_t TestPDFiumEngine::kPageNumber;
|
||||
|
||||
// static
|
||||
const uint8_t TestPDFiumEngine::kSaveData[];
|
||||
|
||||
TestPDFiumEngine::TestPDFiumEngine(PDFEngine::Client* client)
|
||||
: PDFiumEngine(client, PDFiumFormFiller::ScriptOption::kNoJavaScript) {}
|
||||
|
||||
TestPDFiumEngine::~TestPDFiumEngine() = default;
|
||||
|
||||
bool TestPDFiumEngine::HasPermission(DocumentPermission permission) const {
|
||||
return base::Contains(permissions_, permission);
|
||||
}
|
||||
|
||||
const std::vector<DocumentAttachmentInfo>&
|
||||
TestPDFiumEngine::GetDocumentAttachmentInfoList() const {
|
||||
return doc_attachment_info_list_;
|
||||
}
|
||||
|
||||
const DocumentMetadata& TestPDFiumEngine::GetDocumentMetadata() const {
|
||||
return metadata_;
|
||||
}
|
||||
|
||||
int TestPDFiumEngine::GetNumberOfPages() const {
|
||||
return static_cast<int>(kPageNumber);
|
||||
}
|
||||
|
||||
base::Value TestPDFiumEngine::GetBookmarks() {
|
||||
return base::Value(base::Value::Type::LIST);
|
||||
}
|
||||
|
||||
uint32_t TestPDFiumEngine::GetLoadedByteSize() {
|
||||
return sizeof(kSaveData);
|
||||
}
|
||||
|
||||
bool TestPDFiumEngine::ReadLoadedBytes(uint32_t length, void* buffer) {
|
||||
DCHECK_LE(length, GetLoadedByteSize());
|
||||
memcpy(buffer, kSaveData, length);
|
||||
return true;
|
||||
}
|
||||
|
||||
std::vector<uint8_t> TestPDFiumEngine::GetSaveData() {
|
||||
return std::vector<uint8_t>(std::begin(kSaveData), std::end(kSaveData));
|
||||
}
|
||||
|
||||
void TestPDFiumEngine::SetPermissions(
|
||||
const std::vector<DocumentPermission>& permissions) {
|
||||
permissions_.clear();
|
||||
|
||||
for (auto& permission : permissions)
|
||||
permissions_.insert(permission);
|
||||
}
|
||||
|
||||
} // namespace chrome_pdf
|
74
pdf/test/test_pdfium_engine.h
Normal file
74
pdf/test/test_pdfium_engine.h
Normal file
@ -0,0 +1,74 @@
|
||||
// Copyright 2021 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef PDF_TEST_TEST_PDFIUM_ENGINE_H_
|
||||
#define PDF_TEST_TEST_PDFIUM_ENGINE_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "base/containers/flat_set.h"
|
||||
#include "base/values.h"
|
||||
#include "pdf/document_attachment_info.h"
|
||||
#include "pdf/document_metadata.h"
|
||||
#include "pdf/pdf_engine.h"
|
||||
#include "pdf/pdfium/pdfium_engine.h"
|
||||
|
||||
namespace chrome_pdf {
|
||||
|
||||
class TestPDFiumEngine : public PDFiumEngine {
|
||||
public:
|
||||
// Page number.
|
||||
static constexpr uint32_t kPageNumber = 13u;
|
||||
|
||||
// Dummy data to save.
|
||||
static constexpr uint8_t kSaveData[] = {'1', '2', '3'};
|
||||
|
||||
explicit TestPDFiumEngine(PDFEngine::Client* client);
|
||||
|
||||
TestPDFiumEngine(const TestPDFiumEngine&) = delete;
|
||||
|
||||
TestPDFiumEngine& operator=(const TestPDFiumEngine&) = delete;
|
||||
|
||||
~TestPDFiumEngine() override;
|
||||
|
||||
bool HasPermission(DocumentPermission permission) const override;
|
||||
|
||||
const std::vector<DocumentAttachmentInfo>& GetDocumentAttachmentInfoList()
|
||||
const override;
|
||||
|
||||
const DocumentMetadata& GetDocumentMetadata() const override;
|
||||
|
||||
int GetNumberOfPages() const override;
|
||||
|
||||
// Returns an empty bookmark list.
|
||||
base::Value GetBookmarks() override;
|
||||
|
||||
uint32_t GetLoadedByteSize() override;
|
||||
|
||||
bool ReadLoadedBytes(uint32_t length, void* buffer) override;
|
||||
|
||||
std::vector<uint8_t> GetSaveData() override;
|
||||
|
||||
void SetPermissions(const std::vector<DocumentPermission>& permissions);
|
||||
|
||||
protected:
|
||||
std::vector<DocumentAttachmentInfo>& doc_attachment_info_list() {
|
||||
return doc_attachment_info_list_;
|
||||
}
|
||||
|
||||
DocumentMetadata& metadata() { return metadata_; }
|
||||
|
||||
private:
|
||||
std::vector<DocumentAttachmentInfo> doc_attachment_info_list_;
|
||||
|
||||
DocumentMetadata metadata_;
|
||||
|
||||
base::flat_set<DocumentPermission> permissions_;
|
||||
};
|
||||
|
||||
} // namespace chrome_pdf
|
||||
|
||||
#endif // PDF_TEST_TEST_PDFIUM_ENGINE_H_
|
Reference in New Issue
Block a user