| // Copyright 2016 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/nqe/effective_connection_type.h" |
| |
| #include <string> |
| |
| #include "base/optional.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace net { |
| |
| namespace { |
| |
| // Tests that the effective connection type is converted correctly to a |
| // descriptive string name, and vice-versa. |
| TEST(EffectiveConnectionTypeTest, NameConnectionTypeConversion) { |
| // Verify GetEffectiveConnectionTypeForName() returns an unset value when an |
| // invalid effective connection type name is provided. |
| EXPECT_FALSE( |
| GetEffectiveConnectionTypeForName("InvalidEffectiveConnectionTypeName")); |
| EXPECT_FALSE(GetEffectiveConnectionTypeForName(std::string())); |
| |
| for (size_t i = 0; i < EFFECTIVE_CONNECTION_TYPE_LAST; ++i) { |
| const EffectiveConnectionType effective_connection_type = |
| static_cast<EffectiveConnectionType>(i); |
| std::string connection_type_name = std::string( |
| GetNameForEffectiveConnectionType(effective_connection_type)); |
| EXPECT_FALSE(connection_type_name.empty()); |
| |
| if (effective_connection_type != EFFECTIVE_CONNECTION_TYPE_SLOW_2G) { |
| // For all effective connection types except Slow2G, |
| // DeprecatedGetNameForEffectiveConnectionType should return the same |
| // name as GetNameForEffectiveConnectionType. |
| EXPECT_EQ(connection_type_name, |
| DeprecatedGetNameForEffectiveConnectionType( |
| effective_connection_type)); |
| } |
| |
| EXPECT_EQ(effective_connection_type, |
| GetEffectiveConnectionTypeForName(connection_type_name)); |
| } |
| } |
| // Tests that the Slow 2G effective connection type is converted correctly to a |
| // descriptive string name, and vice-versa. |
| TEST(EffectiveConnectionTypeTest, Slow2GTypeConversion) { |
| // GetEffectiveConnectionTypeForName should return Slow2G as effective |
| // connection type for both the deprecated and the current string |
| // representation. |
| base::Optional<EffectiveConnectionType> type = |
| GetEffectiveConnectionTypeForName("Slow2G"); |
| EXPECT_EQ(EFFECTIVE_CONNECTION_TYPE_SLOW_2G, type.value()); |
| |
| type = GetEffectiveConnectionTypeForName("Slow-2G"); |
| EXPECT_EQ(EFFECTIVE_CONNECTION_TYPE_SLOW_2G, type.value()); |
| |
| EXPECT_EQ("Slow-2G", std::string(GetNameForEffectiveConnectionType( |
| EFFECTIVE_CONNECTION_TYPE_SLOW_2G))); |
| EXPECT_EQ("Slow2G", std::string(DeprecatedGetNameForEffectiveConnectionType( |
| EFFECTIVE_CONNECTION_TYPE_SLOW_2G))); |
| } |
| |
| } // namespace |
| |
| } // namespace net |