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

Side by Side Diff: Source/modules/websockets/DocumentWebSocketChannelTest.cpp

Issue 690883002: Rename NewWebSocketChannelImpl to DocumentWebSocketChannel. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebase Created 6 years, 1 month 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "config.h" 5 #include "config.h"
6 #include "modules/websockets/WebSocketChannel.h" 6 #include "modules/websockets/WebSocketChannel.h"
7 7
8 #include "core/dom/Document.h" 8 #include "core/dom/Document.h"
9 #include "core/fileapi/Blob.h" 9 #include "core/fileapi/Blob.h"
10 #include "core/frame/ConsoleTypes.h" 10 #include "core/frame/ConsoleTypes.h"
11 #include "core/testing/DummyPageHolder.h" 11 #include "core/testing/DummyPageHolder.h"
12 #include "modules/websockets/NewWebSocketChannelImpl.h" 12 #include "modules/websockets/DocumentWebSocketChannel.h"
13 #include "modules/websockets/WebSocketChannelClient.h" 13 #include "modules/websockets/WebSocketChannelClient.h"
14 #include "platform/heap/Handle.h" 14 #include "platform/heap/Handle.h"
15 #include "platform/weborigin/KURL.h" 15 #include "platform/weborigin/KURL.h"
16 #include "public/platform/WebSerializedOrigin.h" 16 #include "public/platform/WebSerializedOrigin.h"
17 #include "public/platform/WebSocketHandle.h" 17 #include "public/platform/WebSocketHandle.h"
18 #include "public/platform/WebSocketHandleClient.h" 18 #include "public/platform/WebSocketHandleClient.h"
19 #include "public/platform/WebString.h" 19 #include "public/platform/WebString.h"
20 #include "public/platform/WebURL.h" 20 #include "public/platform/WebURL.h"
21 #include "public/platform/WebVector.h" 21 #include "public/platform/WebVector.h"
22 #include "wtf/ArrayBuffer.h" 22 #include "wtf/ArrayBuffer.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 MockWebSocketHandle() { } 80 MockWebSocketHandle() { }
81 81
82 virtual ~MockWebSocketHandle() { } 82 virtual ~MockWebSocketHandle() { }
83 83
84 MOCK_METHOD4(connect, void(const WebURL&, const WebVector<WebString>&, const WebSerializedOrigin&, WebSocketHandleClient*)); 84 MOCK_METHOD4(connect, void(const WebURL&, const WebVector<WebString>&, const WebSerializedOrigin&, WebSocketHandleClient*));
85 MOCK_METHOD4(send, void(bool, WebSocketHandle::MessageType, const char*, siz e_t)); 85 MOCK_METHOD4(send, void(bool, WebSocketHandle::MessageType, const char*, siz e_t));
86 MOCK_METHOD1(flowControl, void(int64_t)); 86 MOCK_METHOD1(flowControl, void(int64_t));
87 MOCK_METHOD2(close, void(unsigned short, const WebString&)); 87 MOCK_METHOD2(close, void(unsigned short, const WebString&));
88 }; 88 };
89 89
90 class NewWebSocketChannelImplTest : public ::testing::Test { 90 class DocumentWebSocketChannelTest : public ::testing::Test {
91 public: 91 public:
92 NewWebSocketChannelImplTest() 92 DocumentWebSocketChannelTest()
93 : m_pageHolder(DummyPageHolder::create()) 93 : m_pageHolder(DummyPageHolder::create())
94 , m_channelClient(MockWebSocketChannelClient::create()) 94 , m_channelClient(MockWebSocketChannelClient::create())
95 , m_handle(MockWebSocketHandle::create()) 95 , m_handle(MockWebSocketHandle::create())
96 , m_channel(NewWebSocketChannelImpl::create(&m_pageHolder->document(), m _channelClient.get(), String(), 0, handle())) 96 , m_channel(DocumentWebSocketChannel::create(&m_pageHolder->document(), m_channelClient.get(), String(), 0, handle()))
97 , m_sumOfConsumedBufferedAmount(0) 97 , m_sumOfConsumedBufferedAmount(0)
98 { 98 {
99 ON_CALL(*channelClient(), didConsumeBufferedAmount(_)).WillByDefault(Inv oke(this, &NewWebSocketChannelImplTest::didConsumeBufferedAmount)); 99 ON_CALL(*channelClient(), didConsumeBufferedAmount(_)).WillByDefault(Inv oke(this, &DocumentWebSocketChannelTest::didConsumeBufferedAmount));
100 } 100 }
101 101
102 ~NewWebSocketChannelImplTest() 102 ~DocumentWebSocketChannelTest()
103 { 103 {
104 channel()->disconnect(); 104 channel()->disconnect();
105 } 105 }
106 106
107 MockWebSocketChannelClient* channelClient() 107 MockWebSocketChannelClient* channelClient()
108 { 108 {
109 return m_channelClient.get(); 109 return m_channelClient.get();
110 } 110 }
111 111
112 WebSocketChannel* channel() 112 WebSocketChannel* channel()
(...skipping 25 matching lines...) Expand all
138 EXPECT_CALL(*channelClient(), didConnect(String("a"), String("b"))); 138 EXPECT_CALL(*channelClient(), didConnect(String("a"), String("b")));
139 } 139 }
140 EXPECT_TRUE(channel()->connect(KURL(KURL(), "ws://localhost/"), "x")); 140 EXPECT_TRUE(channel()->connect(KURL(KURL(), "ws://localhost/"), "x"));
141 handleClient()->didConnect(handle(), false, WebString("a"), WebString("b ")); 141 handleClient()->didConnect(handle(), false, WebString("a"), WebString("b "));
142 ::testing::Mock::VerifyAndClearExpectations(this); 142 ::testing::Mock::VerifyAndClearExpectations(this);
143 } 143 }
144 144
145 OwnPtr<DummyPageHolder> m_pageHolder; 145 OwnPtr<DummyPageHolder> m_pageHolder;
146 Persistent<MockWebSocketChannelClient> m_channelClient; 146 Persistent<MockWebSocketChannelClient> m_channelClient;
147 MockWebSocketHandle* m_handle; 147 MockWebSocketHandle* m_handle;
148 Persistent<NewWebSocketChannelImpl> m_channel; 148 Persistent<DocumentWebSocketChannel> m_channel;
149 unsigned long m_sumOfConsumedBufferedAmount; 149 unsigned long m_sumOfConsumedBufferedAmount;
150 }; 150 };
151 151
152 MATCHER_P2(MemEq, p, len, 152 MATCHER_P2(MemEq, p, len,
153 std::string("pointing to memory") 153 std::string("pointing to memory")
154 + (negation ? " not" : "") 154 + (negation ? " not" : "")
155 + " equal to \"" 155 + " equal to \""
156 + std::string(p, len) + "\" (length=" + PrintToString(len) + ")" 156 + std::string(p, len) + "\" (length=" + PrintToString(len) + ")"
157 ) 157 )
158 { 158 {
159 return memcmp(arg, p, len) == 0; 159 return memcmp(arg, p, len) == 0;
160 } 160 }
161 161
162 TEST_F(NewWebSocketChannelImplTest, connectSuccess) 162 TEST_F(DocumentWebSocketChannelTest, connectSuccess)
163 { 163 {
164 Checkpoint checkpoint; 164 Checkpoint checkpoint;
165 { 165 {
166 InSequence s; 166 InSequence s;
167 EXPECT_CALL(*handle(), connect(WebURL(KURL(KURL(), "ws://localhost/")), _, _, handleClient())); 167 EXPECT_CALL(*handle(), connect(WebURL(KURL(KURL(), "ws://localhost/")), _, _, handleClient()));
168 EXPECT_CALL(*handle(), flowControl(65536)); 168 EXPECT_CALL(*handle(), flowControl(65536));
169 EXPECT_CALL(checkpoint, Call(1)); 169 EXPECT_CALL(checkpoint, Call(1));
170 EXPECT_CALL(*channelClient(), didConnect(String("a"), String("b"))); 170 EXPECT_CALL(*channelClient(), didConnect(String("a"), String("b")));
171 } 171 }
172 172
173 EXPECT_TRUE(channel()->connect(KURL(KURL(), "ws://localhost/"), "x")); 173 EXPECT_TRUE(channel()->connect(KURL(KURL(), "ws://localhost/"), "x"));
174 checkpoint.Call(1); 174 checkpoint.Call(1);
175 handleClient()->didConnect(handle(), false, WebString("a"), WebString("b")); 175 handleClient()->didConnect(handle(), false, WebString("a"), WebString("b"));
176 } 176 }
177 177
178 TEST_F(NewWebSocketChannelImplTest, sendText) 178 TEST_F(DocumentWebSocketChannelTest, sendText)
179 { 179 {
180 connect(); 180 connect();
181 { 181 {
182 InSequence s; 182 InSequence s;
183 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, MemE q("foo", 3), 3)); 183 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, MemE q("foo", 3), 3));
184 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, MemE q("bar", 3), 3)); 184 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, MemE q("bar", 3), 3));
185 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, MemE q("baz", 3), 3)); 185 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, MemE q("baz", 3), 3));
186 } 186 }
187 187
188 handleClient()->didReceiveFlowControl(handle(), 16); 188 handleClient()->didReceiveFlowControl(handle(), 16);
189 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 189 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
190 190
191 channel()->send("foo"); 191 channel()->send("foo");
192 channel()->send("bar"); 192 channel()->send("bar");
193 channel()->send("baz"); 193 channel()->send("baz");
194 194
195 EXPECT_EQ(9ul, m_sumOfConsumedBufferedAmount); 195 EXPECT_EQ(9ul, m_sumOfConsumedBufferedAmount);
196 } 196 }
197 197
198 TEST_F(NewWebSocketChannelImplTest, sendTextContinuation) 198 TEST_F(DocumentWebSocketChannelTest, sendTextContinuation)
199 { 199 {
200 connect(); 200 connect();
201 Checkpoint checkpoint; 201 Checkpoint checkpoint;
202 { 202 {
203 InSequence s; 203 InSequence s;
204 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeText, Mem Eq("0123456789abcdef", 16), 16)); 204 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeText, Mem Eq("0123456789abcdef", 16), 16));
205 EXPECT_CALL(checkpoint, Call(1)); 205 EXPECT_CALL(checkpoint, Call(1));
206 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuati on, MemEq("g", 1), 1)); 206 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuati on, MemEq("g", 1), 1));
207 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, MemE q("hijk", 4), 4)); 207 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, MemE q("hijk", 4), 4));
208 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeText, Mem Eq("lmnopqrstuv", 11), 11)); 208 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeText, Mem Eq("lmnopqrstuv", 11), 11));
(...skipping 12 matching lines...) Expand all
221 checkpoint.Call(1); 221 checkpoint.Call(1);
222 handleClient()->didReceiveFlowControl(handle(), 16); 222 handleClient()->didReceiveFlowControl(handle(), 16);
223 checkpoint.Call(2); 223 checkpoint.Call(2);
224 handleClient()->didReceiveFlowControl(handle(), 16); 224 handleClient()->didReceiveFlowControl(handle(), 16);
225 checkpoint.Call(3); 225 checkpoint.Call(3);
226 handleClient()->didReceiveFlowControl(handle(), 16); 226 handleClient()->didReceiveFlowControl(handle(), 16);
227 227
228 EXPECT_EQ(62ul, m_sumOfConsumedBufferedAmount); 228 EXPECT_EQ(62ul, m_sumOfConsumedBufferedAmount);
229 } 229 }
230 230
231 TEST_F(NewWebSocketChannelImplTest, sendTextNonLatin1) 231 TEST_F(DocumentWebSocketChannelTest, sendTextNonLatin1)
232 { 232 {
233 connect(); 233 connect();
234 { 234 {
235 InSequence s; 235 InSequence s;
236 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, MemE q("\xe7\x8b\x90\xe0\xa4\x94", 6), 6)); 236 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeText, MemE q("\xe7\x8b\x90\xe0\xa4\x94", 6), 6));
237 } 237 }
238 238
239 handleClient()->didReceiveFlowControl(handle(), 16); 239 handleClient()->didReceiveFlowControl(handle(), 16);
240 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 240 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
241 241
242 UChar nonLatin1String[] = { 242 UChar nonLatin1String[] = {
243 0x72d0, 243 0x72d0,
244 0x0914, 244 0x0914,
245 0x0000 245 0x0000
246 }; 246 };
247 channel()->send(nonLatin1String); 247 channel()->send(nonLatin1String);
248 248
249 EXPECT_EQ(6ul, m_sumOfConsumedBufferedAmount); 249 EXPECT_EQ(6ul, m_sumOfConsumedBufferedAmount);
250 } 250 }
251 251
252 TEST_F(NewWebSocketChannelImplTest, sendTextNonLatin1Continuation) 252 TEST_F(DocumentWebSocketChannelTest, sendTextNonLatin1Continuation)
253 { 253 {
254 connect(); 254 connect();
255 Checkpoint checkpoint; 255 Checkpoint checkpoint;
256 { 256 {
257 InSequence s; 257 InSequence s;
258 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeText, Mem Eq("\xe7\x8b\x90\xe0\xa4\x94\xe7\x8b\x90\xe0\xa4\x94\xe7\x8b\x90\xe0", 16), 16)) ; 258 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeText, Mem Eq("\xe7\x8b\x90\xe0\xa4\x94\xe7\x8b\x90\xe0\xa4\x94\xe7\x8b\x90\xe0", 16), 16)) ;
259 EXPECT_CALL(checkpoint, Call(1)); 259 EXPECT_CALL(checkpoint, Call(1));
260 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuati on, MemEq("\xa4\x94", 2), 2)); 260 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuati on, MemEq("\xa4\x94", 2), 2));
261 } 261 }
262 262
263 handleClient()->didReceiveFlowControl(handle(), 16); 263 handleClient()->didReceiveFlowControl(handle(), 16);
264 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 264 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
265 265
266 UChar nonLatin1String[] = { 266 UChar nonLatin1String[] = {
267 0x72d0, 267 0x72d0,
268 0x0914, 268 0x0914,
269 0x72d0, 269 0x72d0,
270 0x0914, 270 0x0914,
271 0x72d0, 271 0x72d0,
272 0x0914, 272 0x0914,
273 0x0000 273 0x0000
274 }; 274 };
275 channel()->send(nonLatin1String); 275 channel()->send(nonLatin1String);
276 checkpoint.Call(1); 276 checkpoint.Call(1);
277 handleClient()->didReceiveFlowControl(handle(), 16); 277 handleClient()->didReceiveFlowControl(handle(), 16);
278 278
279 EXPECT_EQ(18ul, m_sumOfConsumedBufferedAmount); 279 EXPECT_EQ(18ul, m_sumOfConsumedBufferedAmount);
280 } 280 }
281 281
282 TEST_F(NewWebSocketChannelImplTest, sendBinaryInVector) 282 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVector)
283 { 283 {
284 connect(); 284 connect();
285 { 285 {
286 InSequence s; 286 InSequence s;
287 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("foo", 3), 3)); 287 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("foo", 3), 3));
288 } 288 }
289 289
290 handleClient()->didReceiveFlowControl(handle(), 16); 290 handleClient()->didReceiveFlowControl(handle(), 16);
291 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 291 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
292 292
293 Vector<char> fooVector; 293 Vector<char> fooVector;
294 fooVector.append("foo", 3); 294 fooVector.append("foo", 3);
295 channel()->send(adoptPtr(new Vector<char>(fooVector))); 295 channel()->send(adoptPtr(new Vector<char>(fooVector)));
296 296
297 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 297 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
298 } 298 }
299 299
300 TEST_F(NewWebSocketChannelImplTest, sendBinaryInVectorWithNullBytes) 300 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVectorWithNullBytes)
301 { 301 {
302 connect(); 302 connect();
303 { 303 {
304 InSequence s; 304 InSequence s;
305 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("\0ar", 3), 3)); 305 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("\0ar", 3), 3));
306 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("b\0z", 3), 3)); 306 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("b\0z", 3), 3));
307 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("qu\0", 3), 3)); 307 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("qu\0", 3), 3));
308 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("\0\0\0", 3), 3)); 308 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("\0\0\0", 3), 3));
309 } 309 }
310 310
(...skipping 17 matching lines...) Expand all
328 } 328 }
329 { 329 {
330 Vector<char> v; 330 Vector<char> v;
331 v.append("\0\0\0", 3); 331 v.append("\0\0\0", 3);
332 channel()->send(adoptPtr(new Vector<char>(v))); 332 channel()->send(adoptPtr(new Vector<char>(v)));
333 } 333 }
334 334
335 EXPECT_EQ(12ul, m_sumOfConsumedBufferedAmount); 335 EXPECT_EQ(12ul, m_sumOfConsumedBufferedAmount);
336 } 336 }
337 337
338 TEST_F(NewWebSocketChannelImplTest, sendBinaryInVectorNonLatin1UTF8) 338 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVectorNonLatin1UTF8)
339 { 339 {
340 connect(); 340 connect();
341 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, MemEq( "\xe7\x8b\x90", 3), 3)); 341 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, MemEq( "\xe7\x8b\x90", 3), 3));
342 342
343 handleClient()->didReceiveFlowControl(handle(), 16); 343 handleClient()->didReceiveFlowControl(handle(), 16);
344 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 344 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
345 345
346 Vector<char> v; 346 Vector<char> v;
347 v.append("\xe7\x8b\x90", 3); 347 v.append("\xe7\x8b\x90", 3);
348 channel()->send(adoptPtr(new Vector<char>(v))); 348 channel()->send(adoptPtr(new Vector<char>(v)));
349 349
350 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 350 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
351 } 351 }
352 352
353 TEST_F(NewWebSocketChannelImplTest, sendBinaryInVectorNonUTF8) 353 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVectorNonUTF8)
354 { 354 {
355 connect(); 355 connect();
356 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, MemEq( "\x80\xff\xe7", 3), 3)); 356 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, MemEq( "\x80\xff\xe7", 3), 3));
357 357
358 handleClient()->didReceiveFlowControl(handle(), 16); 358 handleClient()->didReceiveFlowControl(handle(), 16);
359 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 359 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
360 360
361 Vector<char> v; 361 Vector<char> v;
362 v.append("\x80\xff\xe7", 3); 362 v.append("\x80\xff\xe7", 3);
363 channel()->send(adoptPtr(new Vector<char>(v))); 363 channel()->send(adoptPtr(new Vector<char>(v)));
364 364
365 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 365 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
366 } 366 }
367 367
368 TEST_F(NewWebSocketChannelImplTest, sendBinaryInVectorNonLatin1UTF8Continuation) 368 TEST_F(DocumentWebSocketChannelTest, sendBinaryInVectorNonLatin1UTF8Continuation )
369 { 369 {
370 connect(); 370 connect();
371 Checkpoint checkpoint; 371 Checkpoint checkpoint;
372 { 372 {
373 InSequence s; 373 InSequence s;
374 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeBinary, M emEq("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7", 16), 16 )); 374 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeBinary, M emEq("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7", 16), 16 ));
375 EXPECT_CALL(checkpoint, Call(1)); 375 EXPECT_CALL(checkpoint, Call(1));
376 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuati on, MemEq("\x8b\x90", 2), 2)); 376 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuati on, MemEq("\x8b\x90", 2), 2));
377 } 377 }
378 378
379 handleClient()->didReceiveFlowControl(handle(), 16); 379 handleClient()->didReceiveFlowControl(handle(), 16);
380 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 380 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
381 381
382 Vector<char> v; 382 Vector<char> v;
383 v.append("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x 8b\x90", 18); 383 v.append("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x 8b\x90", 18);
384 channel()->send(adoptPtr(new Vector<char>(v))); 384 channel()->send(adoptPtr(new Vector<char>(v)));
385 checkpoint.Call(1); 385 checkpoint.Call(1);
386 386
387 handleClient()->didReceiveFlowControl(handle(), 16); 387 handleClient()->didReceiveFlowControl(handle(), 16);
388 388
389 EXPECT_EQ(18ul, m_sumOfConsumedBufferedAmount); 389 EXPECT_EQ(18ul, m_sumOfConsumedBufferedAmount);
390 } 390 }
391 391
392 TEST_F(NewWebSocketChannelImplTest, sendBinaryInArrayBuffer) 392 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBuffer)
393 { 393 {
394 connect(); 394 connect();
395 { 395 {
396 InSequence s; 396 InSequence s;
397 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("foo", 3), 3)); 397 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("foo", 3), 3));
398 } 398 }
399 399
400 handleClient()->didReceiveFlowControl(handle(), 16); 400 handleClient()->didReceiveFlowControl(handle(), 16);
401 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 401 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
402 402
403 RefPtr<ArrayBuffer> fooBuffer = ArrayBuffer::create("foo", 3); 403 RefPtr<ArrayBuffer> fooBuffer = ArrayBuffer::create("foo", 3);
404 channel()->send(*fooBuffer, 0, 3); 404 channel()->send(*fooBuffer, 0, 3);
405 405
406 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 406 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
407 } 407 }
408 408
409 TEST_F(NewWebSocketChannelImplTest, sendBinaryInArrayBufferPartial) 409 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferPartial)
410 { 410 {
411 connect(); 411 connect();
412 { 412 {
413 InSequence s; 413 InSequence s;
414 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("foo", 3), 3)); 414 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("foo", 3), 3));
415 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("bar", 3), 3)); 415 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("bar", 3), 3));
416 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("baz", 3), 3)); 416 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("baz", 3), 3));
417 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("a", 1), 1)); 417 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("a", 1), 1));
418 } 418 }
419 419
420 handleClient()->didReceiveFlowControl(handle(), 16); 420 handleClient()->didReceiveFlowControl(handle(), 16);
421 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 421 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
422 422
423 RefPtr<ArrayBuffer> foobarBuffer = ArrayBuffer::create("foobar", 6); 423 RefPtr<ArrayBuffer> foobarBuffer = ArrayBuffer::create("foobar", 6);
424 RefPtr<ArrayBuffer> qbazuxBuffer = ArrayBuffer::create("qbazux", 6); 424 RefPtr<ArrayBuffer> qbazuxBuffer = ArrayBuffer::create("qbazux", 6);
425 channel()->send(*foobarBuffer, 0, 3); 425 channel()->send(*foobarBuffer, 0, 3);
426 channel()->send(*foobarBuffer, 3, 3); 426 channel()->send(*foobarBuffer, 3, 3);
427 channel()->send(*qbazuxBuffer, 1, 3); 427 channel()->send(*qbazuxBuffer, 1, 3);
428 channel()->send(*qbazuxBuffer, 2, 1); 428 channel()->send(*qbazuxBuffer, 2, 1);
429 429
430 EXPECT_EQ(10ul, m_sumOfConsumedBufferedAmount); 430 EXPECT_EQ(10ul, m_sumOfConsumedBufferedAmount);
431 } 431 }
432 432
433 TEST_F(NewWebSocketChannelImplTest, sendBinaryInArrayBufferWithNullBytes) 433 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferWithNullBytes)
434 { 434 {
435 connect(); 435 connect();
436 { 436 {
437 InSequence s; 437 InSequence s;
438 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("\0ar", 3), 3)); 438 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("\0ar", 3), 3));
439 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("b\0z", 3), 3)); 439 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("b\0z", 3), 3));
440 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("qu\0", 3), 3)); 440 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("qu\0", 3), 3));
441 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("\0\0\0", 3), 3)); 441 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, Me mEq("\0\0\0", 3), 3));
442 } 442 }
443 443
(...skipping 13 matching lines...) Expand all
457 channel()->send(*b, 0, 3); 457 channel()->send(*b, 0, 3);
458 } 458 }
459 { 459 {
460 RefPtr<ArrayBuffer> b = ArrayBuffer::create("\0\0\0", 3); 460 RefPtr<ArrayBuffer> b = ArrayBuffer::create("\0\0\0", 3);
461 channel()->send(*b, 0, 3); 461 channel()->send(*b, 0, 3);
462 } 462 }
463 463
464 EXPECT_EQ(12ul, m_sumOfConsumedBufferedAmount); 464 EXPECT_EQ(12ul, m_sumOfConsumedBufferedAmount);
465 } 465 }
466 466
467 TEST_F(NewWebSocketChannelImplTest, sendBinaryInArrayBufferNonLatin1UTF8) 467 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonLatin1UTF8)
468 { 468 {
469 connect(); 469 connect();
470 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, MemEq( "\xe7\x8b\x90", 3), 3)); 470 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, MemEq( "\xe7\x8b\x90", 3), 3));
471 471
472 handleClient()->didReceiveFlowControl(handle(), 16); 472 handleClient()->didReceiveFlowControl(handle(), 16);
473 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 473 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
474 474
475 RefPtr<ArrayBuffer> b = ArrayBuffer::create("\xe7\x8b\x90", 3); 475 RefPtr<ArrayBuffer> b = ArrayBuffer::create("\xe7\x8b\x90", 3);
476 channel()->send(*b, 0, 3); 476 channel()->send(*b, 0, 3);
477 477
478 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 478 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
479 } 479 }
480 480
481 TEST_F(NewWebSocketChannelImplTest, sendBinaryInArrayBufferNonUTF8) 481 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonUTF8)
482 { 482 {
483 connect(); 483 connect();
484 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, MemEq( "\x80\xff\xe7", 3), 3)); 484 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeBinary, MemEq( "\x80\xff\xe7", 3), 3));
485 485
486 handleClient()->didReceiveFlowControl(handle(), 16); 486 handleClient()->didReceiveFlowControl(handle(), 16);
487 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 487 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
488 488
489 RefPtr<ArrayBuffer> b = ArrayBuffer::create("\x80\xff\xe7", 3); 489 RefPtr<ArrayBuffer> b = ArrayBuffer::create("\x80\xff\xe7", 3);
490 channel()->send(*b, 0, 3); 490 channel()->send(*b, 0, 3);
491 491
492 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount); 492 EXPECT_EQ(3ul, m_sumOfConsumedBufferedAmount);
493 } 493 }
494 494
495 TEST_F(NewWebSocketChannelImplTest, sendBinaryInArrayBufferNonLatin1UTF8Continua tion) 495 TEST_F(DocumentWebSocketChannelTest, sendBinaryInArrayBufferNonLatin1UTF8Continu ation)
496 { 496 {
497 connect(); 497 connect();
498 Checkpoint checkpoint; 498 Checkpoint checkpoint;
499 { 499 {
500 InSequence s; 500 InSequence s;
501 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeBinary, M emEq("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7", 16), 16 )); 501 EXPECT_CALL(*handle(), send(false, WebSocketHandle::MessageTypeBinary, M emEq("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7", 16), 16 ));
502 EXPECT_CALL(checkpoint, Call(1)); 502 EXPECT_CALL(checkpoint, Call(1));
503 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuati on, MemEq("\x8b\x90", 2), 2)); 503 EXPECT_CALL(*handle(), send(true, WebSocketHandle::MessageTypeContinuati on, MemEq("\x8b\x90", 2), 2));
504 } 504 }
505 505
506 handleClient()->didReceiveFlowControl(handle(), 16); 506 handleClient()->didReceiveFlowControl(handle(), 16);
507 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() ); 507 EXPECT_CALL(*channelClient(), didConsumeBufferedAmount(_)).Times(AnyNumber() );
508 508
509 RefPtr<ArrayBuffer> b = ArrayBuffer::create("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8 b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90", 18); 509 RefPtr<ArrayBuffer> b = ArrayBuffer::create("\xe7\x8b\x90\xe7\x8b\x90\xe7\x8 b\x90\xe7\x8b\x90\xe7\x8b\x90\xe7\x8b\x90", 18);
510 channel()->send(*b, 0, 18); 510 channel()->send(*b, 0, 18);
511 checkpoint.Call(1); 511 checkpoint.Call(1);
512 512
513 handleClient()->didReceiveFlowControl(handle(), 16); 513 handleClient()->didReceiveFlowControl(handle(), 16);
514 514
515 EXPECT_EQ(18ul, m_sumOfConsumedBufferedAmount); 515 EXPECT_EQ(18ul, m_sumOfConsumedBufferedAmount);
516 } 516 }
517 517
518 // FIXME: Add tests for WebSocketChannel::send(PassRefPtr<BlobDataHandle>) 518 // FIXME: Add tests for WebSocketChannel::send(PassRefPtr<BlobDataHandle>)
519 519
520 TEST_F(NewWebSocketChannelImplTest, receiveText) 520 TEST_F(DocumentWebSocketChannelTest, receiveText)
521 { 521 {
522 connect(); 522 connect();
523 { 523 {
524 InSequence s; 524 InSequence s;
525 EXPECT_CALL(*channelClient(), didReceiveTextMessage(String("FOO"))); 525 EXPECT_CALL(*channelClient(), didReceiveTextMessage(String("FOO")));
526 EXPECT_CALL(*channelClient(), didReceiveTextMessage(String("BAR"))); 526 EXPECT_CALL(*channelClient(), didReceiveTextMessage(String("BAR")));
527 } 527 }
528 528
529 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeT ext, "FOOX", 3); 529 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeT ext, "FOOX", 3);
530 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeT ext, "BARX", 3); 530 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeT ext, "BARX", 3);
531 } 531 }
532 532
533 TEST_F(NewWebSocketChannelImplTest, receiveTextContinuation) 533 TEST_F(DocumentWebSocketChannelTest, receiveTextContinuation)
534 { 534 {
535 connect(); 535 connect();
536 EXPECT_CALL(*channelClient(), didReceiveTextMessage(String("BAZ"))); 536 EXPECT_CALL(*channelClient(), didReceiveTextMessage(String("BAZ")));
537 537
538 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Text, "BX", 1); 538 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Text, "BX", 1);
539 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Continuation, "AX", 1); 539 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Continuation, "AX", 1);
540 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeC ontinuation, "ZX", 1); 540 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeC ontinuation, "ZX", 1);
541 } 541 }
542 542
543 TEST_F(NewWebSocketChannelImplTest, receiveTextNonLatin1) 543 TEST_F(DocumentWebSocketChannelTest, receiveTextNonLatin1)
544 { 544 {
545 connect(); 545 connect();
546 UChar nonLatin1String[] = { 546 UChar nonLatin1String[] = {
547 0x72d0, 547 0x72d0,
548 0x0914, 548 0x0914,
549 0x0000 549 0x0000
550 }; 550 };
551 EXPECT_CALL(*channelClient(), didReceiveTextMessage(String(nonLatin1String)) ); 551 EXPECT_CALL(*channelClient(), didReceiveTextMessage(String(nonLatin1String)) );
552 552
553 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeT ext, "\xe7\x8b\x90\xe0\xa4\x94", 6); 553 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeT ext, "\xe7\x8b\x90\xe0\xa4\x94", 6);
554 } 554 }
555 555
556 TEST_F(NewWebSocketChannelImplTest, receiveTextNonLatin1Continuation) 556 TEST_F(DocumentWebSocketChannelTest, receiveTextNonLatin1Continuation)
557 { 557 {
558 connect(); 558 connect();
559 UChar nonLatin1String[] = { 559 UChar nonLatin1String[] = {
560 0x72d0, 560 0x72d0,
561 0x0914, 561 0x0914,
562 0x0000 562 0x0000
563 }; 563 };
564 EXPECT_CALL(*channelClient(), didReceiveTextMessage(String(nonLatin1String)) ); 564 EXPECT_CALL(*channelClient(), didReceiveTextMessage(String(nonLatin1String)) );
565 565
566 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Text, "\xe7\x8b", 2); 566 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Text, "\xe7\x8b", 2);
567 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Continuation, "\x90\xe0", 2); 567 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Continuation, "\x90\xe0", 2);
568 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Continuation, "\xa4", 1); 568 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Continuation, "\xa4", 1);
569 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeC ontinuation, "\x94", 1); 569 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeC ontinuation, "\x94", 1);
570 } 570 }
571 571
572 TEST_F(NewWebSocketChannelImplTest, receiveBinary) 572 TEST_F(DocumentWebSocketChannelTest, receiveBinary)
573 { 573 {
574 connect(); 574 connect();
575 Vector<char> fooVector; 575 Vector<char> fooVector;
576 fooVector.append("FOO", 3); 576 fooVector.append("FOO", 3);
577 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(fooVector)); 577 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(fooVector));
578 578
579 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "FOOx", 3); 579 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "FOOx", 3);
580 } 580 }
581 581
582 TEST_F(NewWebSocketChannelImplTest, receiveBinaryContinuation) 582 TEST_F(DocumentWebSocketChannelTest, receiveBinaryContinuation)
583 { 583 {
584 connect(); 584 connect();
585 Vector<char> bazVector; 585 Vector<char> bazVector;
586 bazVector.append("BAZ", 3); 586 bazVector.append("BAZ", 3);
587 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(bazVector)); 587 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(bazVector));
588 588
589 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Binary, "Bx", 1); 589 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Binary, "Bx", 1);
590 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Continuation, "Ax", 1); 590 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Continuation, "Ax", 1);
591 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeC ontinuation, "Zx", 1); 591 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeC ontinuation, "Zx", 1);
592 } 592 }
593 593
594 TEST_F(NewWebSocketChannelImplTest, receiveBinaryWithNullBytes) 594 TEST_F(DocumentWebSocketChannelTest, receiveBinaryWithNullBytes)
595 { 595 {
596 connect(); 596 connect();
597 { 597 {
598 InSequence s; 598 InSequence s;
599 { 599 {
600 Vector<char> v; 600 Vector<char> v;
601 v.append("\0AR", 3); 601 v.append("\0AR", 3);
602 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(v)); 602 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(v));
603 } 603 }
604 { 604 {
(...skipping 12 matching lines...) Expand all
617 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(v)); 617 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(v));
618 } 618 }
619 } 619 }
620 620
621 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "\0AR", 3); 621 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "\0AR", 3);
622 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "B\0Z", 3); 622 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "B\0Z", 3);
623 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "QU\0", 3); 623 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "QU\0", 3);
624 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "\0\0\0", 3); 624 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "\0\0\0", 3);
625 } 625 }
626 626
627 TEST_F(NewWebSocketChannelImplTest, receiveBinaryNonLatin1UTF8) 627 TEST_F(DocumentWebSocketChannelTest, receiveBinaryNonLatin1UTF8)
628 { 628 {
629 connect(); 629 connect();
630 Vector<char> v; 630 Vector<char> v;
631 v.append("\xe7\x8b\x90\xe0\xa4\x94", 6); 631 v.append("\xe7\x8b\x90\xe0\xa4\x94", 6);
632 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(v)); 632 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(v));
633 633
634 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "\xe7\x8b\x90\xe0\xa4\x94", 6); 634 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "\xe7\x8b\x90\xe0\xa4\x94", 6);
635 } 635 }
636 636
637 TEST_F(NewWebSocketChannelImplTest, receiveBinaryNonLatin1UTF8Continuation) 637 TEST_F(DocumentWebSocketChannelTest, receiveBinaryNonLatin1UTF8Continuation)
638 { 638 {
639 connect(); 639 connect();
640 Vector<char> v; 640 Vector<char> v;
641 v.append("\xe7\x8b\x90\xe0\xa4\x94", 6); 641 v.append("\xe7\x8b\x90\xe0\xa4\x94", 6);
642 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(v)); 642 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(v));
643 643
644 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Binary, "\xe7\x8b", 2); 644 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Binary, "\xe7\x8b", 2);
645 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Continuation, "\x90\xe0", 2); 645 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Continuation, "\x90\xe0", 2);
646 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Continuation, "\xa4", 1); 646 handleClient()->didReceiveData(handle(), false, WebSocketHandle::MessageType Continuation, "\xa4", 1);
647 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeC ontinuation, "\x94", 1); 647 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeC ontinuation, "\x94", 1);
648 } 648 }
649 649
650 TEST_F(NewWebSocketChannelImplTest, receiveBinaryNonUTF8) 650 TEST_F(DocumentWebSocketChannelTest, receiveBinaryNonUTF8)
651 { 651 {
652 connect(); 652 connect();
653 Vector<char> v; 653 Vector<char> v;
654 v.append("\x80\xff", 2); 654 v.append("\x80\xff", 2);
655 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(v)); 655 EXPECT_CALL(*channelClient(), didReceiveBinaryMessageMock(v));
656 656
657 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "\x80\xff", 2); 657 handleClient()->didReceiveData(handle(), true, WebSocketHandle::MessageTypeB inary, "\x80\xff", 2);
658 } 658 }
659 659
660 TEST_F(NewWebSocketChannelImplTest, closeFromBrowser) 660 TEST_F(DocumentWebSocketChannelTest, closeFromBrowser)
661 { 661 {
662 connect(); 662 connect();
663 Checkpoint checkpoint; 663 Checkpoint checkpoint;
664 { 664 {
665 InSequence s; 665 InSequence s;
666 666
667 EXPECT_CALL(*channelClient(), didStartClosingHandshake()); 667 EXPECT_CALL(*channelClient(), didStartClosingHandshake());
668 EXPECT_CALL(checkpoint, Call(1)); 668 EXPECT_CALL(checkpoint, Call(1));
669 669
670 EXPECT_CALL(*handle(), close(WebSocketChannel::CloseEventCodeNormalClosu re, WebString("close reason"))); 670 EXPECT_CALL(*handle(), close(WebSocketChannel::CloseEventCodeNormalClosu re, WebString("close reason")));
671 EXPECT_CALL(checkpoint, Call(2)); 671 EXPECT_CALL(checkpoint, Call(2));
672 672
673 EXPECT_CALL(*channelClient(), didClose(WebSocketChannelClient::ClosingHa ndshakeComplete, WebSocketChannel::CloseEventCodeNormalClosure, String("close re ason"))); 673 EXPECT_CALL(*channelClient(), didClose(WebSocketChannelClient::ClosingHa ndshakeComplete, WebSocketChannel::CloseEventCodeNormalClosure, String("close re ason")));
674 EXPECT_CALL(checkpoint, Call(3)); 674 EXPECT_CALL(checkpoint, Call(3));
675 } 675 }
676 676
677 handleClient()->didStartClosingHandshake(handle()); 677 handleClient()->didStartClosingHandshake(handle());
678 checkpoint.Call(1); 678 checkpoint.Call(1);
679 679
680 channel()->close(WebSocketChannel::CloseEventCodeNormalClosure, String("clos e reason")); 680 channel()->close(WebSocketChannel::CloseEventCodeNormalClosure, String("clos e reason"));
681 checkpoint.Call(2); 681 checkpoint.Call(2);
682 682
683 handleClient()->didClose(handle(), true, WebSocketChannel::CloseEventCodeNor malClosure, String("close reason")); 683 handleClient()->didClose(handle(), true, WebSocketChannel::CloseEventCodeNor malClosure, String("close reason"));
684 checkpoint.Call(3); 684 checkpoint.Call(3);
685 685
686 channel()->disconnect(); 686 channel()->disconnect();
687 } 687 }
688 688
689 TEST_F(NewWebSocketChannelImplTest, closeFromWebSocket) 689 TEST_F(DocumentWebSocketChannelTest, closeFromWebSocket)
690 { 690 {
691 connect(); 691 connect();
692 Checkpoint checkpoint; 692 Checkpoint checkpoint;
693 { 693 {
694 InSequence s; 694 InSequence s;
695 695
696 EXPECT_CALL(*handle(), close(WebSocketChannel::CloseEventCodeNormalClosu re, WebString("close reason"))); 696 EXPECT_CALL(*handle(), close(WebSocketChannel::CloseEventCodeNormalClosu re, WebString("close reason")));
697 EXPECT_CALL(checkpoint, Call(1)); 697 EXPECT_CALL(checkpoint, Call(1));
698 698
699 EXPECT_CALL(*channelClient(), didClose(WebSocketChannelClient::ClosingHa ndshakeComplete, WebSocketChannel::CloseEventCodeNormalClosure, String("close re ason"))); 699 EXPECT_CALL(*channelClient(), didClose(WebSocketChannelClient::ClosingHa ndshakeComplete, WebSocketChannel::CloseEventCodeNormalClosure, String("close re ason")));
700 EXPECT_CALL(checkpoint, Call(2)); 700 EXPECT_CALL(checkpoint, Call(2));
701 } 701 }
702 702
703 channel()->close(WebSocketChannel::CloseEventCodeNormalClosure, String("clos e reason")); 703 channel()->close(WebSocketChannel::CloseEventCodeNormalClosure, String("clos e reason"));
704 checkpoint.Call(1); 704 checkpoint.Call(1);
705 705
706 handleClient()->didClose(handle(), true, WebSocketChannel::CloseEventCodeNor malClosure, String("close reason")); 706 handleClient()->didClose(handle(), true, WebSocketChannel::CloseEventCodeNor malClosure, String("close reason"));
707 checkpoint.Call(2); 707 checkpoint.Call(2);
708 708
709 channel()->disconnect(); 709 channel()->disconnect();
710 } 710 }
711 711
712 TEST_F(NewWebSocketChannelImplTest, failFromBrowser) 712 TEST_F(DocumentWebSocketChannelTest, failFromBrowser)
713 { 713 {
714 connect(); 714 connect();
715 { 715 {
716 InSequence s; 716 InSequence s;
717 717
718 EXPECT_CALL(*channelClient(), didError()); 718 EXPECT_CALL(*channelClient(), didError());
719 EXPECT_CALL(*channelClient(), didClose(WebSocketChannelClient::ClosingHa ndshakeIncomplete, WebSocketChannel::CloseEventCodeAbnormalClosure, String())); 719 EXPECT_CALL(*channelClient(), didClose(WebSocketChannelClient::ClosingHa ndshakeIncomplete, WebSocketChannel::CloseEventCodeAbnormalClosure, String()));
720 } 720 }
721 721
722 handleClient()->didFail(handle(), "fail message"); 722 handleClient()->didFail(handle(), "fail message");
723 } 723 }
724 724
725 TEST_F(NewWebSocketChannelImplTest, failFromWebSocket) 725 TEST_F(DocumentWebSocketChannelTest, failFromWebSocket)
726 { 726 {
727 connect(); 727 connect();
728 { 728 {
729 InSequence s; 729 InSequence s;
730 730
731 EXPECT_CALL(*channelClient(), didError()); 731 EXPECT_CALL(*channelClient(), didError());
732 EXPECT_CALL(*channelClient(), didClose(WebSocketChannelClient::ClosingHa ndshakeIncomplete, WebSocketChannel::CloseEventCodeAbnormalClosure, String())); 732 EXPECT_CALL(*channelClient(), didClose(WebSocketChannelClient::ClosingHa ndshakeIncomplete, WebSocketChannel::CloseEventCodeAbnormalClosure, String()));
733 } 733 }
734 734
735 channel()->fail("fail message from WebSocket", ErrorMessageLevel, "sourceURL ", 1234); 735 channel()->fail("fail message from WebSocket", ErrorMessageLevel, "sourceURL ", 1234);
736 } 736 }
737 737
738 } // namespace 738 } // namespace
739 739
740 } // namespace blink 740 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/websockets/DocumentWebSocketChannel.cpp ('k') | Source/modules/websockets/NewWebSocketChannelImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698