[go: nahoru, domu]

blob: b9d8dd6b9d2b64b31239837d754bf8bf13157483 [file] [log] [blame]
Avi Drissmane4714ce92022-09-12 21:41:581// Copyright 2022 The Chromium Authors
Fabian Sommer7b0c7d52022-03-07 11:00:292// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chromeos/constants/devicetype.h"
6
7#include "base/command_line.h"
8#include "base/test/task_environment.h"
9#include "build/build_config.h"
10#include "build/chromeos_buildflags.h"
11#include "testing/gtest/include/gtest/gtest.h"
12
13#if BUILDFLAG(IS_CHROMEOS_LACROS)
14#include "chromeos/crosapi/mojom/crosapi.mojom.h"
Fabian Sommer7b0c7d52022-03-07 11:00:2915#include "chromeos/lacros/lacros_test_helper.h"
Eriko Kurimoto72e9e372022-04-20 17:00:2916#include "chromeos/startup/browser_init_params.h"
Fabian Sommer7b0c7d52022-03-07 11:00:2917#endif
18
19namespace chromeos {
20
21#if BUILDFLAG(IS_CHROMEOS_ASH)
22TEST(DeviceTypeTest, GetDeviceTypeAsh) {
23 auto* command_line = base::CommandLine::ForCurrentProcess();
24 {
25 command_line->InitFromArgv({"", "--form-factor=CHROMEBOOK"});
26 EXPECT_EQ(chromeos::GetDeviceType(), chromeos::DeviceType::kChromebook);
27 }
28 {
Liam Flaherty210a22452022-04-27 03:10:1429 command_line->InitFromArgv({"", "--form-factor=CHROMESLATE"});
30 EXPECT_EQ(chromeos::GetDeviceType(), chromeos::DeviceType::kChromebook);
31 }
32 {
33 command_line->InitFromArgv({"", "--form-factor=CLAMSHELL"});
34 EXPECT_EQ(chromeos::GetDeviceType(), chromeos::DeviceType::kChromebook);
35 }
36 {
37 command_line->InitFromArgv({"", "--form-factor=CONVERTIBLE"});
38 EXPECT_EQ(chromeos::GetDeviceType(), chromeos::DeviceType::kChromebook);
39 }
40 {
41 command_line->InitFromArgv({"", "--form-factor=DETACHABLE"});
42 EXPECT_EQ(chromeos::GetDeviceType(), chromeos::DeviceType::kChromebook);
43 }
44 {
Fabian Sommer7b0c7d52022-03-07 11:00:2945 command_line->InitFromArgv({"", "--form-factor=CHROMEBASE"});
46 EXPECT_EQ(chromeos::GetDeviceType(), chromeos::DeviceType::kChromebase);
47 }
48 {
49 command_line->InitFromArgv({"", "--form-factor=CHROMEBIT"});
50 EXPECT_EQ(chromeos::GetDeviceType(), chromeos::DeviceType::kChromebit);
51 }
52 {
53 command_line->InitFromArgv({"", "--form-factor=CHROMEBOX"});
54 EXPECT_EQ(chromeos::GetDeviceType(), chromeos::DeviceType::kChromebox);
55 }
56 {
James Cook223cb9c2023-12-21 00:11:1057 command_line->InitFromArgv({"", "--form-factor=OTHER"});
58 EXPECT_EQ(chromeos::GetDeviceType(), chromeos::DeviceType::kUnknown);
59 }
60 {
Fabian Sommer7b0c7d52022-03-07 11:00:2961 command_line->InitFromArgv({"", ""});
62 EXPECT_EQ(chromeos::GetDeviceType(), chromeos::DeviceType::kUnknown);
63 }
64}
65#endif
66
67#if BUILDFLAG(IS_CHROMEOS_LACROS)
68TEST(DeviceTypeTest, GetDeviceTypeLacros) {
69 base::test::TaskEnvironment task_environment;
Fabian Sommer7b0c7d52022-03-07 11:00:2970 {
71 auto params = crosapi::mojom::BrowserInitParams::New();
72 params->device_type =
73 crosapi::mojom::BrowserInitParams::DeviceType::kChromebook;
Eriko Kurimoto72e9e372022-04-20 17:00:2974 chromeos::BrowserInitParams::SetInitParamsForTests(std::move(params));
Fabian Sommer7b0c7d52022-03-07 11:00:2975 EXPECT_EQ(GetDeviceType(), chromeos::DeviceType::kChromebook);
76 }
77 {
78 auto params = crosapi::mojom::BrowserInitParams::New();
79 params->device_type =
80 crosapi::mojom::BrowserInitParams::DeviceType::kChromebase;
Eriko Kurimoto72e9e372022-04-20 17:00:2981 chromeos::BrowserInitParams::SetInitParamsForTests(std::move(params));
Fabian Sommer7b0c7d52022-03-07 11:00:2982 EXPECT_EQ(GetDeviceType(), chromeos::DeviceType::kChromebase);
83 }
84 {
85 auto params = crosapi::mojom::BrowserInitParams::New();
86 params->device_type =
87 crosapi::mojom::BrowserInitParams::DeviceType::kChromebit;
Eriko Kurimoto72e9e372022-04-20 17:00:2988 chromeos::BrowserInitParams::SetInitParamsForTests(std::move(params));
Fabian Sommer7b0c7d52022-03-07 11:00:2989 EXPECT_EQ(GetDeviceType(), chromeos::DeviceType::kChromebit);
90 }
91 {
92 auto params = crosapi::mojom::BrowserInitParams::New();
93 params->device_type =
94 crosapi::mojom::BrowserInitParams::DeviceType::kChromebox;
Eriko Kurimoto72e9e372022-04-20 17:00:2995 chromeos::BrowserInitParams::SetInitParamsForTests(std::move(params));
Fabian Sommer7b0c7d52022-03-07 11:00:2996 EXPECT_EQ(GetDeviceType(), chromeos::DeviceType::kChromebox);
97 }
98 {
99 auto params = crosapi::mojom::BrowserInitParams::New();
100 params->device_type =
101 crosapi::mojom::BrowserInitParams::DeviceType::kUnknown;
Eriko Kurimoto72e9e372022-04-20 17:00:29102 chromeos::BrowserInitParams::SetInitParamsForTests(std::move(params));
Fabian Sommer7b0c7d52022-03-07 11:00:29103 EXPECT_EQ(GetDeviceType(), chromeos::DeviceType::kUnknown);
104 }
105 {
106 // When device_type is not set, GetDeviceType() should return kUnknown.
107 auto params = crosapi::mojom::BrowserInitParams::New();
Eriko Kurimoto72e9e372022-04-20 17:00:29108 chromeos::BrowserInitParams::SetInitParamsForTests(std::move(params));
Fabian Sommer7b0c7d52022-03-07 11:00:29109 EXPECT_EQ(GetDeviceType(), chromeos::DeviceType::kUnknown);
110 }
111}
112#endif
113
114} // namespace chromeos