| Index: blimp/client/core/render_widget/blimp_document_manager_unittest.cc
|
| diff --git a/blimp/client/core/render_widget/blimp_document_manager_unittest.cc b/blimp/client/core/render_widget/blimp_document_manager_unittest.cc
|
| deleted file mode 100644
|
| index 0850aa08b811b8ffc36ef72aa60af53dec372790..0000000000000000000000000000000000000000
|
| --- a/blimp/client/core/render_widget/blimp_document_manager_unittest.cc
|
| +++ /dev/null
|
| @@ -1,199 +0,0 @@
|
| -// Copyright 2016 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 "blimp/client/core/render_widget/blimp_document_manager.h"
|
| -
|
| -#include "base/memory/ptr_util.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "blimp/client/core/compositor/blimp_compositor_dependencies.h"
|
| -#include "blimp/client/core/compositor/blob_image_serialization_processor.h"
|
| -#include "blimp/client/core/render_widget/blimp_document.h"
|
| -#include "blimp/client/core/render_widget/mock_render_widget_feature.h"
|
| -#include "blimp/client/test/compositor/blimp_compositor_with_fake_host.h"
|
| -#include "blimp/client/test/compositor/mock_compositor_dependencies.h"
|
| -#include "cc/proto/compositor_message.pb.h"
|
| -#include "cc/surfaces/surface_manager.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "ui/events/gesture_detection/motion_event_generic.h"
|
| -
|
| -using testing::_;
|
| -using testing::InSequence;
|
| -using testing::Sequence;
|
| -
|
| -namespace blimp {
|
| -namespace client {
|
| -namespace {
|
| -
|
| -const int kDummyBlimpContentsId = 0;
|
| -
|
| -class MockBlimpDocument : public BlimpDocument {
|
| - public:
|
| - explicit MockBlimpDocument(const int document_id,
|
| - BlimpCompositorDependencies* compositor_deps,
|
| - BlimpDocumentManager* document_manager)
|
| - : BlimpDocument(
|
| - document_id,
|
| - BlimpCompositorWithFakeHost::Create(compositor_deps, this),
|
| - compositor_deps,
|
| - document_manager) {}
|
| -
|
| - MOCK_METHOD1(SetVisible, void(bool));
|
| - MOCK_METHOD1(OnTouchEvent, bool(const ui::MotionEvent&));
|
| -};
|
| -
|
| -class BlimpDocumentManagerForTesting : public BlimpDocumentManager {
|
| - public:
|
| - BlimpDocumentManagerForTesting(
|
| - int blimp_contents_id,
|
| - RenderWidgetFeature* render_widget_feature,
|
| - BlimpCompositorDependencies* compositor_dependencies)
|
| - : BlimpDocumentManager(blimp_contents_id,
|
| - render_widget_feature,
|
| - compositor_dependencies) {}
|
| -
|
| - using BlimpDocumentManager::GetDocument;
|
| -
|
| - std::unique_ptr<BlimpDocument> CreateBlimpDocument(
|
| - int document_id,
|
| - BlimpCompositorDependencies* compositor_dependencies) override {
|
| - return base::MakeUnique<MockBlimpDocument>(document_id,
|
| - compositor_dependencies, this);
|
| - }
|
| -};
|
| -
|
| -class BlimpDocumentManagerTest : public testing::Test {
|
| - public:
|
| - void SetUp() override {
|
| - EXPECT_CALL(render_widget_feature_, SetDelegate(_, _)).Times(1);
|
| - EXPECT_CALL(render_widget_feature_, RemoveDelegate(_)).Times(1);
|
| -
|
| - compositor_dependencies_ = base::MakeUnique<BlimpCompositorDependencies>(
|
| - base::MakeUnique<MockCompositorDependencies>());
|
| -
|
| - document_manager_ = base::MakeUnique<BlimpDocumentManagerForTesting>(
|
| - kDummyBlimpContentsId, &render_widget_feature_,
|
| - compositor_dependencies_.get());
|
| - }
|
| -
|
| - void TearDown() override {
|
| - document_manager_.reset();
|
| - compositor_dependencies_.reset();
|
| - }
|
| -
|
| - void SetUpDocuments() {
|
| - delegate()->OnRenderWidgetCreated(1);
|
| - delegate()->OnRenderWidgetCreated(2);
|
| -
|
| - mock_document1_ =
|
| - static_cast<MockBlimpDocument*>(document_manager_->GetDocument(1));
|
| - mock_document2_ =
|
| - static_cast<MockBlimpDocument*>(document_manager_->GetDocument(2));
|
| -
|
| - EXPECT_EQ(mock_document1_->document_id(), 1);
|
| - EXPECT_EQ(mock_document2_->document_id(), 2);
|
| - }
|
| -
|
| - RenderWidgetFeature::RenderWidgetFeatureDelegate* delegate() const {
|
| - DCHECK(document_manager_);
|
| - return static_cast<RenderWidgetFeature::RenderWidgetFeatureDelegate*>(
|
| - document_manager_.get());
|
| - }
|
| -
|
| - base::MessageLoop loop_;
|
| - std::unique_ptr<BlimpCompositorDependencies> compositor_dependencies_;
|
| - std::unique_ptr<BlimpDocumentManagerForTesting> document_manager_;
|
| - BlobImageSerializationProcessor blob_image_serialization_processor_;
|
| - MockRenderWidgetFeature render_widget_feature_;
|
| - MockBlimpDocument* mock_document1_;
|
| - MockBlimpDocument* mock_document2_;
|
| -};
|
| -
|
| -TEST_F(BlimpDocumentManagerTest, IncomingMessagesToCompositor) {
|
| - SetUpDocuments();
|
| -
|
| - // When receiving a compositor message from the engine, ensure that the
|
| - // messages are forwarded to the correct compositor.
|
| - BlimpCompositorWithFakeHost* fake_compositor =
|
| - static_cast<BlimpCompositorWithFakeHost*>(
|
| - mock_document1_->GetCompositor());
|
| -
|
| - EXPECT_FALSE(
|
| - mock_document1_->GetCompositor()->HasPendingFrameUpdateFromEngine());
|
| - delegate()->OnCompositorMessageReceived(
|
| - 1, fake_compositor->CreateFakeUpdate(cc::Layer::Create()));
|
| - EXPECT_TRUE(
|
| - mock_document1_->GetCompositor()->HasPendingFrameUpdateFromEngine());
|
| -
|
| - EXPECT_FALSE(
|
| - mock_document2_->GetCompositor()->HasPendingFrameUpdateFromEngine());
|
| - delegate()->OnCompositorMessageReceived(
|
| - 2, fake_compositor->CreateFakeUpdate(cc::Layer::Create()));
|
| - EXPECT_TRUE(
|
| - mock_document2_->GetCompositor()->HasPendingFrameUpdateFromEngine());
|
| -
|
| - delegate()->OnRenderWidgetDeleted(1);
|
| - EXPECT_EQ(document_manager_->GetDocument(1), nullptr);
|
| -}
|
| -
|
| -TEST_F(BlimpDocumentManagerTest, OutgoingMessagesToMessageProcessor) {
|
| - SetUpDocuments();
|
| -
|
| - // When sending message to the engine, ensure that the messages are forwarded
|
| - // to the message processor.
|
| - EXPECT_CALL(render_widget_feature_, SendCompositorMessage(_, _, _)).Times(1);
|
| - EXPECT_CALL(render_widget_feature_, SendWebGestureEvent(_, _, _)).Times(1);
|
| -
|
| - cc::proto::CompositorMessage fake_message;
|
| - document_manager_->SendCompositorMessage(1, fake_message);
|
| -
|
| - blink::WebGestureEvent fake_gesture;
|
| - document_manager_->SendWebGestureEvent(1, fake_gesture);
|
| -}
|
| -
|
| -TEST_F(BlimpDocumentManagerTest, ForwardsViewEventsToCorrectCompositor) {
|
| - SetUpDocuments();
|
| -
|
| - // Make the document manager visible while we don't have any render widget
|
| - // initialized.
|
| - document_manager_->SetVisible(true);
|
| -
|
| - // Initialize the first render widget. This should propagate the visibility,
|
| - // and the touch events to the corresponding document.
|
| - delegate()->OnRenderWidgetInitialized(1);
|
| - EXPECT_TRUE(mock_document1_->GetCompositor()->IsVisible());
|
| - EXPECT_CALL(*mock_document1_, OnTouchEvent(_));
|
| - document_manager_->OnTouchEvent(
|
| - ui::MotionEventGeneric(ui::MotionEvent::Action::ACTION_NONE,
|
| - base::TimeTicks::Now(), ui::PointerProperties()));
|
| -
|
| - // Ensure the |document_manager_| holds the correct compositor layer.
|
| - // And the root layer only has one child.
|
| - EXPECT_EQ(document_manager_->layer(),
|
| - mock_document1_->GetCompositor()->layer()->parent());
|
| - EXPECT_EQ(static_cast<int>(document_manager_->layer()->children().size()), 1);
|
| -
|
| - // Now initialize the second render widget. This should swap the documents
|
| - // and make the first one invisible.
|
| - delegate()->OnRenderWidgetInitialized(2);
|
| - EXPECT_FALSE(mock_document1_->GetCompositor()->IsVisible());
|
| - EXPECT_TRUE(mock_document2_->GetCompositor()->IsVisible());
|
| -
|
| - // Ensure the content layer corresponds to the initialized document.
|
| - EXPECT_EQ(document_manager_->layer(),
|
| - mock_document2_->GetCompositor()->layer()->parent());
|
| - EXPECT_EQ(static_cast<int>(document_manager_->layer()->children().size()), 1);
|
| -
|
| - // Destroy all the widgets.
|
| - delegate()->OnRenderWidgetDeleted(1);
|
| - delegate()->OnRenderWidgetDeleted(2);
|
| -
|
| - // The |document_manager_| should detach the compositor layer after active
|
| - // document is destroyed.
|
| - EXPECT_EQ(static_cast<int>(document_manager_->layer()->children().size()), 0);
|
| -}
|
| -
|
| -} // namespace
|
| -} // namespace client
|
| -} // namespace blimp
|
|
|