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

Side by Side Diff: components/wifi_sync/wifi_config_delegate_chromeos_unittest.cc

Issue 836363002: wifi_sync: add WifiConfigDelegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@submit-4.1-network-state-helper
Patch Set: exercise callbacks in unit tests Created 5 years, 11 months 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
« no previous file with comments | « components/wifi_sync/wifi_config_delegate_chromeos.cc ('k') | no next file » | 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 2015 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 "components/wifi_sync/wifi_config_delegate_chromeos.h"
6
7 #include "base/macros.h"
8 #include "base/values.h"
9 #include "chromeos/network/managed_network_configuration_handler.h"
10 #include "components/wifi_sync/wifi_credential.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace wifi_sync {
14
15 namespace {
16 const char kSsid[] = "fake-ssid";
17 const char kSsidNonUtf8[] = "\xc0";
18 const char kUserHash[] = "fake-user-hash";
19 }
20
21 using chromeos::network_handler::DictionaryResultCallback;
erikwright (departed) 2015/01/16 14:42:15 #include chromeos/network/network_handler_callback
mukesh agrawal 2015/01/16 22:45:34 Done.
22 using chromeos::network_handler::ErrorCallback;
23 using chromeos::network_handler::StringResultCallback;
24
25 class FakeManagedNetworkConfigurationHandler
26 : public chromeos::ManagedNetworkConfigurationHandler {
27 public:
28 FakeManagedNetworkConfigurationHandler()
29 : create_configuration_called_(false) {
30 }
31
32 // ManagedNetworkConfigurationHandler implementation.
33 void AddObserver(chromeos::NetworkPolicyObserver* observer) override {
34 NOTIMPLEMENTED();
erikwright (departed) 2015/01/16 14:42:15 #include logging.h
mukesh agrawal 2015/01/16 22:45:34 Done.
35 }
36 void RemoveObserver(chromeos::NetworkPolicyObserver* observer) override {
37 NOTIMPLEMENTED();
38 }
39 void GetProperties(
40 const std::string& service_path,
41 const DictionaryResultCallback& callback,
42 const ErrorCallback& error_callback) override {
43 NOTIMPLEMENTED();
44 }
45 void GetManagedProperties(
46 const std::string& userhash,
47 const std::string& service_path,
48 const DictionaryResultCallback& callback,
49 const ErrorCallback& error_callback) override {
50 NOTIMPLEMENTED();
51 }
52 void SetProperties(
53 const std::string& service_path,
54 const base::DictionaryValue& user_settings,
55 const base::Closure& callback,
56 const ErrorCallback& error_callback) const override {
57 NOTIMPLEMENTED();
58 }
59 void CreateConfiguration(
60 const std::string& userhash,
61 const base::DictionaryValue& properties,
62 const StringResultCallback& callback,
63 const ErrorCallback& error_callback) const override {
64 EXPECT_FALSE(create_configuration_called_);
65 create_configuration_called_ = true;
66 create_configuration_success_callback_ = callback;
67 create_configuration_error_callback_ = error_callback;
68 }
69 void RemoveConfiguration(
70 const std::string& service_path,
71 const base::Closure& callback,
72 const ErrorCallback& error_callback) const override {
73 NOTIMPLEMENTED();
74 }
75 void SetPolicy(
76 ::onc::ONCSource onc_source,
77 const std::string& userhash,
78 const base::ListValue& network_configs_onc,
79 const base::DictionaryValue& global_network_config) override {
80 NOTIMPLEMENTED();
81 }
82 bool IsAnyPolicyApplicationRunning() const override {
83 NOTIMPLEMENTED();
84 return false;
85 }
86 const base::DictionaryValue* FindPolicyByGUID(
87 const std::string userhash,
88 const std::string& guid,
89 ::onc::ONCSource* onc_source) const override {
90 NOTIMPLEMENTED();
91 return nullptr;
92 }
93 const GuidToPolicyMap* GetNetworkConfigsFromPolicy(
94 const std::string& userhash) const override {
95 NOTIMPLEMENTED();
96 return nullptr;
97 }
98 const base::DictionaryValue* GetGlobalConfigFromPolicy(
99 const std::string& userhash) const override {
100 NOTIMPLEMENTED();
101 return nullptr;
102 }
103 const base::DictionaryValue* FindPolicyByGuidAndProfile(
104 const std::string& guid,
105 const std::string& profile_path) const override {
106 NOTIMPLEMENTED();
107 return nullptr;
108 }
109
110 bool create_configuration_called() const {
111 return create_configuration_called_;
112 }
113 const StringResultCallback& create_configuration_success_callback() const {
114 return create_configuration_success_callback_;
115 }
116 const ErrorCallback& create_configuration_error_callback() const {
117 return create_configuration_error_callback_;
118 }
119
120 private:
121 // Whether or not CreateConfiguration has been called on this fake.
122 mutable bool create_configuration_called_;
123 // The last |callback| passed to CreateConfiguration.
124 mutable StringResultCallback create_configuration_success_callback_;
125 // The last |error_callback| passed to CreateConfiguration.
126 mutable ErrorCallback create_configuration_error_callback_;
127 };
128
129 class WifiConfigDelegateChromeOsTest : public testing::Test {
130 protected:
131 WifiConfigDelegateChromeOsTest()
132 : fake_managed_network_configuration_handler_(
133 new FakeManagedNetworkConfigurationHandler()) {
134 config_delegate_.reset(
135 new WifiConfigDelegateChromeOs(
136 kUserHash,
137 fake_managed_network_configuration_handler_.get()));
138 }
139
140 // Wrapper for WifiConfigDelegateChromeOs::AddToLocalNetworks.
141 void AddToLocalNetworks(const WifiCredential& network_credential) {
142 config_delegate_->AddToLocalNetworks(network_credential);
143 }
144
145 // Returns a new WifiCredential constructed from the given parameters.
146 WifiCredential MakeCredential(const std::string& ssid,
147 WifiSecurityClass security_class,
148 const std::string& passphrase) {
149 scoped_ptr<WifiCredential> credential =
150 WifiCredential::Create(
151 WifiCredential::MakeSsidBytesForTest(ssid),
152 security_class,
153 passphrase);
154 CHECK(credential);
155 return *credential;
156 }
157
158 // Runs the last |callback| passed to CreateConfiguration, unless
159 // that |callback| is null.
160 void RunCreateConfigurationSuccessCallback() {
161 const char new_service_path[] = "/service/0";
162 if (!create_configuration_success_callback().is_null()) {
erikwright (departed) 2015/01/16 14:42:15 nit: braces not required.
mukesh agrawal 2015/01/16 22:45:34 Done.
163 create_configuration_success_callback().Run(new_service_path);
164 }
165 }
166
167 // Returns whether or not CreateConfiguration has been called
168 // on |fake_managed_network_configuration_handler_|.
169 size_t create_configuration_called() const {
170 return fake_managed_network_configuration_handler_
171 ->create_configuration_called();
172 }
173
174 // Returns the last |callback| passed to the CreateConfiguration
175 // method of |fake_managed_network_configuration_handler_|.
176 const StringResultCallback& create_configuration_success_callback() const {
erikwright (departed) 2015/01/16 14:42:15 nit: this accessor is not required since you only
mukesh agrawal 2015/01/16 22:45:34 Done.
177 return fake_managed_network_configuration_handler_
178 ->create_configuration_success_callback();
179 }
180
181 // Returns the last |error_callback| passed to the CreateConfiguration
182 // method of |fake_managed_network_configuration_handler_|.
183 const ErrorCallback& create_configuration_error_callback() const {
184 return fake_managed_network_configuration_handler_
185 ->create_configuration_error_callback();
186 }
187
188 private:
189 scoped_ptr<WifiConfigDelegateChromeOs> config_delegate_;
190 scoped_ptr<FakeManagedNetworkConfigurationHandler>
191 fake_managed_network_configuration_handler_;
192
193 DISALLOW_COPY_AND_ASSIGN(WifiConfigDelegateChromeOsTest);
194 };
195
196 TEST_F(WifiConfigDelegateChromeOsTest, AddToLocalNetworksOpen) {
197 AddToLocalNetworks(MakeCredential(kSsid, SECURITY_CLASS_NONE, ""));
198 EXPECT_TRUE(create_configuration_called());
erikwright (departed) 2015/01/16 14:42:15 nit: I would make all of these ASSERTs since runni
mukesh agrawal 2015/01/16 22:45:34 Done.
199 RunCreateConfigurationSuccessCallback();
200 }
201
202 TEST_F(WifiConfigDelegateChromeOsTest, AddToLocalNetworksWep) {
203 AddToLocalNetworks(MakeCredential(kSsid, SECURITY_CLASS_WEP, "abcde"));
204 EXPECT_TRUE(create_configuration_called());
205 RunCreateConfigurationSuccessCallback();
206 }
207
208 TEST_F(WifiConfigDelegateChromeOsTest, AddToLocalNetworksPsk) {
209 AddToLocalNetworks(
210 MakeCredential(kSsid, SECURITY_CLASS_PSK, "fake-psk-passphrase"));
211 EXPECT_TRUE(create_configuration_called());
212 RunCreateConfigurationSuccessCallback();
213 }
214
215 TEST_F(WifiConfigDelegateChromeOsTest, AddToLocalNetworksNonUtf8) {
216 AddToLocalNetworks(MakeCredential(kSsidNonUtf8, SECURITY_CLASS_PSK, ""));
217 // TODO(quiche): Change to EXPECT_TRUE, once we support non-UTF-8 SSIDs.
218 EXPECT_FALSE(create_configuration_called());
219 EXPECT_TRUE(create_configuration_success_callback().is_null());
erikwright (departed) 2015/01/16 14:42:15 nit: not required. You already verified that the m
mukesh agrawal 2015/01/16 22:45:34 Done.
220 }
221
222 TEST_F(WifiConfigDelegateChromeOsTest,
223 AddToLocalNetworksCreateConfigurationFailure) {
224 AddToLocalNetworks(MakeCredential(kSsid, SECURITY_CLASS_NONE, ""));
225 EXPECT_TRUE(create_configuration_called());
226 if (!create_configuration_error_callback().is_null()) {
227 create_configuration_error_callback().Run(
228 "Config.CreateConfiguration Failed",
229 make_scoped_ptr(new base::DictionaryValue()));
230 }
231 }
232
233 } // namespace wifi_sync
OLDNEW
« no previous file with comments | « components/wifi_sync/wifi_config_delegate_chromeos.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698