| 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 |