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