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

Side by Side Diff: chromeos/network/network_state_unittest.cc

Issue 21030006: NetworkState cleanup, pass properties to InitialPropertiesReceived (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 4 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chromeos/network/network_state.h" 5 #include "chromeos/network/network_state.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/values.h" 10 #include "base/values.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 #include "third_party/cros_system_api/dbus/service_constants.h" 12 #include "third_party/cros_system_api/dbus/service_constants.h"
13 13
14 namespace chromeos { 14 namespace chromeos {
15 15
16 namespace { 16 namespace {
17 17
18 class TestStringValue : public base::Value {
pneubeck (no reviews) 2013/07/30 09:42:53 As I guessed, this was for utf8 errors testing. No
19 public:
20 explicit TestStringValue(const std::string& in_value)
21 : base::Value(TYPE_STRING),
22 value_(in_value) {
23 }
24
25 virtual ~TestStringValue() {
26 }
27
28 // Overridden from Value:
29 virtual bool GetAsString(std::string* out_value) const OVERRIDE {
30 if (out_value)
31 *out_value = value_;
32 return true;
33 }
34
35 virtual TestStringValue* DeepCopy() const OVERRIDE {
36 return new TestStringValue(value_);
37 }
38
39 virtual bool Equals(const Value* other) const OVERRIDE {
40 if (other->GetType() != GetType())
41 return false;
42 std::string lhs, rhs;
43 return GetAsString(&lhs) && other->GetAsString(&rhs) && lhs == rhs;
44 }
45
46 private:
47 std::string value_;
48 };
49
50 class NetworkStateTest : public testing::Test { 18 class NetworkStateTest : public testing::Test {
51 public: 19 public:
52 NetworkStateTest() : network_state_("test_path") { 20 NetworkStateTest() : network_state_("test_path") {
53 } 21 }
54 22
55 protected: 23 protected:
56 bool SetStringProperty(const std::string& key, const std::string& value) { 24 bool SetStringProperty(const std::string& key, const std::string& value) {
57 if (!network_state_.PropertyChanged(key, TestStringValue(value))) 25 bool res = network_state_.PropertyChanged(key, StringValue(value));
58 return false; 26 properties_.SetStringWithoutPathExpansion(key, value);
59 network_state_.InitialPropertiesReceived(); 27 return res;
60 return true; 28 }
29
30 bool SignalInitialPropertiesReceived() {
31 return network_state_.InitialPropertiesReceived(properties_);
61 } 32 }
62 33
63 NetworkState network_state_; 34 NetworkState network_state_;
64 35
65 private: 36 private:
37 base::DictionaryValue properties_;
38
66 DISALLOW_COPY_AND_ASSIGN(NetworkStateTest); 39 DISALLOW_COPY_AND_ASSIGN(NetworkStateTest);
67 }; 40 };
68 41
69 } // namespace 42 } // namespace
70 43
71 // Seting kNameProperty should set network name after call to 44 // Seting kNameProperty should set network name after call to
72 // InitialPropertiesReceived() in SetStringProperty(). 45 // InitialPropertiesReceived() in SetStringProperty().
73 TEST_F(NetworkStateTest, SsidAscii) { 46 TEST_F(NetworkStateTest, SsidAscii) {
74 std::string wifi_setname = "SSID TEST"; 47 std::string wifi_setname = "SSID TEST";
75 std::string wifi_setname_result = "SSID TEST"; 48 std::string wifi_setname_result = "SSID TEST";
(...skipping 14 matching lines...) Expand all
90 std::string wifi_utf8_result = "UTF-8 \xE3\x81\x82\xE3\x81\x84\xE3\x81\x86"; 63 std::string wifi_utf8_result = "UTF-8 \xE3\x81\x82\xE3\x81\x84\xE3\x81\x86";
91 EXPECT_TRUE(SetStringProperty(flimflam::kNameProperty, wifi_utf8)); 64 EXPECT_TRUE(SetStringProperty(flimflam::kNameProperty, wifi_utf8));
92 EXPECT_EQ(network_state_.name(), wifi_utf8_result); 65 EXPECT_EQ(network_state_.name(), wifi_utf8_result);
93 } 66 }
94 67
95 // Truncates invalid UTF-8 68 // Truncates invalid UTF-8
96 TEST_F(NetworkStateTest, SsidTruncateInvalid) { 69 TEST_F(NetworkStateTest, SsidTruncateInvalid) {
97 std::string wifi_setname2 = "SSID TEST \x01\xff!"; 70 std::string wifi_setname2 = "SSID TEST \x01\xff!";
98 std::string wifi_setname2_result = "SSID TEST \xEF\xBF\xBD\xEF\xBF\xBD!"; 71 std::string wifi_setname2_result = "SSID TEST \xEF\xBF\xBD\xEF\xBF\xBD!";
99 EXPECT_TRUE(SetStringProperty(flimflam::kNameProperty, wifi_setname2)); 72 EXPECT_TRUE(SetStringProperty(flimflam::kNameProperty, wifi_setname2));
73 EXPECT_TRUE(SignalInitialPropertiesReceived());
100 EXPECT_EQ(network_state_.name(), wifi_setname2_result); 74 EXPECT_EQ(network_state_.name(), wifi_setname2_result);
101 } 75 }
102 76
103 // latin1 SSID -> UTF8 SSID (Hex) 77 // latin1 SSID -> UTF8 SSID (Hex)
104 TEST_F(NetworkStateTest, SsidLatin) { 78 TEST_F(NetworkStateTest, SsidLatin) {
105 std::string wifi_latin1 = "latin-1 \xc0\xcb\xcc\xd6\xfb"; 79 std::string wifi_latin1 = "latin-1 \xc0\xcb\xcc\xd6\xfb";
106 std::string wifi_latin1_hex = 80 std::string wifi_latin1_hex =
107 base::HexEncode(wifi_latin1.c_str(), wifi_latin1.length()); 81 base::HexEncode(wifi_latin1.c_str(), wifi_latin1.length());
108 std::string wifi_latin1_result = "latin-1 \u00c0\u00cb\u00cc\u00d6\u00fb"; 82 std::string wifi_latin1_result = "latin-1 \u00c0\u00cb\u00cc\u00d6\u00fb";
109 EXPECT_TRUE(SetStringProperty(flimflam::kWifiHexSsid, wifi_latin1_hex)); 83 EXPECT_FALSE(SetStringProperty(flimflam::kWifiHexSsid, wifi_latin1_hex));
84 EXPECT_TRUE(SignalInitialPropertiesReceived());
110 EXPECT_EQ(network_state_.name(), wifi_latin1_result); 85 EXPECT_EQ(network_state_.name(), wifi_latin1_result);
111 } 86 }
112 87
113 // Hex SSID 88 // Hex SSID
114 TEST_F(NetworkStateTest, SsidHex) { 89 TEST_F(NetworkStateTest, SsidHex) {
115 std::string wifi_hex = "5468697320697320484558205353494421"; 90 std::string wifi_hex = "5468697320697320484558205353494421";
116 std::string wifi_hex_result = "This is HEX SSID!"; 91 std::string wifi_hex_result = "This is HEX SSID!";
117 SetStringProperty(flimflam::kWifiHexSsid, wifi_hex); 92 EXPECT_FALSE(SetStringProperty(flimflam::kWifiHexSsid, wifi_hex));
93 EXPECT_TRUE(SignalInitialPropertiesReceived());
118 EXPECT_EQ(network_state_.name(), wifi_hex_result); 94 EXPECT_EQ(network_state_.name(), wifi_hex_result);
119 } 95 }
120 96
121 } // namespace chromeos 97 } // namespace chromeos
OLDNEW
« chromeos/network/managed_state.h ('K') | « chromeos/network/network_state_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698