diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/components/exo/data_device_unittest.cc | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/exo/data_device_unittest.cc')
-rw-r--r-- | chromium/components/exo/data_device_unittest.cc | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/chromium/components/exo/data_device_unittest.cc b/chromium/components/exo/data_device_unittest.cc index 8315408b871..189a6d9f6de 100644 --- a/chromium/components/exo/data_device_unittest.cc +++ b/chromium/components/exo/data_device_unittest.cc @@ -61,7 +61,11 @@ class TestDataDeviceDelegate : public DataDeviceDelegate { return out->size(); } Surface* entered_surface() const { return entered_surface_; } - void DeleteDataOffer() { data_offer_.reset(); } + void DeleteDataOffer(bool finished) { + if (finished) + data_offer_->Finish(); + data_offer_.reset(); + } void set_can_accept_data_events_for_surface(bool value) { can_accept_data_events_for_surface_ = value; } @@ -186,7 +190,12 @@ TEST_F(DataDeviceTest, DataEventsDrop) { ASSERT_EQ(1u, delegate_.PopEvents(&events)); EXPECT_EQ(DataEvent::kMotion, events[0]); - device_->OnPerformDrop(event); + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(&TestDataDeviceDelegate::DeleteDataOffer, + base::Unretained(&delegate_), true)); + + int result = device_->OnPerformDrop(event); + EXPECT_EQ(ui::DragDropTypes::DRAG_LINK, result); ASSERT_EQ(1u, delegate_.PopEvents(&events)); EXPECT_EQ(DataEvent::kDrop, events[0]); } @@ -222,7 +231,7 @@ TEST_F(DataDeviceTest, DeleteDataOfferDuringDrag) { EXPECT_EQ(DataEvent::kOffer, events[0]); EXPECT_EQ(DataEvent::kEnter, events[1]); - delegate_.DeleteDataOffer(); + delegate_.DeleteDataOffer(false); EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, device_->OnDragUpdated(event)); EXPECT_EQ(0u, delegate_.PopEvents(&events)); @@ -231,6 +240,31 @@ TEST_F(DataDeviceTest, DeleteDataOfferDuringDrag) { EXPECT_EQ(0u, delegate_.PopEvents(&events)); } +TEST_F(DataDeviceTest, DataOfferNotFinished) { + ui::DropTargetEvent event(data_, gfx::PointF(), gfx::PointF(), + ui::DragDropTypes::DRAG_MOVE); + ui::Event::DispatcherApi(&event).set_target(surface_->window()); + + std::vector<DataEvent> events; + device_->OnDragEntered(event); + ASSERT_EQ(2u, delegate_.PopEvents(&events)); + EXPECT_EQ(DataEvent::kOffer, events[0]); + EXPECT_EQ(DataEvent::kEnter, events[1]); + + EXPECT_EQ(ui::DragDropTypes::DRAG_LINK, device_->OnDragUpdated(event)); + ASSERT_EQ(1u, delegate_.PopEvents(&events)); + EXPECT_EQ(DataEvent::kMotion, events[0]); + + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(&TestDataDeviceDelegate::DeleteDataOffer, + base::Unretained(&delegate_), false)); + + int result = device_->OnPerformDrop(event); + EXPECT_EQ(ui::DragDropTypes::DRAG_NONE, result); + ASSERT_EQ(1u, delegate_.PopEvents(&events)); + EXPECT_EQ(DataEvent::kDrop, events[0]); +} + TEST_F(DataDeviceTest, NotAcceptDataEventsForSurface) { ui::DropTargetEvent event(data_, gfx::PointF(), gfx::PointF(), ui::DragDropTypes::DRAG_MOVE); |