[pdf] Migrate HandleViewportMessage() tests
Migrates tests exercising PdfViewPluginBase's HandleViewportMessage() method. Bug: 1323307 Change-Id: I803d592177aec7ac5d1960b073ee9d9fbe24bbf7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3696544 Commit-Queue: K. Moon <kmoon@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/main@{#1012615}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
fc3d19dc90
commit
aefb773cce
@@ -15,7 +15,6 @@
|
|||||||
#include "base/values.h"
|
#include "base/values.h"
|
||||||
#include "pdf/accessibility_structs.h"
|
#include "pdf/accessibility_structs.h"
|
||||||
#include "pdf/document_attachment_info.h"
|
#include "pdf/document_attachment_info.h"
|
||||||
#include "pdf/document_layout.h"
|
|
||||||
#include "pdf/document_metadata.h"
|
#include "pdf/document_metadata.h"
|
||||||
#include "pdf/pdf_engine.h"
|
#include "pdf/pdf_engine.h"
|
||||||
#include "pdf/pdfium/pdfium_form_filler.h"
|
#include "pdf/pdfium/pdfium_form_filler.h"
|
||||||
@@ -37,8 +36,6 @@ namespace chrome_pdf {
|
|||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
using ::testing::ElementsAre;
|
|
||||||
using ::testing::IsEmpty;
|
|
||||||
using ::testing::NiceMock;
|
using ::testing::NiceMock;
|
||||||
using ::testing::Return;
|
using ::testing::Return;
|
||||||
using ::testing::SaveArg;
|
using ::testing::SaveArg;
|
||||||
@@ -207,146 +204,6 @@ TEST_F(PdfViewPluginBaseWithEngineTest, HandleInputEvent) {
|
|||||||
EXPECT_TRUE(fake_plugin_.HandleInputEvent(mouse_event));
|
EXPECT_TRUE(fake_plugin_.HandleInputEvent(mouse_event));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(PdfViewPluginBaseWithEngineTest,
|
|
||||||
HandleViewportMessageBeforeDocumentLoadComplete) {
|
|
||||||
auto* engine = static_cast<TestPDFiumEngine*>(fake_plugin_.engine());
|
|
||||||
EXPECT_CALL(*engine, ApplyDocumentLayout(DocumentLayout::Options()));
|
|
||||||
|
|
||||||
base::Value message = base::test::ParseJson(R"({
|
|
||||||
"type": "viewport",
|
|
||||||
"userInitiated": false,
|
|
||||||
"zoom": 1,
|
|
||||||
"layoutOptions": {
|
|
||||||
"direction": 0,
|
|
||||||
"defaultPageOrientation": 0,
|
|
||||||
"twoUpViewEnabled": false,
|
|
||||||
},
|
|
||||||
"xOffset": 0,
|
|
||||||
"yOffset": 0,
|
|
||||||
"pinchPhase": 0,
|
|
||||||
})");
|
|
||||||
fake_plugin_.HandleMessage(message.GetDict());
|
|
||||||
|
|
||||||
EXPECT_THAT(fake_plugin_.sent_messages(), IsEmpty());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(PdfViewPluginBaseWithEngineTest,
|
|
||||||
HandleViewportMessageAfterDocumentLoadComplete) {
|
|
||||||
auto* engine = static_cast<TestPDFiumEngine*>(fake_plugin_.engine());
|
|
||||||
EXPECT_CALL(*engine, ApplyDocumentLayout(DocumentLayout::Options()));
|
|
||||||
|
|
||||||
fake_plugin_.DocumentLoadComplete();
|
|
||||||
fake_plugin_.clear_sent_messages();
|
|
||||||
|
|
||||||
base::Value message = base::test::ParseJson(R"({
|
|
||||||
"type": "viewport",
|
|
||||||
"userInitiated": false,
|
|
||||||
"zoom": 1,
|
|
||||||
"layoutOptions": {
|
|
||||||
"direction": 0,
|
|
||||||
"defaultPageOrientation": 0,
|
|
||||||
"twoUpViewEnabled": false,
|
|
||||||
},
|
|
||||||
"xOffset": 0,
|
|
||||||
"yOffset": 0,
|
|
||||||
"pinchPhase": 0,
|
|
||||||
})");
|
|
||||||
fake_plugin_.HandleMessage(message.GetDict());
|
|
||||||
|
|
||||||
EXPECT_THAT(fake_plugin_.sent_messages(), ElementsAre(base::test::IsJson(R"({
|
|
||||||
"type": "loadProgress",
|
|
||||||
"progress": 100.0,
|
|
||||||
})")));
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(PdfViewPluginBaseWithEngineTest, HandleViewportMessageSubsequently) {
|
|
||||||
auto* engine = static_cast<TestPDFiumEngine*>(fake_plugin_.engine());
|
|
||||||
|
|
||||||
base::Value message1 = base::test::ParseJson(R"({
|
|
||||||
"type": "viewport",
|
|
||||||
"userInitiated": false,
|
|
||||||
"zoom": 1,
|
|
||||||
"layoutOptions": {
|
|
||||||
"direction": 0,
|
|
||||||
"defaultPageOrientation": 0,
|
|
||||||
"twoUpViewEnabled": false,
|
|
||||||
},
|
|
||||||
"xOffset": 0,
|
|
||||||
"yOffset": 0,
|
|
||||||
"pinchPhase": 0,
|
|
||||||
})");
|
|
||||||
fake_plugin_.HandleMessage(message1.GetDict());
|
|
||||||
fake_plugin_.clear_sent_messages();
|
|
||||||
|
|
||||||
DocumentLayout::Options two_up_options;
|
|
||||||
two_up_options.set_page_spread(DocumentLayout::PageSpread::kTwoUpOdd);
|
|
||||||
EXPECT_CALL(*engine, ApplyDocumentLayout(two_up_options));
|
|
||||||
|
|
||||||
base::Value message2 = base::test::ParseJson(R"({
|
|
||||||
"type": "viewport",
|
|
||||||
"userInitiated": false,
|
|
||||||
"zoom": 1,
|
|
||||||
"layoutOptions": {
|
|
||||||
"direction": 0,
|
|
||||||
"defaultPageOrientation": 0,
|
|
||||||
"twoUpViewEnabled": true,
|
|
||||||
},
|
|
||||||
"xOffset": 0,
|
|
||||||
"yOffset": 0,
|
|
||||||
"pinchPhase": 0,
|
|
||||||
})");
|
|
||||||
fake_plugin_.HandleMessage(message2.GetDict());
|
|
||||||
|
|
||||||
EXPECT_THAT(fake_plugin_.sent_messages(), IsEmpty());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(PdfViewPluginBaseWithEngineTest, HandleViewportMessageScroll) {
|
|
||||||
auto* engine = static_cast<TestPDFiumEngine*>(fake_plugin_.engine());
|
|
||||||
EXPECT_CALL(*engine, ApplyDocumentLayout)
|
|
||||||
.WillRepeatedly(Return(gfx::Size(16, 9)));
|
|
||||||
EXPECT_CALL(*engine, ScrolledToXPosition(2));
|
|
||||||
EXPECT_CALL(*engine, ScrolledToYPosition(3));
|
|
||||||
|
|
||||||
base::Value message = base::test::ParseJson(R"({
|
|
||||||
"type": "viewport",
|
|
||||||
"userInitiated": false,
|
|
||||||
"zoom": 1,
|
|
||||||
"layoutOptions": {
|
|
||||||
"direction": 2,
|
|
||||||
"defaultPageOrientation": 0,
|
|
||||||
"twoUpViewEnabled": false,
|
|
||||||
},
|
|
||||||
"xOffset": 2,
|
|
||||||
"yOffset": 3,
|
|
||||||
"pinchPhase": 0,
|
|
||||||
})");
|
|
||||||
fake_plugin_.HandleMessage(message.GetDict());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(PdfViewPluginBaseWithEngineTest,
|
|
||||||
HandleViewportMessageScrollRightToLeft) {
|
|
||||||
auto* engine = static_cast<TestPDFiumEngine*>(fake_plugin_.engine());
|
|
||||||
EXPECT_CALL(*engine, ApplyDocumentLayout)
|
|
||||||
.WillRepeatedly(Return(gfx::Size(16, 9)));
|
|
||||||
EXPECT_CALL(*engine, ScrolledToXPosition(2));
|
|
||||||
EXPECT_CALL(*engine, ScrolledToYPosition(3));
|
|
||||||
|
|
||||||
base::Value message = base::test::ParseJson(R"({
|
|
||||||
"type": "viewport",
|
|
||||||
"userInitiated": false,
|
|
||||||
"zoom": 1,
|
|
||||||
"layoutOptions": {
|
|
||||||
"direction": 1,
|
|
||||||
"defaultPageOrientation": 0,
|
|
||||||
"twoUpViewEnabled": false,
|
|
||||||
},
|
|
||||||
"xOffset": 2,
|
|
||||||
"yOffset": 3,
|
|
||||||
"pinchPhase": 0,
|
|
||||||
})");
|
|
||||||
fake_plugin_.HandleMessage(message.GetDict());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(PdfViewPluginBaseWithEngineTest, UpdateScroll) {
|
TEST_F(PdfViewPluginBaseWithEngineTest, UpdateScroll) {
|
||||||
auto* engine = static_cast<TestPDFiumEngine*>(fake_plugin_.engine());
|
auto* engine = static_cast<TestPDFiumEngine*>(fake_plugin_.engine());
|
||||||
EXPECT_CALL(*engine, ScrolledToXPosition(0));
|
EXPECT_CALL(*engine, ScrolledToXPosition(0));
|
||||||
|
@@ -31,6 +31,7 @@
|
|||||||
#include "pdf/accessibility_structs.h"
|
#include "pdf/accessibility_structs.h"
|
||||||
#include "pdf/buildflags.h"
|
#include "pdf/buildflags.h"
|
||||||
#include "pdf/content_restriction.h"
|
#include "pdf/content_restriction.h"
|
||||||
|
#include "pdf/document_layout.h"
|
||||||
#include "pdf/mojom/pdf.mojom.h"
|
#include "pdf/mojom/pdf.mojom.h"
|
||||||
#include "pdf/paint_ready_rect.h"
|
#include "pdf/paint_ready_rect.h"
|
||||||
#include "pdf/pdf_accessibility_data_handler.h"
|
#include "pdf/pdf_accessibility_data_handler.h"
|
||||||
@@ -1136,6 +1137,132 @@ TEST_F(PdfViewWebPluginTest, UpdateLayerTransformWithScaleAndTranslate) {
|
|||||||
/*expected_clipped_rect=*/gfx::Rect(10, 15, 5, 10));
|
/*expected_clipped_rect=*/gfx::Rect(10, 15, 5, 10));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(PdfViewWebPluginTest, HandleViewportMessageBeforeDocumentLoadComplete) {
|
||||||
|
EXPECT_CALL(*engine_ptr_, ApplyDocumentLayout(DocumentLayout::Options()));
|
||||||
|
EXPECT_CALL(*client_ptr_, PostMessage).Times(0);
|
||||||
|
|
||||||
|
base::Value message = base::test::ParseJson(R"({
|
||||||
|
"type": "viewport",
|
||||||
|
"userInitiated": false,
|
||||||
|
"zoom": 1,
|
||||||
|
"layoutOptions": {
|
||||||
|
"direction": 0,
|
||||||
|
"defaultPageOrientation": 0,
|
||||||
|
"twoUpViewEnabled": false,
|
||||||
|
},
|
||||||
|
"xOffset": 0,
|
||||||
|
"yOffset": 0,
|
||||||
|
"pinchPhase": 0,
|
||||||
|
})");
|
||||||
|
plugin_->OnMessage(message.GetDict());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(PdfViewWebPluginTest, HandleViewportMessageAfterDocumentLoadComplete) {
|
||||||
|
plugin_->DocumentLoadComplete();
|
||||||
|
|
||||||
|
EXPECT_CALL(*engine_ptr_, ApplyDocumentLayout(DocumentLayout::Options()));
|
||||||
|
EXPECT_CALL(*client_ptr_, PostMessage(base::test::IsJson(R"({
|
||||||
|
"type": "loadProgress",
|
||||||
|
"progress": 100.0,
|
||||||
|
})")));
|
||||||
|
|
||||||
|
base::Value message = base::test::ParseJson(R"({
|
||||||
|
"type": "viewport",
|
||||||
|
"userInitiated": false,
|
||||||
|
"zoom": 1,
|
||||||
|
"layoutOptions": {
|
||||||
|
"direction": 0,
|
||||||
|
"defaultPageOrientation": 0,
|
||||||
|
"twoUpViewEnabled": false,
|
||||||
|
},
|
||||||
|
"xOffset": 0,
|
||||||
|
"yOffset": 0,
|
||||||
|
"pinchPhase": 0,
|
||||||
|
})");
|
||||||
|
plugin_->OnMessage(message.GetDict());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(PdfViewWebPluginTest, HandleViewportMessageSubsequently) {
|
||||||
|
base::Value message1 = base::test::ParseJson(R"({
|
||||||
|
"type": "viewport",
|
||||||
|
"userInitiated": false,
|
||||||
|
"zoom": 1,
|
||||||
|
"layoutOptions": {
|
||||||
|
"direction": 0,
|
||||||
|
"defaultPageOrientation": 0,
|
||||||
|
"twoUpViewEnabled": false,
|
||||||
|
},
|
||||||
|
"xOffset": 0,
|
||||||
|
"yOffset": 0,
|
||||||
|
"pinchPhase": 0,
|
||||||
|
})");
|
||||||
|
plugin_->OnMessage(message1.GetDict());
|
||||||
|
|
||||||
|
DocumentLayout::Options two_up_options;
|
||||||
|
two_up_options.set_page_spread(DocumentLayout::PageSpread::kTwoUpOdd);
|
||||||
|
EXPECT_CALL(*engine_ptr_, ApplyDocumentLayout(two_up_options));
|
||||||
|
EXPECT_CALL(*client_ptr_, PostMessage).Times(0);
|
||||||
|
|
||||||
|
base::Value message2 = base::test::ParseJson(R"({
|
||||||
|
"type": "viewport",
|
||||||
|
"userInitiated": false,
|
||||||
|
"zoom": 1,
|
||||||
|
"layoutOptions": {
|
||||||
|
"direction": 0,
|
||||||
|
"defaultPageOrientation": 0,
|
||||||
|
"twoUpViewEnabled": true,
|
||||||
|
},
|
||||||
|
"xOffset": 0,
|
||||||
|
"yOffset": 0,
|
||||||
|
"pinchPhase": 0,
|
||||||
|
})");
|
||||||
|
plugin_->OnMessage(message2.GetDict());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(PdfViewWebPluginTest, HandleViewportMessageScroll) {
|
||||||
|
EXPECT_CALL(*engine_ptr_, ApplyDocumentLayout)
|
||||||
|
.WillRepeatedly(Return(gfx::Size(16, 9)));
|
||||||
|
EXPECT_CALL(*engine_ptr_, ScrolledToXPosition(2));
|
||||||
|
EXPECT_CALL(*engine_ptr_, ScrolledToYPosition(3));
|
||||||
|
|
||||||
|
base::Value message = base::test::ParseJson(R"({
|
||||||
|
"type": "viewport",
|
||||||
|
"userInitiated": false,
|
||||||
|
"zoom": 1,
|
||||||
|
"layoutOptions": {
|
||||||
|
"direction": 2,
|
||||||
|
"defaultPageOrientation": 0,
|
||||||
|
"twoUpViewEnabled": false,
|
||||||
|
},
|
||||||
|
"xOffset": 2,
|
||||||
|
"yOffset": 3,
|
||||||
|
"pinchPhase": 0,
|
||||||
|
})");
|
||||||
|
plugin_->OnMessage(message.GetDict());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(PdfViewWebPluginTest, HandleViewportMessageScrollRightToLeft) {
|
||||||
|
EXPECT_CALL(*engine_ptr_, ApplyDocumentLayout)
|
||||||
|
.WillRepeatedly(Return(gfx::Size(16, 9)));
|
||||||
|
EXPECT_CALL(*engine_ptr_, ScrolledToXPosition(2));
|
||||||
|
EXPECT_CALL(*engine_ptr_, ScrolledToYPosition(3));
|
||||||
|
|
||||||
|
base::Value message = base::test::ParseJson(R"({
|
||||||
|
"type": "viewport",
|
||||||
|
"userInitiated": false,
|
||||||
|
"zoom": 1,
|
||||||
|
"layoutOptions": {
|
||||||
|
"direction": 1,
|
||||||
|
"defaultPageOrientation": 0,
|
||||||
|
"twoUpViewEnabled": false,
|
||||||
|
},
|
||||||
|
"xOffset": 2,
|
||||||
|
"yOffset": 3,
|
||||||
|
"pinchPhase": 0,
|
||||||
|
})");
|
||||||
|
plugin_->OnMessage(message.GetDict());
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(PdfViewWebPluginTest, HandleSetBackgroundColorMessage) {
|
TEST_F(PdfViewWebPluginTest, HandleSetBackgroundColorMessage) {
|
||||||
ASSERT_NE(SK_ColorGREEN, plugin_->GetBackgroundColor());
|
ASSERT_NE(SK_ColorGREEN, plugin_->GetBackgroundColor());
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user