blob: 41e4caeac49bd81958e6ee686b5e92957115c64a [file] [log] [blame]
Alex Deymo38429cf2015-11-11 18:27:22 -08001//
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
Alex Deymoa2591792015-11-17 00:39:40 -030021#include "update_engine/common/fake_prefs.h"
Alex Deymoa2591792015-11-17 00:39:40 -030022
Alex Deymo38429cf2015-11-11 18:27:22 -080023namespace chromeos_update_engine {
24namespace metrics_utils {
25
26class MetricsUtilsTest : public ::testing::Test {};
27
28TEST(MetricsUtilsTest, GetConnectionType) {
29 // Check that expected combinations map to the right value.
30 EXPECT_EQ(metrics::ConnectionType::kUnknown,
Sen Jiang255e22b2016-05-20 16:15:29 -070031 GetConnectionType(ConnectionType::kUnknown,
32 ConnectionTethering::kUnknown));
Colin Howesc9e98d62018-09-18 10:35:20 -070033 EXPECT_EQ(metrics::ConnectionType::kDisconnected,
34 GetConnectionType(ConnectionType::kDisconnected,
35 ConnectionTethering::kUnknown));
Alex Deymo38429cf2015-11-11 18:27:22 -080036 EXPECT_EQ(metrics::ConnectionType::kEthernet,
Sen Jiang255e22b2016-05-20 16:15:29 -070037 GetConnectionType(ConnectionType::kEthernet,
38 ConnectionTethering::kUnknown));
Amin Hassani7cc8bb02019-01-14 16:29:47 -080039 EXPECT_EQ(
40 metrics::ConnectionType::kWifi,
41 GetConnectionType(ConnectionType::kWifi, ConnectionTethering::kUnknown));
Alex Deymo38429cf2015-11-11 18:27:22 -080042 EXPECT_EQ(metrics::ConnectionType::kCellular,
Sen Jiang255e22b2016-05-20 16:15:29 -070043 GetConnectionType(ConnectionType::kCellular,
44 ConnectionTethering::kUnknown));
Alex Deymo38429cf2015-11-11 18:27:22 -080045 EXPECT_EQ(metrics::ConnectionType::kTetheredEthernet,
Sen Jiang255e22b2016-05-20 16:15:29 -070046 GetConnectionType(ConnectionType::kEthernet,
47 ConnectionTethering::kConfirmed));
Alex Deymo38429cf2015-11-11 18:27:22 -080048 EXPECT_EQ(metrics::ConnectionType::kTetheredWifi,
Sen Jiang255e22b2016-05-20 16:15:29 -070049 GetConnectionType(ConnectionType::kWifi,
50 ConnectionTethering::kConfirmed));
Alex Deymo38429cf2015-11-11 18:27:22 -080051
52 // Ensure that we don't report tethered ethernet unless it's confirmed.
53 EXPECT_EQ(metrics::ConnectionType::kEthernet,
Sen Jiang255e22b2016-05-20 16:15:29 -070054 GetConnectionType(ConnectionType::kEthernet,
55 ConnectionTethering::kNotDetected));
Alex Deymo38429cf2015-11-11 18:27:22 -080056 EXPECT_EQ(metrics::ConnectionType::kEthernet,
Sen Jiang255e22b2016-05-20 16:15:29 -070057 GetConnectionType(ConnectionType::kEthernet,
58 ConnectionTethering::kSuspected));
Alex Deymo38429cf2015-11-11 18:27:22 -080059 EXPECT_EQ(metrics::ConnectionType::kEthernet,
Sen Jiang255e22b2016-05-20 16:15:29 -070060 GetConnectionType(ConnectionType::kEthernet,
61 ConnectionTethering::kUnknown));
Alex Deymo38429cf2015-11-11 18:27:22 -080062
63 // Ditto for tethered wifi.
64 EXPECT_EQ(metrics::ConnectionType::kWifi,
Sen Jiang255e22b2016-05-20 16:15:29 -070065 GetConnectionType(ConnectionType::kWifi,
66 ConnectionTethering::kNotDetected));
Alex Deymo38429cf2015-11-11 18:27:22 -080067 EXPECT_EQ(metrics::ConnectionType::kWifi,
Sen Jiang255e22b2016-05-20 16:15:29 -070068 GetConnectionType(ConnectionType::kWifi,
69 ConnectionTethering::kSuspected));
Amin Hassani7cc8bb02019-01-14 16:29:47 -080070 EXPECT_EQ(
71 metrics::ConnectionType::kWifi,
72 GetConnectionType(ConnectionType::kWifi, ConnectionTethering::kUnknown));
Alex Deymo38429cf2015-11-11 18:27:22 -080073}
74
Alex Deymo38429cf2015-11-11 18:27:22 -080075} // namespace metrics_utils
76} // namespace chromeos_update_engine