forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdevice_attribute_api_browsertest.cc
121 lines (97 loc) · 4.38 KB
/
device_attribute_api_browsertest.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/device_api/device_attribute_api.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/chromeos/policy/core/device_policy_cros_browser_test.h"
#include "chromeos/system/fake_statistics_provider.h"
#include "content/public/test/browser_test.h"
namespace {
constexpr char kAnnotatedAssetId[] = "annotated_asset_id";
constexpr char kAnnotatedLocation[] = "annotated_location";
constexpr char kDirectoryApiId[] = "directory_api_id";
constexpr char kHostname[] = "hostname";
constexpr char kSerialNumber[] = "serial_number";
} // namespace
// This test class provides unset device policy values and statistic data used
// by device attributes APIs.
class DeviceAttributeAPIUnsetTest : public policy::DevicePolicyCrosBrowserTest {
public:
void SetUpInProcessBrowserTestFixture() override {
DevicePolicyCrosBrowserTest::SetUpInProcessBrowserTestFixture();
// Init machine statistic.
fake_statistics_provider_.SetMachineStatistic(
chromeos::system::kSerialNumberKeyForTest, std::string());
}
private:
chromeos::system::ScopedFakeStatisticsProvider fake_statistics_provider_;
};
IN_PROC_BROWSER_TEST_F(DeviceAttributeAPIUnsetTest, AllAttributes) {
device_attribute_api::GetDirectoryId(
base::BindOnce([](blink::mojom::DeviceAttributeResultPtr result) {
EXPECT_FALSE(result->get_attribute().has_value());
}));
device_attribute_api::GetAnnotatedAssetId(
base::BindOnce([](blink::mojom::DeviceAttributeResultPtr result) {
EXPECT_FALSE(result->get_attribute().has_value());
}));
device_attribute_api::GetAnnotatedLocation(
base::BindOnce([](blink::mojom::DeviceAttributeResultPtr result) {
EXPECT_FALSE(result->get_attribute().has_value());
}));
device_attribute_api::GetSerialNumber(
base::BindOnce([](blink::mojom::DeviceAttributeResultPtr result) {
EXPECT_FALSE(result->get_attribute().has_value());
}));
device_attribute_api::GetHostname(
base::BindOnce([](blink::mojom::DeviceAttributeResultPtr result) {
EXPECT_FALSE(result->get_attribute().has_value());
}));
base::RunLoop().RunUntilIdle();
}
// This test class provides regular device policy values and statistic data used
// by device attributes APIs.
class DeviceAttributeAPITest : public policy::DevicePolicyCrosBrowserTest {
public:
void SetUpInProcessBrowserTestFixture() override {
DevicePolicyCrosBrowserTest::SetUpInProcessBrowserTestFixture();
// Init the device policy.
device_policy()->SetDefaultSigningKey();
device_policy()->policy_data().set_annotated_asset_id(kAnnotatedAssetId);
device_policy()->policy_data().set_annotated_location(kAnnotatedLocation);
device_policy()->policy_data().set_directory_api_id(kDirectoryApiId);
enterprise_management::NetworkHostnameProto* proto =
device_policy()->payload().mutable_network_hostname();
proto->set_device_hostname_template(kHostname);
device_policy()->Build();
RefreshDevicePolicy();
// Init machine statistic.
fake_statistics_provider_.SetMachineStatistic(
chromeos::system::kSerialNumberKeyForTest, kSerialNumber);
}
private:
chromeos::system::ScopedFakeStatisticsProvider fake_statistics_provider_;
};
IN_PROC_BROWSER_TEST_F(DeviceAttributeAPITest, AllAttributes) {
device_attribute_api::GetDirectoryId(
base::BindOnce([](blink::mojom::DeviceAttributeResultPtr result) {
EXPECT_EQ(result->get_attribute(), kDirectoryApiId);
}));
device_attribute_api::GetAnnotatedAssetId(
base::BindOnce([](blink::mojom::DeviceAttributeResultPtr result) {
EXPECT_EQ(result->get_attribute(), kAnnotatedAssetId);
}));
device_attribute_api::GetAnnotatedLocation(
base::BindOnce([](blink::mojom::DeviceAttributeResultPtr result) {
EXPECT_EQ(result->get_attribute(), kAnnotatedLocation);
}));
device_attribute_api::GetHostname(
base::BindOnce([](blink::mojom::DeviceAttributeResultPtr result) {
EXPECT_EQ(result->get_attribute(), kHostname);
}));
device_attribute_api::GetSerialNumber(
base::BindOnce([](blink::mojom::DeviceAttributeResultPtr result) {
EXPECT_EQ(result->get_attribute(), kSerialNumber);
}));
base::RunLoop().RunUntilIdle();
}