| 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 | 
|---|