Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: chrome/browser/chromeos/cros/network_ui_data_unittest.cc

Issue 8728030: Infrastructure for accessing and manipulating network UI data. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Make clang happy. Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/chromeos/cros/network_ui_data.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
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/stringprintf.h"
6 #include "chrome/browser/chromeos/cros/network_library.h"
7 #include "chrome/browser/chromeos/cros/network_ui_data.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 namespace chromeos {
11
12 namespace {
13
14 // A mock network for testing. We really only need the ui_data() member.
15 class TestNetwork : public Network {
16 public:
17 TestNetwork()
18 : Network("wifi-network", TYPE_WIFI) {}
19 };
20
21 } // namespace
22
23 class NetworkUIDataTest : public testing::Test {
24 protected:
25 NetworkUIDataTest() {}
26
27 static void SetProperty(DictionaryValue* dict,
28 const char* property_key,
29 const char* controller,
30 base::Value* default_value) {
31 DictionaryValue* property_dict = new DictionaryValue();
32 if (controller) {
33 property_dict->SetString(NetworkPropertyUIData::kKeyController,
34 controller);
35 }
36 if (default_value) {
37 property_dict->Set(NetworkPropertyUIData::kKeyDefaultValue,
38 default_value);
39 }
40 dict->Set(base::StringPrintf("%s.%s",
41 NetworkUIData::kKeyProperties,
42 property_key),
43 property_dict);
44 }
45
46 static void CheckProperty(const DictionaryValue* dict,
47 const char* property_key,
48 const char* controller,
49 base::Value* default_value) {
50 DictionaryValue* property_dict;
51 std::string key = base::StringPrintf("%s.%s",
52 NetworkUIData::kKeyProperties,
53 property_key);
54 EXPECT_TRUE(dict->GetDictionary(key, &property_dict));
55 ASSERT_TRUE(property_dict);
56 std::string actual_controller;
57 EXPECT_TRUE(property_dict->GetString(NetworkPropertyUIData::kKeyController,
58 &actual_controller));
59 EXPECT_EQ(controller, actual_controller);
60 if (default_value) {
61 base::Value* actual_value = NULL;
62 EXPECT_TRUE(property_dict->Get(NetworkPropertyUIData::kKeyDefaultValue,
63 &actual_value));
64 EXPECT_TRUE(base::Value::Equals(default_value, actual_value));
65 }
66 }
67
68 TestNetwork network_;
69
70 DISALLOW_COPY_AND_ASSIGN(NetworkUIDataTest);
71 };
72
73 TEST_F(NetworkUIDataTest, ONCSource) {
74 network_.ui_data()->SetString(NetworkUIData::kKeyONCSource, "user_import");
75 EXPECT_EQ(NetworkUIData::ONC_SOURCE_USER_IMPORT,
76 NetworkUIData::GetONCSource(&network_));
77 EXPECT_FALSE(NetworkUIData::IsManaged(&network_));
78
79 network_.ui_data()->SetString(NetworkUIData::kKeyONCSource, "device_policy");
80 EXPECT_EQ(NetworkUIData::ONC_SOURCE_DEVICE_POLICY,
81 NetworkUIData::GetONCSource(&network_));
82 EXPECT_TRUE(NetworkUIData::IsManaged(&network_));
83
84 network_.ui_data()->SetString(NetworkUIData::kKeyONCSource, "user_policy");
85 EXPECT_EQ(NetworkUIData::ONC_SOURCE_USER_POLICY,
86 NetworkUIData::GetONCSource(&network_));
87 EXPECT_TRUE(NetworkUIData::IsManaged(&network_));
88 }
89
90 TEST_F(NetworkUIDataTest, ReadProperties) {
91 SetProperty(network_.ui_data(), NetworkUIData::kPropertyAutoConnect,
92 "policy", NULL);
93 SetProperty(network_.ui_data(), NetworkUIData::kPropertyPreferred,
94 "user", Value::CreateBooleanValue(true));
95 SetProperty(network_.ui_data(), NetworkUIData::kPropertyPassphrase,
96 NULL, Value::CreateIntegerValue(42));
97
98 NetworkPropertyUIData property_ui_data(&network_,
99 NetworkUIData::kPropertyAutoConnect);
100 EXPECT_TRUE(property_ui_data.managed());
101 EXPECT_FALSE(property_ui_data.recommended());
102 EXPECT_FALSE(property_ui_data.editable());
103 EXPECT_FALSE(property_ui_data.default_value());
104
105 property_ui_data.UpdateFromNetwork(&network_,
106 NetworkUIData::kPropertyPreferred);
107 EXPECT_FALSE(property_ui_data.managed());
108 EXPECT_TRUE(property_ui_data.recommended());
109 EXPECT_TRUE(property_ui_data.editable());
110 base::FundamentalValue expected_preferred(true);
111 EXPECT_TRUE(base::Value::Equals(&expected_preferred,
112 property_ui_data.default_value()));
113
114 property_ui_data.UpdateFromNetwork(&network_,
115 NetworkUIData::kPropertyPassphrase);
116 EXPECT_FALSE(property_ui_data.managed());
117 EXPECT_TRUE(property_ui_data.recommended());
118 EXPECT_TRUE(property_ui_data.editable());
119 base::FundamentalValue expected_passphrase(42);
120 EXPECT_TRUE(base::Value::Equals(&expected_passphrase,
121 property_ui_data.default_value()));
122
123 property_ui_data.UpdateFromNetwork(&network_,
124 NetworkUIData::kPropertySaveCredentials);
125 EXPECT_FALSE(property_ui_data.managed());
126 EXPECT_FALSE(property_ui_data.recommended());
127 EXPECT_TRUE(property_ui_data.editable());
128 EXPECT_FALSE(property_ui_data.default_value());
129 }
130
131 TEST_F(NetworkUIDataTest, WriteProperties) {
132 NetworkUIData ui_data_builder;
133 ui_data_builder.set_onc_source(NetworkUIData::ONC_SOURCE_USER_POLICY);
134 NetworkPropertyUIData auto_connect_ui_data(
135 NetworkPropertyUIData::CONTROLLER_USER,
136 base::Value::CreateBooleanValue(true));
137 ui_data_builder.SetProperty(NetworkUIData::kPropertyAutoConnect,
138 auto_connect_ui_data);
139 NetworkPropertyUIData preferred_ui_data(
140 NetworkPropertyUIData::CONTROLLER_POLICY,
141 base::Value::CreateBooleanValue(42));
142 ui_data_builder.SetProperty(NetworkUIData::kPropertyPreferred,
143 preferred_ui_data);
144 NetworkPropertyUIData passphrase_ui_data(
145 NetworkPropertyUIData::CONTROLLER_USER, NULL);
146 ui_data_builder.SetProperty(NetworkUIData::kPropertyPassphrase,
147 passphrase_ui_data);
148
149 DictionaryValue dict;
150 ui_data_builder.FillDictionary(&dict);
151
152 std::string onc_source;
153 EXPECT_TRUE(dict.GetString(NetworkUIData::kKeyONCSource, &onc_source));
154 EXPECT_EQ("user_policy", onc_source);
155 CheckProperty(&dict, NetworkUIData::kPropertyAutoConnect,
156 "user", base::Value::CreateBooleanValue(true));
157 CheckProperty(&dict, NetworkUIData::kPropertyPreferred,
158 "policy", base::Value::CreateBooleanValue(42));
159 CheckProperty(&dict, NetworkUIData::kPropertyPassphrase,
160 "user", NULL);
161 }
162
163 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/cros/network_ui_data.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698