| OLD | NEW |
| 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2016 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 "content/renderer/media/peer_connection_tracker.h" | 5 #include "content/renderer/media/peer_connection_tracker.h" |
| 6 | 6 |
| 7 #include "base/message_loop/message_loop.h" |
| 7 #include "content/common/media/peer_connection_tracker_messages.h" | 8 #include "content/common/media/peer_connection_tracker_messages.h" |
| 8 #include "content/public/test/mock_render_thread.h" | 9 #include "content/public/test/mock_render_thread.h" |
| 9 #include "content/renderer/media/mock_web_rtc_peer_connection_handler_client.h" | 10 #include "content/renderer/media/mock_web_rtc_peer_connection_handler_client.h" |
| 10 #include "content/renderer/media/rtc_peer_connection_handler.h" | 11 #include "content/renderer/media/rtc_peer_connection_handler.h" |
| 12 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.
h" |
| 11 #include "ipc/ipc_message_macros.h" | 13 #include "ipc/ipc_message_macros.h" |
| 12 #include "testing/gmock/include/gmock/gmock.h" | 14 #include "testing/gmock/include/gmock/gmock.h" |
| 13 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 14 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" | 16 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" |
| 15 #include "third_party/WebKit/public/platform/WebRTCOfferOptions.h" | 17 #include "third_party/WebKit/public/platform/WebRTCOfferOptions.h" |
| 16 | 18 |
| 17 using ::testing::_; | 19 using ::testing::_; |
| 18 | 20 |
| 19 namespace content { | 21 namespace content { |
| 20 | 22 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 36 OnUpdatePeerConnection) | 38 OnUpdatePeerConnection) |
| 37 IPC_MESSAGE_HANDLER(PeerConnectionTrackerHost_AddPeerConnection, | 39 IPC_MESSAGE_HANDLER(PeerConnectionTrackerHost_AddPeerConnection, |
| 38 OnAddPeerConnection) | 40 OnAddPeerConnection) |
| 39 IPC_MESSAGE_UNHANDLED(handled = false) | 41 IPC_MESSAGE_UNHANDLED(handled = false) |
| 40 IPC_END_MESSAGE_MAP() | 42 IPC_END_MESSAGE_MAP() |
| 41 return handled; | 43 return handled; |
| 42 } | 44 } |
| 43 | 45 |
| 44 class MockPeerConnectionHandler : public RTCPeerConnectionHandler { | 46 class MockPeerConnectionHandler : public RTCPeerConnectionHandler { |
| 45 public: | 47 public: |
| 46 MockPeerConnectionHandler() : RTCPeerConnectionHandler(&client_, nullptr) {} | 48 MockPeerConnectionHandler() |
| 49 : RTCPeerConnectionHandler(&client_, &dependency_factory_) {} |
| 47 MOCK_METHOD0(CloseClientPeerConnection, void()); | 50 MOCK_METHOD0(CloseClientPeerConnection, void()); |
| 48 | 51 |
| 49 private: | 52 private: |
| 53 MockPeerConnectionDependencyFactory dependency_factory_; |
| 50 MockWebRTCPeerConnectionHandlerClient client_; | 54 MockWebRTCPeerConnectionHandlerClient client_; |
| 51 }; | 55 }; |
| 52 | 56 |
| 57 class PeerConnectionTrackerTest : public ::testing::Test { |
| 58 private: |
| 59 base::MessageLoop message_loop_; |
| 60 }; |
| 61 |
| 53 } // namespace | 62 } // namespace |
| 54 | 63 |
| 55 TEST(PeerConnectionTrackerTest, CreatingObject) { | 64 TEST_F(PeerConnectionTrackerTest, CreatingObject) { |
| 56 PeerConnectionTracker tracker; | 65 PeerConnectionTracker tracker; |
| 57 } | 66 } |
| 58 | 67 |
| 59 TEST(PeerConnectionTrackerTest, TrackCreateOffer) { | 68 TEST_F(PeerConnectionTrackerTest, TrackCreateOffer) { |
| 60 PeerConnectionTracker tracker; | 69 PeerConnectionTracker tracker; |
| 61 // Note: blink::WebRTCOfferOptions is not mockable. So we can't write | 70 // Note: blink::WebRTCOfferOptions is not mockable. So we can't write |
| 62 // tests for anything but a null options parameter. | 71 // tests for anything but a null options parameter. |
| 63 blink::WebRTCOfferOptions options(0, 0, false, false); | 72 blink::WebRTCOfferOptions options(0, 0, false, false); |
| 64 // Initialization stuff. This can be separated into a test class. | 73 // Initialization stuff. This can be separated into a test class. |
| 65 MockPeerConnectionHandler pc_handler; | 74 MockPeerConnectionHandler pc_handler; |
| 66 MockSendTargetThread target_thread; | 75 MockSendTargetThread target_thread; |
| 67 webrtc::PeerConnectionInterface::RTCConfiguration config; | 76 webrtc::PeerConnectionInterface::RTCConfiguration config; |
| 68 blink::WebMediaConstraints constraints; | 77 blink::WebMediaConstraints constraints; |
| 69 tracker.OverrideSendTargetForTesting(&target_thread); | 78 tracker.OverrideSendTargetForTesting(&target_thread); |
| 70 EXPECT_CALL(target_thread, OnAddPeerConnection(_)); | 79 EXPECT_CALL(target_thread, OnAddPeerConnection(_)); |
| 71 tracker.RegisterPeerConnection(&pc_handler, config, constraints, nullptr); | 80 tracker.RegisterPeerConnection(&pc_handler, config, constraints, nullptr); |
| 72 // Back to the test. | 81 // Back to the test. |
| 73 EXPECT_CALL(target_thread, | 82 EXPECT_CALL(target_thread, |
| 74 OnUpdatePeerConnection( | 83 OnUpdatePeerConnection( |
| 75 _, "createOffer", | 84 _, "createOffer", |
| 76 "options: {offerToReceiveVideo: 0, offerToReceiveAudio: 0, " | 85 "options: {offerToReceiveVideo: 0, offerToReceiveAudio: 0, " |
| 77 "voiceActivityDetection: false, iceRestart: false}")); | 86 "voiceActivityDetection: false, iceRestart: false}")); |
| 78 tracker.TrackCreateOffer(&pc_handler, options); | 87 tracker.TrackCreateOffer(&pc_handler, options); |
| 79 } | 88 } |
| 80 | 89 |
| 81 TEST(PeerConnectionTrackerTest, OnSuspend) { | 90 TEST_F(PeerConnectionTrackerTest, OnSuspend) { |
| 82 PeerConnectionTracker tracker; | 91 PeerConnectionTracker tracker; |
| 83 // Initialization stuff. | 92 // Initialization stuff. |
| 84 MockPeerConnectionHandler pc_handler; | 93 MockPeerConnectionHandler pc_handler; |
| 85 MockSendTargetThread target_thread; | 94 MockSendTargetThread target_thread; |
| 86 webrtc::PeerConnectionInterface::RTCConfiguration config; | 95 webrtc::PeerConnectionInterface::RTCConfiguration config; |
| 87 blink::WebMediaConstraints constraints; | 96 blink::WebMediaConstraints constraints; |
| 88 tracker.OverrideSendTargetForTesting(&target_thread); | 97 tracker.OverrideSendTargetForTesting(&target_thread); |
| 89 EXPECT_CALL(target_thread, OnAddPeerConnection(_)); | 98 EXPECT_CALL(target_thread, OnAddPeerConnection(_)); |
| 90 tracker.RegisterPeerConnection(&pc_handler, config, constraints, nullptr); | 99 tracker.RegisterPeerConnection(&pc_handler, config, constraints, nullptr); |
| 91 EXPECT_CALL(pc_handler, CloseClientPeerConnection()); | 100 EXPECT_CALL(pc_handler, CloseClientPeerConnection()); |
| 92 std::unique_ptr<IPC::Message> message(new PeerConnectionTracker_OnSuspend()); | 101 std::unique_ptr<IPC::Message> message(new PeerConnectionTracker_OnSuspend()); |
| 93 tracker.OnControlMessageReceived(*message.get()); | 102 tracker.OnControlMessageReceived(*message.get()); |
| 94 } | 103 } |
| 95 | 104 |
| 96 // TODO(hta): Write tests for the other tracking functions. | 105 // TODO(hta): Write tests for the other tracking functions. |
| 97 | 106 |
| 98 } // namespace | 107 } // namespace |
| OLD | NEW |