| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "blimp/client/feature/render_widget_feature.h" | 5 #include "blimp/client/feature/render_widget_feature.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| 11 #include "blimp/client/feature/mock_render_widget_feature_delegate.h" |
| 11 #include "blimp/common/create_blimp_message.h" | 12 #include "blimp/common/create_blimp_message.h" |
| 12 #include "blimp/common/proto/blimp_message.pb.h" | 13 #include "blimp/common/proto/blimp_message.pb.h" |
| 13 #include "blimp/common/proto/compositor.pb.h" | 14 #include "blimp/common/proto/compositor.pb.h" |
| 14 #include "blimp/common/proto/render_widget.pb.h" | 15 #include "blimp/common/proto/render_widget.pb.h" |
| 15 #include "blimp/net/test_common.h" | 16 #include "blimp/net/test_common.h" |
| 16 #include "cc/proto/compositor_message.pb.h" | 17 #include "cc/proto/compositor_message.pb.h" |
| 17 #include "net/base/net_errors.h" | 18 #include "net/base/net_errors.h" |
| 18 #include "net/base/test_completion_callback.h" | 19 #include "net/base/test_completion_callback.h" |
| 19 #include "testing/gmock/include/gmock/gmock.h" | 20 #include "testing/gmock/include/gmock/gmock.h" |
| 20 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
| 21 | 22 |
| 22 using testing::_; | 23 using testing::_; |
| 23 using testing::InSequence; | 24 using testing::InSequence; |
| 24 using testing::Sequence; | 25 using testing::Sequence; |
| 25 | 26 |
| 26 namespace blimp { | 27 namespace blimp { |
| 27 namespace client { | 28 namespace client { |
| 28 | 29 |
| 29 namespace { | 30 namespace { |
| 30 | 31 |
| 31 class MockRenderWidgetFeatureDelegate | |
| 32 : public RenderWidgetFeature::RenderWidgetFeatureDelegate { | |
| 33 public: | |
| 34 // RenderWidgetFeatureDelegate implementation. | |
| 35 void OnRenderWidgetCreated(int render_widget_id) override { | |
| 36 MockableOnRenderWidgetCreated(render_widget_id); | |
| 37 } | |
| 38 void OnRenderWidgetInitialized(int render_widget_id) override { | |
| 39 MockableOnRenderWidgetInitialized(render_widget_id); | |
| 40 } | |
| 41 void OnRenderWidgetDeleted(int render_widget_id) override { | |
| 42 MockableOnRenderWidgetDeleted(render_widget_id); | |
| 43 } | |
| 44 void OnCompositorMessageReceived( | |
| 45 int render_widget_id, | |
| 46 std::unique_ptr<cc::proto::CompositorMessage> message) override { | |
| 47 MockableOnCompositorMessageReceived(render_widget_id, *message); | |
| 48 } | |
| 49 | |
| 50 MOCK_METHOD1(MockableOnRenderWidgetCreated, void(int render_widget_id)); | |
| 51 MOCK_METHOD1(MockableOnRenderWidgetInitialized, void(int render_widget_id)); | |
| 52 MOCK_METHOD1(MockableOnRenderWidgetDeleted, void(int render_widget_id)); | |
| 53 MOCK_METHOD2(MockableOnCompositorMessageReceived, | |
| 54 void(int render_widget_id, | |
| 55 const cc::proto::CompositorMessage& message)); | |
| 56 }; | |
| 57 | |
| 58 MATCHER_P2(CompMsgEquals, tab_id, rw_id, "") { | 32 MATCHER_P2(CompMsgEquals, tab_id, rw_id, "") { |
| 59 return arg.compositor().render_widget_id() == rw_id && | 33 return arg.compositor().render_widget_id() == rw_id && |
| 60 arg.target_tab_id() == tab_id; | 34 arg.target_tab_id() == tab_id; |
| 61 } | 35 } |
| 62 | 36 |
| 63 void SendRenderWidgetMessage(BlimpMessageProcessor* processor, | 37 void SendRenderWidgetMessage(BlimpMessageProcessor* processor, |
| 64 int tab_id, | 38 int tab_id, |
| 65 int rw_id, | 39 int rw_id, |
| 66 RenderWidgetMessage::Type message_type) { | 40 RenderWidgetMessage::Type message_type) { |
| 67 RenderWidgetMessage* details; | 41 RenderWidgetMessage* details; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 MockBlimpMessageProcessor* out_input_processor_; | 83 MockBlimpMessageProcessor* out_input_processor_; |
| 110 MockBlimpMessageProcessor* out_compositor_processor_; | 84 MockBlimpMessageProcessor* out_compositor_processor_; |
| 111 | 85 |
| 112 MockRenderWidgetFeatureDelegate delegate1_; | 86 MockRenderWidgetFeatureDelegate delegate1_; |
| 113 MockRenderWidgetFeatureDelegate delegate2_; | 87 MockRenderWidgetFeatureDelegate delegate2_; |
| 114 | 88 |
| 115 RenderWidgetFeature feature_; | 89 RenderWidgetFeature feature_; |
| 116 }; | 90 }; |
| 117 | 91 |
| 118 TEST_F(RenderWidgetFeatureTest, DelegateCallsOK) { | 92 TEST_F(RenderWidgetFeatureTest, DelegateCallsOK) { |
| 119 EXPECT_CALL(delegate1_, MockableOnRenderWidgetCreated(1)); | 93 EXPECT_CALL(delegate1_, OnRenderWidgetCreated(1)); |
| 120 EXPECT_CALL(delegate1_, MockableOnCompositorMessageReceived(1, _)); | 94 EXPECT_CALL(delegate1_, MockableOnCompositorMessageReceived(1, _)); |
| 121 EXPECT_CALL(delegate1_, MockableOnRenderWidgetInitialized(1)); | 95 EXPECT_CALL(delegate1_, OnRenderWidgetInitialized(1)); |
| 122 EXPECT_CALL(delegate2_, MockableOnRenderWidgetCreated(2)); | 96 EXPECT_CALL(delegate2_, OnRenderWidgetCreated(2)); |
| 123 EXPECT_CALL(delegate1_, MockableOnRenderWidgetDeleted(1)); | 97 EXPECT_CALL(delegate1_, OnRenderWidgetDeleted(1)); |
| 124 | 98 |
| 125 SendRenderWidgetMessage(&feature_, 1, 1, RenderWidgetMessage::CREATED); | 99 SendRenderWidgetMessage(&feature_, 1, 1, RenderWidgetMessage::CREATED); |
| 126 SendCompositorMessage(&feature_, 1, 1); | 100 SendCompositorMessage(&feature_, 1, 1); |
| 127 SendRenderWidgetMessage(&feature_, 1, 1, RenderWidgetMessage::INITIALIZE); | 101 SendRenderWidgetMessage(&feature_, 1, 1, RenderWidgetMessage::INITIALIZE); |
| 128 SendRenderWidgetMessage(&feature_, 2, 2, RenderWidgetMessage::CREATED); | 102 SendRenderWidgetMessage(&feature_, 2, 2, RenderWidgetMessage::CREATED); |
| 129 SendRenderWidgetMessage(&feature_, 1, 1, RenderWidgetMessage::DELETED); | 103 SendRenderWidgetMessage(&feature_, 1, 1, RenderWidgetMessage::DELETED); |
| 130 } | 104 } |
| 131 | 105 |
| 132 TEST_F(RenderWidgetFeatureTest, RepliesHaveCorrectRenderWidgetId) { | 106 TEST_F(RenderWidgetFeatureTest, RepliesHaveCorrectRenderWidgetId) { |
| 133 InSequence sequence; | 107 InSequence sequence; |
| 134 | 108 |
| 135 EXPECT_CALL(*out_compositor_processor_, | 109 EXPECT_CALL(*out_compositor_processor_, |
| 136 MockableProcessMessage(CompMsgEquals(1, 2), _)); | 110 MockableProcessMessage(CompMsgEquals(1, 2), _)); |
| 137 EXPECT_CALL(*out_compositor_processor_, | 111 EXPECT_CALL(*out_compositor_processor_, |
| 138 MockableProcessMessage(CompMsgEquals(1, 2), _)); | 112 MockableProcessMessage(CompMsgEquals(1, 2), _)); |
| 139 EXPECT_CALL(*out_compositor_processor_, | 113 EXPECT_CALL(*out_compositor_processor_, |
| 140 MockableProcessMessage(CompMsgEquals(2, 3), _)); | 114 MockableProcessMessage(CompMsgEquals(2, 3), _)); |
| 141 | 115 |
| 142 SendRenderWidgetMessage(&feature_, 1, 2, RenderWidgetMessage::CREATED); | 116 SendRenderWidgetMessage(&feature_, 1, 2, RenderWidgetMessage::CREATED); |
| 143 feature_.SendCompositorMessage(1, 2, cc::proto::CompositorMessage()); | 117 feature_.SendCompositorMessage(1, 2, cc::proto::CompositorMessage()); |
| 144 SendRenderWidgetMessage(&feature_, 1, 2, RenderWidgetMessage::INITIALIZE); | 118 SendRenderWidgetMessage(&feature_, 1, 2, RenderWidgetMessage::INITIALIZE); |
| 145 feature_.SendCompositorMessage(1, 2, cc::proto::CompositorMessage()); | 119 feature_.SendCompositorMessage(1, 2, cc::proto::CompositorMessage()); |
| 146 SendRenderWidgetMessage(&feature_, 2, 3, RenderWidgetMessage::CREATED); | 120 SendRenderWidgetMessage(&feature_, 2, 3, RenderWidgetMessage::CREATED); |
| 147 feature_.SendCompositorMessage(2, 3, cc::proto::CompositorMessage()); | 121 feature_.SendCompositorMessage(2, 3, cc::proto::CompositorMessage()); |
| 148 } | 122 } |
| 149 | 123 |
| 150 } // namespace client | 124 } // namespace client |
| 151 } // namespace blimp | 125 } // namespace blimp |
| OLD | NEW |