OLD | NEW |
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 | 6 |
7 #include "modules/websockets/DOMWebSocket.h" | 7 #include "modules/websockets/DOMWebSocket.h" |
8 | 8 |
9 #include "bindings/core/v8/ExceptionState.h" | 9 #include "bindings/core/v8/ExceptionState.h" |
10 #include "bindings/core/v8/V8Binding.h" | 10 #include "bindings/core/v8/V8Binding.h" |
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 EXPECT_CALL(channel(), fail(_, _, _, _)); | 307 EXPECT_CALL(channel(), fail(_, _, _, _)); |
308 } | 308 } |
309 String reason; | 309 String reason; |
310 for (size_t i = 0; i < 123; ++i) | 310 for (size_t i = 0; i < 123; ++i) |
311 reason.append("a"); | 311 reason.append("a"); |
312 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); | 312 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); |
313 | 313 |
314 EXPECT_FALSE(m_exceptionState.hadException()); | 314 EXPECT_FALSE(m_exceptionState.hadException()); |
315 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); | 315 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); |
316 | 316 |
317 m_websocket->close(1000, reason, m_exceptionState); | 317 m_websocket->close(makeOptional(1000), reason, m_exceptionState); |
318 | 318 |
319 EXPECT_FALSE(m_exceptionState.hadException()); | 319 EXPECT_FALSE(m_exceptionState.hadException()); |
320 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); | 320 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); |
321 } | 321 } |
322 | 322 |
323 TEST_F(DOMWebSocketTest, reasonSizeExceeding) | 323 TEST_F(DOMWebSocketTest, reasonSizeExceeding) |
324 { | 324 { |
325 { | 325 { |
326 InSequence s; | 326 InSequence s; |
327 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); | 327 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); |
328 } | 328 } |
329 String reason; | 329 String reason; |
330 for (size_t i = 0; i < 124; ++i) | 330 for (size_t i = 0; i < 124; ++i) |
331 reason.append("a"); | 331 reason.append("a"); |
332 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); | 332 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); |
333 | 333 |
334 EXPECT_FALSE(m_exceptionState.hadException()); | 334 EXPECT_FALSE(m_exceptionState.hadException()); |
335 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); | 335 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); |
336 | 336 |
337 m_websocket->close(1000, reason, m_exceptionState); | 337 m_websocket->close(makeOptional(1000), reason, m_exceptionState); |
338 | 338 |
339 EXPECT_TRUE(m_exceptionState.hadException()); | 339 EXPECT_TRUE(m_exceptionState.hadException()); |
340 EXPECT_EQ(SyntaxError, m_exceptionState.code()); | 340 EXPECT_EQ(SyntaxError, m_exceptionState.code()); |
341 EXPECT_EQ("The message must not be greater than 123 bytes.", m_exceptionStat
e.message()); | 341 EXPECT_EQ("The message must not be greater than 123 bytes.", m_exceptionStat
e.message()); |
342 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); | 342 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); |
343 } | 343 } |
344 | 344 |
345 TEST_F(DOMWebSocketTest, closeWhenConnecting) | 345 TEST_F(DOMWebSocketTest, closeWhenConnecting) |
346 { | 346 { |
347 { | 347 { |
348 InSequence s; | 348 InSequence s; |
349 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); | 349 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); |
350 EXPECT_CALL(channel(), fail(String("WebSocket is closed before the conne
ction is established."), WarningMessageLevel, String(), 0)); | 350 EXPECT_CALL(channel(), fail(String("WebSocket is closed before the conne
ction is established."), WarningMessageLevel, String(), 0)); |
351 } | 351 } |
352 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); | 352 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); |
353 | 353 |
354 EXPECT_FALSE(m_exceptionState.hadException()); | 354 EXPECT_FALSE(m_exceptionState.hadException()); |
355 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); | 355 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); |
356 | 356 |
357 m_websocket->close(1000, "bye", m_exceptionState); | 357 m_websocket->close(makeOptional(1000), "bye", m_exceptionState); |
358 | 358 |
359 EXPECT_FALSE(m_exceptionState.hadException()); | 359 EXPECT_FALSE(m_exceptionState.hadException()); |
360 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); | 360 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); |
361 } | 361 } |
362 | 362 |
363 TEST_F(DOMWebSocketTest, close) | 363 TEST_F(DOMWebSocketTest, close) |
364 { | 364 { |
365 { | 365 { |
366 InSequence s; | 366 InSequence s; |
367 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); | 367 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); |
368 EXPECT_CALL(channel(), close(3005, String("bye"))); | 368 EXPECT_CALL(channel(), close(3005, String("bye"))); |
369 } | 369 } |
370 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); | 370 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); |
371 | 371 |
372 EXPECT_FALSE(m_exceptionState.hadException()); | 372 EXPECT_FALSE(m_exceptionState.hadException()); |
373 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); | 373 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); |
374 | 374 |
375 m_websocket->didConnect("", ""); | 375 m_websocket->didConnect("", ""); |
376 EXPECT_EQ(DOMWebSocket::OPEN, m_websocket->readyState()); | 376 EXPECT_EQ(DOMWebSocket::OPEN, m_websocket->readyState()); |
377 m_websocket->close(3005, "bye", m_exceptionState); | 377 m_websocket->close(makeOptional(3005), "bye", m_exceptionState); |
378 | 378 |
379 EXPECT_FALSE(m_exceptionState.hadException()); | 379 EXPECT_FALSE(m_exceptionState.hadException()); |
380 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); | 380 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); |
381 } | 381 } |
382 | 382 |
383 TEST_F(DOMWebSocketTest, closeWithoutReason) | 383 TEST_F(DOMWebSocketTest, closeWithoutReason) |
384 { | 384 { |
385 { | 385 { |
386 InSequence s; | 386 InSequence s; |
387 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); | 387 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); |
388 EXPECT_CALL(channel(), close(3005, String())); | 388 EXPECT_CALL(channel(), close(3005, String())); |
389 } | 389 } |
390 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); | 390 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); |
391 | 391 |
392 EXPECT_FALSE(m_exceptionState.hadException()); | 392 EXPECT_FALSE(m_exceptionState.hadException()); |
393 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); | 393 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); |
394 | 394 |
395 m_websocket->didConnect("", ""); | 395 m_websocket->didConnect("", ""); |
396 EXPECT_EQ(DOMWebSocket::OPEN, m_websocket->readyState()); | 396 EXPECT_EQ(DOMWebSocket::OPEN, m_websocket->readyState()); |
397 m_websocket->close(3005, m_exceptionState); | 397 m_websocket->close(makeOptional(3005), String(), m_exceptionState); |
398 | 398 |
399 EXPECT_FALSE(m_exceptionState.hadException()); | 399 EXPECT_FALSE(m_exceptionState.hadException()); |
400 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); | 400 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); |
401 } | 401 } |
402 | 402 |
403 TEST_F(DOMWebSocketTest, closeWithoutCodeAndReason) | 403 TEST_F(DOMWebSocketTest, closeWithoutCodeAndReason) |
404 { | 404 { |
405 { | 405 { |
406 InSequence s; | 406 InSequence s; |
407 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); | 407 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); |
408 EXPECT_CALL(channel(), close(-1, String())); | 408 EXPECT_CALL(channel(), close(-1, String())); |
409 } | 409 } |
410 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); | 410 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); |
411 | 411 |
412 EXPECT_FALSE(m_exceptionState.hadException()); | 412 EXPECT_FALSE(m_exceptionState.hadException()); |
413 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); | 413 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); |
414 | 414 |
415 m_websocket->didConnect("", ""); | 415 m_websocket->didConnect("", ""); |
416 EXPECT_EQ(DOMWebSocket::OPEN, m_websocket->readyState()); | 416 EXPECT_EQ(DOMWebSocket::OPEN, m_websocket->readyState()); |
417 m_websocket->close(m_exceptionState); | 417 m_websocket->close(makeOptionalMissing<int>(), String(), m_exceptionState); |
418 | 418 |
419 EXPECT_FALSE(m_exceptionState.hadException()); | 419 EXPECT_FALSE(m_exceptionState.hadException()); |
420 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); | 420 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); |
421 } | 421 } |
422 | 422 |
423 TEST_F(DOMWebSocketTest, closeWhenClosing) | 423 TEST_F(DOMWebSocketTest, closeWhenClosing) |
424 { | 424 { |
425 { | 425 { |
426 InSequence s; | 426 InSequence s; |
427 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); | 427 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); |
428 EXPECT_CALL(channel(), close(-1, String())); | 428 EXPECT_CALL(channel(), close(-1, String())); |
429 } | 429 } |
430 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); | 430 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); |
431 | 431 |
432 EXPECT_FALSE(m_exceptionState.hadException()); | 432 EXPECT_FALSE(m_exceptionState.hadException()); |
433 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); | 433 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); |
434 | 434 |
435 m_websocket->didConnect("", ""); | 435 m_websocket->didConnect("", ""); |
436 EXPECT_EQ(DOMWebSocket::OPEN, m_websocket->readyState()); | 436 EXPECT_EQ(DOMWebSocket::OPEN, m_websocket->readyState()); |
437 m_websocket->close(m_exceptionState); | 437 m_websocket->close(makeOptionalMissing<int>(), String(), m_exceptionState); |
438 EXPECT_FALSE(m_exceptionState.hadException()); | 438 EXPECT_FALSE(m_exceptionState.hadException()); |
439 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); | 439 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); |
440 | 440 |
441 m_websocket->close(m_exceptionState); | 441 m_websocket->close(makeOptionalMissing<int>(), String(), m_exceptionState); |
442 | 442 |
443 EXPECT_FALSE(m_exceptionState.hadException()); | 443 EXPECT_FALSE(m_exceptionState.hadException()); |
444 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); | 444 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); |
445 } | 445 } |
446 | 446 |
447 TEST_F(DOMWebSocketTest, closeWhenClosed) | 447 TEST_F(DOMWebSocketTest, closeWhenClosed) |
448 { | 448 { |
449 { | 449 { |
450 InSequence s; | 450 InSequence s; |
451 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); | 451 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); |
452 EXPECT_CALL(channel(), close(-1, String())); | 452 EXPECT_CALL(channel(), close(-1, String())); |
453 EXPECT_CALL(channel(), disconnect()); | 453 EXPECT_CALL(channel(), disconnect()); |
454 } | 454 } |
455 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); | 455 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); |
456 | 456 |
457 EXPECT_FALSE(m_exceptionState.hadException()); | 457 EXPECT_FALSE(m_exceptionState.hadException()); |
458 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); | 458 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); |
459 | 459 |
460 m_websocket->didConnect("", ""); | 460 m_websocket->didConnect("", ""); |
461 EXPECT_EQ(DOMWebSocket::OPEN, m_websocket->readyState()); | 461 EXPECT_EQ(DOMWebSocket::OPEN, m_websocket->readyState()); |
462 m_websocket->close(m_exceptionState); | 462 m_websocket->close(makeOptionalMissing<int>(), String(), m_exceptionState); |
463 EXPECT_FALSE(m_exceptionState.hadException()); | 463 EXPECT_FALSE(m_exceptionState.hadException()); |
464 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); | 464 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); |
465 | 465 |
466 m_websocket->didClose(WebSocketChannelClient::ClosingHandshakeComplete, 1000
, String()); | 466 m_websocket->didClose(WebSocketChannelClient::ClosingHandshakeComplete, 1000
, String()); |
467 EXPECT_EQ(DOMWebSocket::CLOSED, m_websocket->readyState()); | 467 EXPECT_EQ(DOMWebSocket::CLOSED, m_websocket->readyState()); |
468 m_websocket->close(m_exceptionState); | 468 m_websocket->close(makeOptionalMissing<int>(), String(), m_exceptionState); |
469 | 469 |
470 EXPECT_FALSE(m_exceptionState.hadException()); | 470 EXPECT_FALSE(m_exceptionState.hadException()); |
471 EXPECT_EQ(DOMWebSocket::CLOSED, m_websocket->readyState()); | 471 EXPECT_EQ(DOMWebSocket::CLOSED, m_websocket->readyState()); |
472 } | 472 } |
473 | 473 |
474 TEST_F(DOMWebSocketTest, sendStringWhenConnecting) | 474 TEST_F(DOMWebSocketTest, sendStringWhenConnecting) |
475 { | 475 { |
476 { | 476 { |
477 InSequence s; | 477 InSequence s; |
478 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); | 478 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); |
(...skipping 15 matching lines...) Expand all Loading... |
494 Checkpoint checkpoint; | 494 Checkpoint checkpoint; |
495 { | 495 { |
496 InSequence s; | 496 InSequence s; |
497 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); | 497 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); |
498 EXPECT_CALL(channel(), fail(_, _, _, _)); | 498 EXPECT_CALL(channel(), fail(_, _, _, _)); |
499 } | 499 } |
500 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); | 500 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); |
501 | 501 |
502 EXPECT_FALSE(m_exceptionState.hadException()); | 502 EXPECT_FALSE(m_exceptionState.hadException()); |
503 | 503 |
504 m_websocket->close(m_exceptionState); | 504 m_websocket->close(makeOptionalMissing<int>(), String(), m_exceptionState); |
505 EXPECT_FALSE(m_exceptionState.hadException()); | 505 EXPECT_FALSE(m_exceptionState.hadException()); |
506 | 506 |
507 m_websocket->send("hello", m_exceptionState); | 507 m_websocket->send("hello", m_exceptionState); |
508 | 508 |
509 EXPECT_FALSE(m_exceptionState.hadException()); | 509 EXPECT_FALSE(m_exceptionState.hadException()); |
510 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); | 510 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); |
511 } | 511 } |
512 | 512 |
513 TEST_F(DOMWebSocketTest, sendStringWhenClosed) | 513 TEST_F(DOMWebSocketTest, sendStringWhenClosed) |
514 { | 514 { |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
574 RefPtr<ArrayBufferView> view = Uint8Array::create(8); | 574 RefPtr<ArrayBufferView> view = Uint8Array::create(8); |
575 { | 575 { |
576 InSequence s; | 576 InSequence s; |
577 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); | 577 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); |
578 EXPECT_CALL(channel(), fail(_, _, _, _)); | 578 EXPECT_CALL(channel(), fail(_, _, _, _)); |
579 } | 579 } |
580 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); | 580 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); |
581 | 581 |
582 EXPECT_FALSE(m_exceptionState.hadException()); | 582 EXPECT_FALSE(m_exceptionState.hadException()); |
583 | 583 |
584 m_websocket->close(m_exceptionState); | 584 m_websocket->close(makeOptionalMissing<int>(), String(), m_exceptionState); |
585 EXPECT_FALSE(m_exceptionState.hadException()); | 585 EXPECT_FALSE(m_exceptionState.hadException()); |
586 | 586 |
587 m_websocket->send(view->buffer().get(), m_exceptionState); | 587 m_websocket->send(view->buffer().get(), m_exceptionState); |
588 | 588 |
589 EXPECT_FALSE(m_exceptionState.hadException()); | 589 EXPECT_FALSE(m_exceptionState.hadException()); |
590 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); | 590 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); |
591 } | 591 } |
592 | 592 |
593 TEST_F(DOMWebSocketTest, sendArrayBufferWhenClosed) | 593 TEST_F(DOMWebSocketTest, sendArrayBufferWhenClosed) |
594 { | 594 { |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
671 { | 671 { |
672 InSequence s; | 672 InSequence s; |
673 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); | 673 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); |
674 EXPECT_CALL(channel(), fail(_, _, _, _)); | 674 EXPECT_CALL(channel(), fail(_, _, _, _)); |
675 } | 675 } |
676 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); | 676 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); |
677 | 677 |
678 EXPECT_FALSE(m_exceptionState.hadException()); | 678 EXPECT_FALSE(m_exceptionState.hadException()); |
679 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); | 679 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); |
680 | 680 |
681 m_websocket->close(GetParam(), "bye", m_exceptionState); | 681 m_websocket->close(makeOptional(GetParam()), "bye", m_exceptionState); |
682 | 682 |
683 EXPECT_FALSE(m_exceptionState.hadException()); | 683 EXPECT_FALSE(m_exceptionState.hadException()); |
684 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); | 684 EXPECT_EQ(DOMWebSocket::CLOSING, m_websocket->readyState()); |
685 } | 685 } |
686 | 686 |
687 INSTANTIATE_TEST_CASE_P(DOMWebSocketValidClosing, DOMWebSocketValidClosingTest,
::testing::Values(1000, 3000, 3001, 4998, 4999)); | 687 INSTANTIATE_TEST_CASE_P(DOMWebSocketValidClosing, DOMWebSocketValidClosingTest,
::testing::Values(1000, 3000, 3001, 4998, 4999)); |
688 | 688 |
689 class DOMWebSocketInvalidClosingCodeTest : public DOMWebSocketTestBase, public :
:testing::TestWithParam<unsigned short> { | 689 class DOMWebSocketInvalidClosingCodeTest : public DOMWebSocketTestBase, public :
:testing::TestWithParam<unsigned short> { |
690 public: | 690 public: |
691 }; | 691 }; |
692 | 692 |
693 TEST_P(DOMWebSocketInvalidClosingCodeTest, test) | 693 TEST_P(DOMWebSocketInvalidClosingCodeTest, test) |
694 { | 694 { |
695 { | 695 { |
696 InSequence s; | 696 InSequence s; |
697 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); | 697 EXPECT_CALL(channel(), connect(KURL(KURL(), "ws://example.com/"), String
())).WillOnce(Return(true)); |
698 } | 698 } |
699 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); | 699 m_websocket->connect("ws://example.com/", Vector<String>(), m_exceptionState
); |
700 | 700 |
701 EXPECT_FALSE(m_exceptionState.hadException()); | 701 EXPECT_FALSE(m_exceptionState.hadException()); |
702 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); | 702 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); |
703 | 703 |
704 m_websocket->close(GetParam(), "bye", m_exceptionState); | 704 m_websocket->close(makeOptional(GetParam()), "bye", m_exceptionState); |
705 | 705 |
706 EXPECT_TRUE(m_exceptionState.hadException()); | 706 EXPECT_TRUE(m_exceptionState.hadException()); |
707 EXPECT_EQ(InvalidAccessError, m_exceptionState.code()); | 707 EXPECT_EQ(InvalidAccessError, m_exceptionState.code()); |
708 EXPECT_EQ(String::format("The code must be either 1000, or between 3000 and
4999. %d is neither.", GetParam()), m_exceptionState.message()); | 708 EXPECT_EQ(String::format("The code must be either 1000, or between 3000 and
4999. %d is neither.", GetParam()), m_exceptionState.message()); |
709 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); | 709 EXPECT_EQ(DOMWebSocket::CONNECTING, m_websocket->readyState()); |
710 } | 710 } |
711 | 711 |
712 INSTANTIATE_TEST_CASE_P(DOMWebSocketInvalidClosingCode, DOMWebSocketInvalidClosi
ngCodeTest, ::testing::Values(0, 1, 998, 999, 1001, 2999, 5000, 9999, 65535)); | 712 INSTANTIATE_TEST_CASE_P(DOMWebSocketInvalidClosingCode, DOMWebSocketInvalidClosi
ngCodeTest, ::testing::Values(0, 1, 998, 999, 1001, 2999, 5000, 9999, 65535)); |
713 | 713 |
714 } // namespace | 714 } // namespace |
715 | 715 |
716 } // namespace blink | 716 } // namespace blink |
OLD | NEW |