| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "net/quic/network_connection.h" |
| |
| #include "net/base/network_change_notifier.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace net { |
| namespace test { |
| |
| class NetworkConnectionPeer { |
| public: |
| static NetworkChangeNotifier::ConnectionType connection_type( |
| const NetworkConnection& network_connection) { |
| return network_connection.connection_type_; |
| } |
| static void set_connection_type(NetworkConnection& network_connection, |
| NetworkChangeNotifier::ConnectionType type) { |
| network_connection.connection_type_ = type; |
| } |
| |
| static const char* connection_description( |
| const NetworkConnection& network_connection) { |
| return network_connection.connection_description_; |
| } |
| static void set_connection_description(NetworkConnection& network_connection, |
| const char* description) { |
| network_connection.connection_description_ = description; |
| } |
| }; |
| |
| // Test NetworkConnection(). |
| class NetworkConnectionTest : public testing::Test { |
| protected: |
| void CheckNetworkConnectionDescription() { |
| NetworkChangeNotifier::ConnectionType type = |
| NetworkChangeNotifier::GetConnectionType(); |
| const char* description = network_connection_.GetDescription(); |
| // Verify GetDescription() updated the cached data. |
| EXPECT_EQ(NetworkConnectionPeer::connection_type(network_connection_), |
| type); |
| EXPECT_EQ( |
| NetworkConnectionPeer::connection_description(network_connection_), |
| description); |
| |
| if (type != NetworkChangeNotifier::CONNECTION_WIFI) |
| EXPECT_EQ(description, |
| NetworkChangeNotifier::ConnectionTypeToString(type)); |
| else |
| EXPECT_NE(nullptr, network_connection_.GetDescription()); |
| } |
| |
| NetworkConnection network_connection_; |
| }; |
| |
| TEST_F(NetworkConnectionTest, GetDescription) { |
| const char* description = network_connection_.GetDescription(); |
| |
| // Set connection description to nullptr. |
| NetworkConnectionPeer::set_connection_description(network_connection_, |
| nullptr); |
| CheckNetworkConnectionDescription(); |
| |
| // Set connection type to a junk value. |
| NetworkConnectionPeer::set_connection_type( |
| network_connection_, NetworkChangeNotifier::CONNECTION_LAST); |
| CheckNetworkConnectionDescription(); |
| |
| EXPECT_EQ(description, network_connection_.GetDescription()); |
| } |
| |
| TEST_F(NetworkConnectionTest, Clear) { |
| CheckNetworkConnectionDescription(); |
| network_connection_.Clear(); |
| CheckNetworkConnectionDescription(); |
| } |
| |
| } // namespace test |
| } // namespace net |