1 //
2 // Copyright (C) 2015 The Android Open Source Project
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 #include "update_engine/metrics_utils.h"
18
19 #include <gtest/gtest.h>
20
21 namespace chromeos_update_engine {
22 namespace metrics_utils {
23
24 class MetricsUtilsTest : public ::testing::Test {};
25
TEST(MetricsUtilsTest,GetConnectionType)26 TEST(MetricsUtilsTest, GetConnectionType) {
27 // Check that expected combinations map to the right value.
28 EXPECT_EQ(metrics::ConnectionType::kUnknown,
29 GetConnectionType(ConnectionType::kUnknown,
30 ConnectionTethering::kUnknown));
31 EXPECT_EQ(metrics::ConnectionType::kDisconnected,
32 GetConnectionType(ConnectionType::kDisconnected,
33 ConnectionTethering::kUnknown));
34 EXPECT_EQ(metrics::ConnectionType::kEthernet,
35 GetConnectionType(ConnectionType::kEthernet,
36 ConnectionTethering::kUnknown));
37 EXPECT_EQ(
38 metrics::ConnectionType::kWifi,
39 GetConnectionType(ConnectionType::kWifi, ConnectionTethering::kUnknown));
40 EXPECT_EQ(metrics::ConnectionType::kCellular,
41 GetConnectionType(ConnectionType::kCellular,
42 ConnectionTethering::kUnknown));
43 EXPECT_EQ(metrics::ConnectionType::kTetheredEthernet,
44 GetConnectionType(ConnectionType::kEthernet,
45 ConnectionTethering::kConfirmed));
46 EXPECT_EQ(metrics::ConnectionType::kTetheredWifi,
47 GetConnectionType(ConnectionType::kWifi,
48 ConnectionTethering::kConfirmed));
49
50 // Ensure that we don't report tethered ethernet unless it's confirmed.
51 EXPECT_EQ(metrics::ConnectionType::kEthernet,
52 GetConnectionType(ConnectionType::kEthernet,
53 ConnectionTethering::kNotDetected));
54 EXPECT_EQ(metrics::ConnectionType::kEthernet,
55 GetConnectionType(ConnectionType::kEthernet,
56 ConnectionTethering::kSuspected));
57 EXPECT_EQ(metrics::ConnectionType::kEthernet,
58 GetConnectionType(ConnectionType::kEthernet,
59 ConnectionTethering::kUnknown));
60
61 // Ditto for tethered wifi.
62 EXPECT_EQ(metrics::ConnectionType::kWifi,
63 GetConnectionType(ConnectionType::kWifi,
64 ConnectionTethering::kNotDetected));
65 EXPECT_EQ(metrics::ConnectionType::kWifi,
66 GetConnectionType(ConnectionType::kWifi,
67 ConnectionTethering::kSuspected));
68 EXPECT_EQ(
69 metrics::ConnectionType::kWifi,
70 GetConnectionType(ConnectionType::kWifi, ConnectionTethering::kUnknown));
71 }
72
73 } // namespace metrics_utils
74 } // namespace chromeos_update_engine
75