| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "modules/presentation/PresentationReceiver.h" | 5 #include "modules/presentation/PresentationReceiver.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/ScriptPromiseResolver.h" | 7 #include "bindings/core/v8/ScriptPromiseResolver.h" |
| 8 #include "bindings/core/v8/V8BindingForTesting.h" | 8 #include "bindings/core/v8/V8BindingForTesting.h" |
| 9 #include "core/frame/LocalFrame.h" | 9 #include "core/frame/LocalFrame.h" |
| 10 #include "core/testing/DummyPageHolder.h" | 10 #include "core/testing/DummyPageHolder.h" |
| 11 #include "modules/presentation/PresentationConnection.h" |
| 11 #include "modules/presentation/PresentationConnectionList.h" | 12 #include "modules/presentation/PresentationConnectionList.h" |
| 12 #include "platform/testing/URLTestHelpers.h" | 13 #include "platform/testing/URLTestHelpers.h" |
| 13 #include "public/platform/modules/presentation/WebPresentationClient.h" | 14 #include "public/platform/modules/presentation/WebPresentationClient.h" |
| 14 #include "public/platform/modules/presentation/WebPresentationConnectionClient.h
" | 15 #include "public/platform/modules/presentation/WebPresentationConnectionClient.h
" |
| 15 #include "testing/gmock/include/gmock/gmock.h" | 16 #include "testing/gmock/include/gmock/gmock.h" |
| 16 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
| 17 #include <v8.h> | 18 #include <v8.h> |
| 18 | 19 |
| 19 namespace blink { | 20 namespace blink { |
| 20 | 21 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 class TestWebPresentationConnectionClient : public WebPresentationConnectionClie
nt { | 79 class TestWebPresentationConnectionClient : public WebPresentationConnectionClie
nt { |
| 79 public: | 80 public: |
| 80 WebString getId() override { return WebString::fromUTF8("id"); } | 81 WebString getId() override { return WebString::fromUTF8("id"); } |
| 81 WebURL getUrl() override { return URLTestHelpers::toKURL("http://www.example
.com"); } | 82 WebURL getUrl() override { return URLTestHelpers::toKURL("http://www.example
.com"); } |
| 82 }; | 83 }; |
| 83 | 84 |
| 84 class PresentationReceiverTest : public ::testing::Test { | 85 class PresentationReceiverTest : public ::testing::Test { |
| 85 public: | 86 public: |
| 86 void addConnectionavailableEventListener( | 87 void addConnectionavailableEventListener( |
| 87 EventListener*, const PresentationReceiver*); | 88 EventListener*, const PresentationReceiver*); |
| 89 void addOnMessageEventListener( |
| 90 EventListener*, const PresentationReceiver*); |
| 88 void verifyConnectionListPropertyState( | 91 void verifyConnectionListPropertyState( |
| 89 ScriptPromisePropertyBase::State, const PresentationReceiver*); | 92 ScriptPromisePropertyBase::State, const PresentationReceiver*); |
| 90 void verifyConnectionListSize( | 93 void verifyConnectionListSize( |
| 91 size_t expectedSize, const PresentationReceiver*); | 94 size_t expectedSize, const PresentationReceiver*); |
| 92 }; | 95 }; |
| 93 | 96 |
| 94 void PresentationReceiverTest::addConnectionavailableEventListener( | 97 void PresentationReceiverTest::addConnectionavailableEventListener( |
| 95 EventListener* eventHandler, | 98 EventListener* eventHandler, |
| 96 const PresentationReceiver* receiver) | 99 const PresentationReceiver* receiver) |
| 97 { | 100 { |
| 98 receiver->m_connectionList->addEventListener(EventTypeNames::connectionavail
able, eventHandler); | 101 receiver->m_connectionList->addEventListener(EventTypeNames::connectionavail
able, eventHandler); |
| 99 } | 102 } |
| 100 | 103 |
| 104 void PresentationReceiverTest::addOnMessageEventListener( |
| 105 EventListener* eventHandler, |
| 106 const PresentationReceiver* receiver) |
| 107 { |
| 108 for (auto const& connection : receiver->m_connectionList->m_connections) |
| 109 connection->addEventListener(EventTypeNames::connect, eventHandler); |
| 110 } |
| 111 |
| 101 void PresentationReceiverTest::verifyConnectionListPropertyState( | 112 void PresentationReceiverTest::verifyConnectionListPropertyState( |
| 102 ScriptPromisePropertyBase::State expectedState, | 113 ScriptPromisePropertyBase::State expectedState, |
| 103 const PresentationReceiver* receiver) | 114 const PresentationReceiver* receiver) |
| 104 { | 115 { |
| 105 EXPECT_EQ(expectedState, receiver->m_connectionListProperty->getState()); | 116 EXPECT_EQ(expectedState, receiver->m_connectionListProperty->getState()); |
| 106 } | 117 } |
| 107 | 118 |
| 108 void PresentationReceiverTest::verifyConnectionListSize( | 119 void PresentationReceiverTest::verifyConnectionListSize( |
| 109 size_t expectedSize, | 120 size_t expectedSize, |
| 110 const PresentationReceiver* receiver) | 121 const PresentationReceiver* receiver) |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 | 204 |
| 194 TEST_F(PresentationReceiverTest, CreateReceiver) | 205 TEST_F(PresentationReceiverTest, CreateReceiver) |
| 195 { | 206 { |
| 196 MockWebPresentationClient client; | 207 MockWebPresentationClient client; |
| 197 EXPECT_CALL(client, setReceiver(testing::_)); | 208 EXPECT_CALL(client, setReceiver(testing::_)); |
| 198 | 209 |
| 199 V8TestingScope scope; | 210 V8TestingScope scope; |
| 200 new PresentationReceiver(&scope.frame(), &client); | 211 new PresentationReceiver(&scope.frame(), &client); |
| 201 } | 212 } |
| 202 | 213 |
| 214 TEST_F(PresentationReceiverTest, didReceiveSessionTextMessage) |
| 215 { |
| 216 V8TestingScope scope; |
| 217 auto receiver = new PresentationReceiver(&scope.frame(), nullptr); |
| 218 |
| 219 // Receive first connection. |
| 220 auto connectionClient1 = new TestWebPresentationConnectionClient(); |
| 221 receiver->onReceiverConnectionAvailable(connectionClient1); |
| 222 |
| 223 // verify onMessage event |
| 224 StrictMock<MockEventListener>* eventHandler = new StrictMock<MockEventListen
er>(); |
| 225 addOnMessageEventListener(eventHandler, receiver); |
| 226 EXPECT_CALL(*eventHandler, handleEvent(testing::_, testing::_)) |
| 227 .Times(1); |
| 228 |
| 229 // Receive second connection. |
| 230 auto connectionClient2 = new TestWebPresentationConnectionClient(); |
| 231 receiver->didReceiveSessionTextMessage(connectionClient2, "Hello World"); |
| 232 } |
| 233 |
| 203 } // namespace blink | 234 } // namespace blink |
| OLD | NEW |