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

Side by Side Diff: components/cast_channel/cast_transport_unittest.cc

Issue 2913033003: [cast_channel] Move cast_channel related files from //extensions to //components (Closed)
Patch Set: fix buildbot compile errors Created 3 years, 6 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 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 "extensions/browser/api/cast_channel/cast_transport.h" 5 #include "components/cast_channel/cast_transport.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <queue> 10 #include <queue>
11 11
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/memory/ptr_util.h" 13 #include "base/memory/ptr_util.h"
14 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
15 #include "base/run_loop.h" 15 #include "base/run_loop.h"
16 #include "base/test/simple_test_clock.h" 16 #include "base/test/simple_test_clock.h"
17 #include "extensions/browser/api/cast_channel/cast_framer.h" 17 #include "components/cast_channel/cast_framer.h"
18 #include "extensions/browser/api/cast_channel/cast_socket.h" 18 #include "components/cast_channel/cast_socket.h"
19 #include "extensions/browser/api/cast_channel/cast_test_util.h" 19 #include "components/cast_channel/cast_test_util.h"
20 #include "extensions/browser/api/cast_channel/logger.h" 20 #include "components/cast_channel/logger.h"
21 #include "extensions/common/api/cast_channel/cast_channel.pb.h" 21 #include "components/cast_channel/proto/cast_channel.pb.h"
22 #include "net/base/completion_callback.h" 22 #include "net/base/completion_callback.h"
23 #include "net/base/net_errors.h" 23 #include "net/base/net_errors.h"
24 #include "net/log/test_net_log.h" 24 #include "net/log/test_net_log.h"
25 #include "net/socket/socket.h" 25 #include "net/socket/socket.h"
26 #include "testing/gmock/include/gmock/gmock.h" 26 #include "testing/gmock/include/gmock/gmock.h"
27 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
28 28
29 using testing::_; 29 using testing::_;
30 using testing::DoAll; 30 using testing::DoAll;
31 using testing::InSequence; 31 using testing::InSequence;
32 using testing::Invoke; 32 using testing::Invoke;
33 using testing::NotNull; 33 using testing::NotNull;
34 using testing::Return; 34 using testing::Return;
35 using testing::WithArg; 35 using testing::WithArg;
36 36
37 namespace extensions {
38 namespace api {
39 namespace cast_channel { 37 namespace cast_channel {
40 namespace { 38 namespace {
41 39
42 const int kChannelId = 0; 40 const int kChannelId = 0;
43 41
44 // Mockable placeholder for write completion events. 42 // Mockable placeholder for write completion events.
45 class CompleteHandler { 43 class CompleteHandler {
46 public: 44 public:
47 CompleteHandler() {} 45 CompleteHandler() {}
48 MOCK_METHOD1(Complete, void(int result)); 46 MOCK_METHOD1(Complete, void(int result));
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 socket_cbs.Pop(serialized_message.size() - 1); 232 socket_cbs.Pop(serialized_message.size() - 1);
235 RunPendingTasks(); 233 RunPendingTasks();
236 EXPECT_EQ(serialized_message.substr(1, serialized_message.size() - 1), 234 EXPECT_EQ(serialized_message.substr(1, serialized_message.size() - 1),
237 output); 235 output);
238 } 236 }
239 237
240 TEST_F(CastTransportTest, TestWriteFailureAsync) { 238 TEST_F(CastTransportTest, TestWriteFailureAsync) {
241 CompletionQueue socket_cbs; 239 CompletionQueue socket_cbs;
242 CompleteHandler write_handler; 240 CompleteHandler write_handler;
243 CastMessage message = CreateCastMessage(); 241 CastMessage message = CreateCastMessage();
244 EXPECT_CALL(mock_socket_, Write(NotNull(), _, _)).WillOnce( 242 EXPECT_CALL(mock_socket_, Write(NotNull(), _, _))
245 DoAll(EnqueueCallback<2>(&socket_cbs), Return(net::ERR_IO_PENDING))); 243 .WillOnce(
244 DoAll(EnqueueCallback<2>(&socket_cbs), Return(net::ERR_IO_PENDING)));
246 EXPECT_CALL(write_handler, Complete(net::ERR_FAILED)); 245 EXPECT_CALL(write_handler, Complete(net::ERR_FAILED));
247 EXPECT_CALL(*delegate_, OnError(ChannelError::CAST_SOCKET_ERROR)); 246 EXPECT_CALL(*delegate_, OnError(ChannelError::CAST_SOCKET_ERROR));
248 transport_->SendMessage( 247 transport_->SendMessage(
249 message, 248 message,
250 base::Bind(&CompleteHandler::Complete, base::Unretained(&write_handler))); 249 base::Bind(&CompleteHandler::Complete, base::Unretained(&write_handler)));
251 RunPendingTasks(); 250 RunPendingTasks();
252 socket_cbs.Pop(net::ERR_CONNECTION_RESET); 251 socket_cbs.Pop(net::ERR_CONNECTION_RESET);
253 RunPendingTasks(); 252 RunPendingTasks();
254 EXPECT_EQ(proto::SOCKET_WRITE, logger_->GetLastErrors(kChannelId).event_type); 253 EXPECT_EQ(proto::SOCKET_WRITE, logger_->GetLastErrors(kChannelId).event_type);
255 EXPECT_EQ(net::ERR_CONNECTION_RESET, 254 EXPECT_EQ(net::ERR_CONNECTION_RESET,
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 475
477 TEST_F(CastTransportTest, TestReadCorruptedMessageAsync) { 476 TEST_F(CastTransportTest, TestReadCorruptedMessageAsync) {
478 CompletionQueue socket_cbs; 477 CompletionQueue socket_cbs;
479 478
480 CastMessage message = CreateCastMessage(); 479 CastMessage message = CreateCastMessage();
481 std::string serialized_message; 480 std::string serialized_message;
482 EXPECT_TRUE(MessageFramer::Serialize(message, &serialized_message)); 481 EXPECT_TRUE(MessageFramer::Serialize(message, &serialized_message));
483 482
484 // Corrupt the serialized message body(set it to X's). 483 // Corrupt the serialized message body(set it to X's).
485 for (size_t i = MessageFramer::MessageHeader::header_size(); 484 for (size_t i = MessageFramer::MessageHeader::header_size();
486 i < serialized_message.size(); 485 i < serialized_message.size(); ++i) {
487 ++i) {
488 serialized_message[i] = 'x'; 486 serialized_message[i] = 'x';
489 } 487 }
490 488
491 EXPECT_CALL(*delegate_, Start()); 489 EXPECT_CALL(*delegate_, Start());
492 // Read bytes [0, 3]. 490 // Read bytes [0, 3].
493 EXPECT_CALL(mock_socket_, 491 EXPECT_CALL(mock_socket_,
494 Read(NotNull(), MessageFramer::MessageHeader::header_size(), _)) 492 Read(NotNull(), MessageFramer::MessageHeader::header_size(), _))
495 .WillOnce(DoAll(FillBufferFromString<0>(serialized_message), 493 .WillOnce(DoAll(FillBufferFromString<0>(serialized_message),
496 EnqueueCallback<2>(&socket_cbs), 494 EnqueueCallback<2>(&socket_cbs),
497 Return(net::ERR_IO_PENDING))) 495 Return(net::ERR_IO_PENDING)))
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 } 644 }
647 645
648 TEST_F(CastTransportTest, TestReadCorruptedMessageSync) { 646 TEST_F(CastTransportTest, TestReadCorruptedMessageSync) {
649 InSequence s; 647 InSequence s;
650 CastMessage message = CreateCastMessage(); 648 CastMessage message = CreateCastMessage();
651 std::string serialized_message; 649 std::string serialized_message;
652 EXPECT_TRUE(MessageFramer::Serialize(message, &serialized_message)); 650 EXPECT_TRUE(MessageFramer::Serialize(message, &serialized_message));
653 651
654 // Corrupt the serialized message body(set it to X's). 652 // Corrupt the serialized message body(set it to X's).
655 for (size_t i = MessageFramer::MessageHeader::header_size(); 653 for (size_t i = MessageFramer::MessageHeader::header_size();
656 i < serialized_message.size(); 654 i < serialized_message.size(); ++i) {
657 ++i) {
658 serialized_message[i] = 'x'; 655 serialized_message[i] = 'x';
659 } 656 }
660 657
661 EXPECT_CALL(*delegate_, Start()); 658 EXPECT_CALL(*delegate_, Start());
662 659
663 // Read bytes [0, 3]. 660 // Read bytes [0, 3].
664 EXPECT_CALL(mock_socket_, 661 EXPECT_CALL(mock_socket_,
665 Read(NotNull(), MessageFramer::MessageHeader::header_size(), _)) 662 Read(NotNull(), MessageFramer::MessageHeader::header_size(), _))
666 .WillOnce(DoAll(FillBufferFromString<0>(serialized_message), 663 .WillOnce(DoAll(FillBufferFromString<0>(serialized_message),
667 Return(MessageFramer::MessageHeader::header_size()))) 664 Return(MessageFramer::MessageHeader::header_size())))
668 .RetiresOnSaturation(); 665 .RetiresOnSaturation();
669 // Read bytes [4, n]. 666 // Read bytes [4, n].
670 EXPECT_CALL(mock_socket_, 667 EXPECT_CALL(mock_socket_,
671 Read(NotNull(), 668 Read(NotNull(),
672 serialized_message.size() - 669 serialized_message.size() -
673 MessageFramer::MessageHeader::header_size(), 670 MessageFramer::MessageHeader::header_size(),
674 _)) 671 _))
675 .WillOnce(DoAll(FillBufferFromString<0>(serialized_message.substr( 672 .WillOnce(DoAll(FillBufferFromString<0>(serialized_message.substr(
676 MessageFramer::MessageHeader::header_size(), 673 MessageFramer::MessageHeader::header_size(),
677 serialized_message.size() - 674 serialized_message.size() -
678 MessageFramer::MessageHeader::header_size() - 1)), 675 MessageFramer::MessageHeader::header_size() - 1)),
679 Return(serialized_message.size() - 676 Return(serialized_message.size() -
680 MessageFramer::MessageHeader::header_size()))) 677 MessageFramer::MessageHeader::header_size())))
681 .RetiresOnSaturation(); 678 .RetiresOnSaturation();
682 EXPECT_CALL(*delegate_, OnError(ChannelError::INVALID_MESSAGE)); 679 EXPECT_CALL(*delegate_, OnError(ChannelError::INVALID_MESSAGE));
683 transport_->Start(); 680 transport_->Start();
684 } 681 }
685 } // namespace cast_channel 682 } // namespace cast_channel
686 } // namespace api
687 } // namespace extensions
OLDNEW
« no previous file with comments | « components/cast_channel/cast_transport.cc ('k') | components/cast_channel/keep_alive_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698