| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "blimp/net/blimp_connection.h" | 5 #include "blimp/net/blimp_connection.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 connection_.reset(new BlimpConnection( | 40 connection_.reset(new BlimpConnection( |
| 41 base::WrapUnique(new MockPacketReader), std::move(writer))); | 41 base::WrapUnique(new MockPacketReader), std::move(writer))); |
| 42 connection_->AddConnectionErrorObserver(&error_observer1_); | 42 connection_->AddConnectionErrorObserver(&error_observer1_); |
| 43 connection_->AddConnectionErrorObserver(&error_observer2_); | 43 connection_->AddConnectionErrorObserver(&error_observer2_); |
| 44 connection_->AddConnectionErrorObserver(&error_observer3_); | 44 connection_->AddConnectionErrorObserver(&error_observer3_); |
| 45 connection_->RemoveConnectionErrorObserver(&error_observer3_); | 45 connection_->RemoveConnectionErrorObserver(&error_observer3_); |
| 46 } | 46 } |
| 47 | 47 |
| 48 ~BlimpConnectionTest() override {} | 48 ~BlimpConnectionTest() override {} |
| 49 | 49 |
| 50 void DropConnection() { connection_.reset(); } |
| 51 |
| 50 protected: | 52 protected: |
| 51 std::unique_ptr<BlimpMessage> CreateInputMessage() { | 53 std::unique_ptr<BlimpMessage> CreateInputMessage() { |
| 52 InputMessage* input; | 54 InputMessage* input; |
| 53 return CreateBlimpMessage(&input); | 55 return CreateBlimpMessage(&input); |
| 54 } | 56 } |
| 55 | 57 |
| 56 std::unique_ptr<BlimpMessage> CreateControlMessage() { | 58 std::unique_ptr<BlimpMessage> CreateControlMessage() { |
| 57 TabControlMessage* control; | 59 TabControlMessage* control; |
| 58 return CreateBlimpMessage(&control); | 60 return CreateBlimpMessage(&control); |
| 59 } | 61 } |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 base::ResetAndReturn(&write_packet_cb).Run(net::OK); | 129 base::ResetAndReturn(&write_packet_cb).Run(net::OK); |
| 128 EXPECT_EQ(net::OK, complete_cb_1.WaitForResult()); | 130 EXPECT_EQ(net::OK, complete_cb_1.WaitForResult()); |
| 129 | 131 |
| 130 net::TestCompletionCallback complete_cb_2; | 132 net::TestCompletionCallback complete_cb_2; |
| 131 sender->ProcessMessage(CreateControlMessage(), | 133 sender->ProcessMessage(CreateControlMessage(), |
| 132 complete_cb_2.callback()); | 134 complete_cb_2.callback()); |
| 133 base::ResetAndReturn(&write_packet_cb).Run(net::ERR_FAILED); | 135 base::ResetAndReturn(&write_packet_cb).Run(net::ERR_FAILED); |
| 134 EXPECT_EQ(net::ERR_FAILED, complete_cb_2.WaitForResult()); | 136 EXPECT_EQ(net::ERR_FAILED, complete_cb_2.WaitForResult()); |
| 135 } | 137 } |
| 136 | 138 |
| 139 TEST_F(BlimpConnectionTest, DeleteHappyObserversAreOK) { |
| 140 net::CompletionCallback write_packet_cb; |
| 141 |
| 142 InSequence s; |
| 143 EXPECT_CALL(*writer_, |
| 144 WritePacket(BufferEqualsProto(*CreateInputMessage()), _)) |
| 145 .WillOnce(SaveArg<1>(&write_packet_cb)) |
| 146 .RetiresOnSaturation(); |
| 147 EXPECT_CALL(error_observer1_, OnConnectionError(net::ERR_FAILED)) |
| 148 .WillOnce(testing::InvokeWithoutArgs( |
| 149 this, &BlimpConnectionTest::DropConnection)); |
| 150 |
| 151 BlimpMessageProcessor* sender = connection_->GetOutgoingMessageProcessor(); |
| 152 net::TestCompletionCallback complete_cb_1; |
| 153 sender->ProcessMessage(CreateInputMessage(), |
| 154 complete_cb_1.callback()); |
| 155 base::ResetAndReturn(&write_packet_cb).Run(net::ERR_FAILED); |
| 156 EXPECT_EQ(net::ERR_FAILED, complete_cb_1.WaitForResult()); |
| 157 } |
| 158 |
| 137 } // namespace | 159 } // namespace |
| 138 } // namespace blimp | 160 } // namespace blimp |
| OLD | NEW |