Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: third_party/WebKit/Source/modules/presentation/PresentationReceiverTest.cpp

Issue 2340433003: [Presentation API] 1-UA: notify receiver page when receiver connection becomes available (blink sid… (Closed)
Patch Set: resolve code review comments from mlamouri Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/PresentationConnectionList.h" 11 #include "modules/presentation/PresentationConnectionList.h"
12 #include "public/platform/modules/presentation/WebPresentationClient.h"
12 #include "public/platform/modules/presentation/WebPresentationConnectionClient.h " 13 #include "public/platform/modules/presentation/WebPresentationConnectionClient.h "
13 #include "testing/gmock/include/gmock/gmock.h" 14 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
15 #include <v8.h> 16 #include <v8.h>
16 17
17 namespace blink { 18 namespace blink {
18 19
19 class MockEventListener : public EventListener { 20 class MockEventListener : public EventListener {
20 public: 21 public:
21 MockEventListener() 22 MockEventListener()
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 const PresentationReceiver* receiver) 67 const PresentationReceiver* receiver)
67 { 68 {
68 EXPECT_EQ(expectedSize, receiver->m_connectionList->m_connections.size()); 69 EXPECT_EQ(expectedSize, receiver->m_connectionList->m_connections.size());
69 } 70 }
70 71
71 using ::testing::StrictMock; 72 using ::testing::StrictMock;
72 73
73 TEST_F(PresentationReceiverTest, NoConnectionUnresolvedConnectionList) 74 TEST_F(PresentationReceiverTest, NoConnectionUnresolvedConnectionList)
74 { 75 {
75 V8TestingScope scope; 76 V8TestingScope scope;
76 auto receiver = new PresentationReceiver(&scope.frame()); 77 auto receiver = new PresentationReceiver(&scope.frame(), nullptr);
mark a. foltz 2016/09/15 16:53:18 Please add a test case with a mock WebPresentation
77 78
78 auto eventHandler = new StrictMock<MockEventListener>(); 79 auto eventHandler = new StrictMock<MockEventListener>();
79 addConnectionavailableEventListener(eventHandler, receiver); 80 addConnectionavailableEventListener(eventHandler, receiver);
80 EXPECT_CALL(*eventHandler, handleEvent(testing::_, testing::_)).Times(0); 81 EXPECT_CALL(*eventHandler, handleEvent(testing::_, testing::_)).Times(0);
81 82
82 receiver->connectionList(scope.getScriptState()); 83 receiver->connectionList(scope.getScriptState());
83 84
84 verifyConnectionListPropertyState(ScriptPromisePropertyBase::Pending, receiv er); 85 verifyConnectionListPropertyState(ScriptPromisePropertyBase::Pending, receiv er);
85 verifyConnectionListSize(0, receiver); 86 verifyConnectionListSize(0, receiver);
86 } 87 }
87 88
88 TEST_F(PresentationReceiverTest, OneConnectionResolvedConnectionListNoEvent) 89 TEST_F(PresentationReceiverTest, OneConnectionResolvedConnectionListNoEvent)
89 { 90 {
90 V8TestingScope scope; 91 V8TestingScope scope;
91 auto receiver = new PresentationReceiver(&scope.frame()); 92 auto receiver = new PresentationReceiver(&scope.frame(), nullptr);
92 93
93 auto eventHandler = new StrictMock<MockEventListener>(); 94 auto eventHandler = new StrictMock<MockEventListener>();
94 addConnectionavailableEventListener(eventHandler, receiver); 95 addConnectionavailableEventListener(eventHandler, receiver);
95 EXPECT_CALL(*eventHandler, handleEvent(testing::_, testing::_)).Times(0); 96 EXPECT_CALL(*eventHandler, handleEvent(testing::_, testing::_)).Times(0);
96 97
97 receiver->connectionList(scope.getScriptState()); 98 receiver->connectionList(scope.getScriptState());
98 99
99 // Receive first connection. 100 // Receive first connection.
100 auto connectionClient = new TestWebPresentationConnectionClient(); 101 auto connectionClient = new TestWebPresentationConnectionClient();
101 receiver->onConnectionReceived(connectionClient); 102 receiver->onReceiverConnectionAvailable(connectionClient);
102 103
103 verifyConnectionListPropertyState(ScriptPromisePropertyBase::Resolved, recei ver); 104 verifyConnectionListPropertyState(ScriptPromisePropertyBase::Resolved, recei ver);
104 verifyConnectionListSize(1, receiver); 105 verifyConnectionListSize(1, receiver);
105 } 106 }
106 107
107 TEST_F(PresentationReceiverTest, TwoConnectionsFireOnconnectionavailableEvent) 108 TEST_F(PresentationReceiverTest, TwoConnectionsFireOnconnectionavailableEvent)
108 { 109 {
109 V8TestingScope scope; 110 V8TestingScope scope;
110 auto receiver = new PresentationReceiver(&scope.frame()); 111 auto receiver = new PresentationReceiver(&scope.frame(), nullptr);
111 112
112 StrictMock<MockEventListener>* eventHandler = new StrictMock<MockEventListen er>(); 113 StrictMock<MockEventListener>* eventHandler = new StrictMock<MockEventListen er>();
113 addConnectionavailableEventListener(eventHandler, receiver); 114 addConnectionavailableEventListener(eventHandler, receiver);
114 EXPECT_CALL(*eventHandler, handleEvent(testing::_, testing::_)).Times(1); 115 EXPECT_CALL(*eventHandler, handleEvent(testing::_, testing::_)).Times(1);
115 116
116 receiver->connectionList(scope.getScriptState()); 117 receiver->connectionList(scope.getScriptState());
117 // Receive first connection. 118 // Receive first connection.
118 auto connectionClient1 = new TestWebPresentationConnectionClient(); 119 auto connectionClient1 = new TestWebPresentationConnectionClient();
119 receiver->onConnectionReceived(connectionClient1); 120 receiver->onReceiverConnectionAvailable(connectionClient1);
120 121
121 // Receive second connection. 122 // Receive second connection.
122 auto connectionClient2 = new TestWebPresentationConnectionClient(); 123 auto connectionClient2 = new TestWebPresentationConnectionClient();
123 receiver->onConnectionReceived(connectionClient2); 124 receiver->onReceiverConnectionAvailable(connectionClient2);
124 125
125 verifyConnectionListSize(2, receiver); 126 verifyConnectionListSize(2, receiver);
126 } 127 }
127 128
128 TEST_F(PresentationReceiverTest, TwoConnectionsNoEvent) 129 TEST_F(PresentationReceiverTest, TwoConnectionsNoEvent)
129 { 130 {
130 V8TestingScope scope; 131 V8TestingScope scope;
131 auto receiver = new PresentationReceiver(&scope.frame()); 132 auto receiver = new PresentationReceiver(&scope.frame(), nullptr);
132 133
133 StrictMock<MockEventListener>* eventHandler = new StrictMock<MockEventListen er>(); 134 StrictMock<MockEventListener>* eventHandler = new StrictMock<MockEventListen er>();
134 addConnectionavailableEventListener(eventHandler, receiver); 135 addConnectionavailableEventListener(eventHandler, receiver);
135 EXPECT_CALL(*eventHandler, handleEvent(testing::_, testing::_)).Times(0); 136 EXPECT_CALL(*eventHandler, handleEvent(testing::_, testing::_)).Times(0);
136 137
137 // Receive first connection. 138 // Receive first connection.
138 auto connectionClient1 = new TestWebPresentationConnectionClient(); 139 auto connectionClient1 = new TestWebPresentationConnectionClient();
139 receiver->onConnectionReceived(connectionClient1); 140 receiver->onReceiverConnectionAvailable(connectionClient1);
140 141
141 // Receive second connection. 142 // Receive second connection.
142 auto connectionClient2 = new TestWebPresentationConnectionClient(); 143 auto connectionClient2 = new TestWebPresentationConnectionClient();
143 receiver->onConnectionReceived(connectionClient2); 144 receiver->onReceiverConnectionAvailable(connectionClient2);
144 145
145 receiver->connectionList(scope.getScriptState()); 146 receiver->connectionList(scope.getScriptState());
146 verifyConnectionListPropertyState(ScriptPromisePropertyBase::Resolved, recei ver); 147 verifyConnectionListPropertyState(ScriptPromisePropertyBase::Resolved, recei ver);
147 verifyConnectionListSize(2, receiver); 148 verifyConnectionListSize(2, receiver);
148 } 149 }
149 150
150 } // namespace blink 151 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698