Ai
2 Star 0 Fork 0

chromium_develop/chromium_pdf

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
pdf_view_plugin_base_unittest.cc 4.50 KB
一键复制 编辑 原始数据 按行查看 历史
李想 提交于 2022-08-16 15:54 +08:00 . chromium origin init
// Copyright 2020 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/pdf_view_plugin_base.h"
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "base/location.h"
#include "base/memory/weak_ptr.h"
#include "base/time/time.h"
#include "base/values.h"
#include "pdf/accessibility_structs.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 "ppapi/cpp/instance.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/gfx/geometry/size.h"
namespace chrome_pdf {
namespace {
// This test approach relies on PdfViewPluginBase continuing to exist.
// PdfViewPluginBase and PdfViewWebPlugin are going to merge once
// OutOfProcessInstance is deprecated.
class FakePdfViewPluginBase : public PdfViewPluginBase {
public:
// Public for testing.
using PdfViewPluginBase::ConsumeSaveToken;
using PdfViewPluginBase::HandleMessage;
MOCK_METHOD(bool, Confirm, (const std::string&), (override));
MOCK_METHOD(std::string,
Prompt,
(const std::string&, const std::string&),
(override));
MOCK_METHOD(std::unique_ptr<UrlLoader>, CreateUrlLoader, (), (override));
MOCK_METHOD(std::vector<PDFEngine::Client::SearchStringResult>,
SearchString,
(const char16_t*, const char16_t*, bool),
(override));
MOCK_METHOD(pp::Instance*, GetPluginInstance, (), (override));
MOCK_METHOD(bool, IsPrintPreview, (), (override));
MOCK_METHOD(void, SetSelectedText, (const std::string&), (override));
MOCK_METHOD(void, SetLinkUnderCursor, (const std::string&), (override));
MOCK_METHOD(bool, IsValidLink, (const std::string&), (override));
MOCK_METHOD(std::unique_ptr<Graphics>,
CreatePaintGraphics,
(const gfx::Size&),
(override));
MOCK_METHOD(bool, BindPaintGraphics, (Graphics&), (override));
MOCK_METHOD(void,
ScheduleTaskOnMainThread,
(base::TimeDelta, ResultCallback, int32_t, const base::Location&),
(override));
MOCK_METHOD(base::WeakPtr<PdfViewPluginBase>, GetWeakPtr, (), (override));
MOCK_METHOD(std::unique_ptr<UrlLoader>,
CreateUrlLoaderInternal,
(),
(override));
MOCK_METHOD(void, DidOpen, (std::unique_ptr<UrlLoader>, int32_t), (override));
MOCK_METHOD(void,
DidOpenPreview,
(std::unique_ptr<UrlLoader>, int32_t),
(override));
void SendMessage(base::Value message) override {
sent_message_ = std::move(message);
}
MOCK_METHOD(void, InitImageData, (const gfx::Size&), (override));
MOCK_METHOD(void, SetFormFieldInFocus, (bool in_focus), (override));
MOCK_METHOD(void,
SetAccessibilityDocInfo,
(const AccessibilityDocInfo&),
(override));
MOCK_METHOD(void,
SetAccessibilityPageInfo,
(AccessibilityPageInfo,
std::vector<AccessibilityTextRunInfo>,
std::vector<AccessibilityCharInfo>,
AccessibilityPageObjects),
(override));
MOCK_METHOD(void,
SetAccessibilityViewportInfo,
(const AccessibilityViewportInfo&),
(override));
base::Value sent_message_;
};
} // namespace
class PdfViewPluginBaseTest : public testing::Test {
protected:
FakePdfViewPluginBase fake_plugin_;
};
TEST_F(PdfViewPluginBaseTest, ConsumeSaveToken) {
const std::string kTokenString("12345678901234567890");
fake_plugin_.ConsumeSaveToken(kTokenString);
base::Value expected_message(base::Value::Type::DICTIONARY);
expected_message.SetStringKey("type", "consumeSaveToken");
expected_message.SetStringKey("token", kTokenString);
EXPECT_EQ(expected_message, fake_plugin_.sent_message_);
}
TEST_F(PdfViewPluginBaseTest, HandleSetBackgroundColorMessage) {
const SkColor kNewBackgroundColor = SK_ColorGREEN;
ASSERT_NE(kNewBackgroundColor, fake_plugin_.GetBackgroundColor());
base::Value message(base::Value::Type::DICTIONARY);
message.SetStringKey("type", "setBackgroundColor");
message.SetDoubleKey("color", kNewBackgroundColor);
fake_plugin_.HandleMessage(message);
EXPECT_EQ(kNewBackgroundColor, fake_plugin_.GetBackgroundColor());
}
} // namespace chrome_pdf
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/chromium_develop/chromium_pdf.git
git@gitee.com:chromium_develop/chromium_pdf.git
chromium_develop
chromium_pdf
chromium_pdf
master

搜索帮助