xref: /aosp_15_r20/external/cronet/base/system/sys_info_mac_unittest.mm (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1// Copyright 2023 The Chromium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/system/sys_info.h"
6
7#include <memory>
8
9#include "testing/gtest/include/gtest/gtest.h"
10
11namespace base {
12
13namespace {
14
15using SysInfoMacTest = testing::Test;
16
17TEST_F(SysInfoMacTest, SplitHardwareModelName) {
18  std::optional<SysInfo::HardwareModelNameSplit> split_name =
19      SysInfo::SplitHardwareModelNameDoNotUse("");
20  EXPECT_EQ(std::nullopt, split_name);
21
22  split_name = SysInfo::SplitHardwareModelNameDoNotUse("FooBar");
23  EXPECT_EQ(std::nullopt, split_name);
24
25  split_name = SysInfo::SplitHardwareModelNameDoNotUse("BarFoo77");
26  EXPECT_EQ(std::nullopt, split_name);
27
28  split_name = SysInfo::SplitHardwareModelNameDoNotUse("MacPro4,1");
29  EXPECT_EQ("MacPro", split_name.value().category);
30  EXPECT_EQ(4, split_name.value().model);
31  EXPECT_EQ(1, split_name.value().variant);
32
33  split_name = SysInfo::SplitHardwareModelNameDoNotUse("MacBookPro6,2");
34  EXPECT_EQ("MacBookPro", split_name.value().category);
35  EXPECT_EQ(6, split_name.value().model);
36  EXPECT_EQ(2, split_name.value().variant);
37}
38
39}  // namespace
40
41}  // namespace base
42