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

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: Rebase 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
« no previous file with comments | « chromeos/network/network_state_handler.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
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 // StringValue that skips the DCHECK in the constructor for valid UTF8.
18 class TestStringValue : public base::Value { 19 class TestStringValue : public base::Value {
19 public: 20 public:
20 explicit TestStringValue(const std::string& in_value) 21 explicit TestStringValue(const std::string& in_value)
21 : base::Value(TYPE_STRING), 22 : base::Value(TYPE_STRING),
22 value_(in_value) { 23 value_(in_value) {
23 } 24 }
24 25
25 virtual ~TestStringValue() { 26 virtual ~TestStringValue() {
26 } 27 }
27 28
(...skipping 19 matching lines...) Expand all
47 std::string value_; 48 std::string value_;
48 }; 49 };
49 50
50 class NetworkStateTest : public testing::Test { 51 class NetworkStateTest : public testing::Test {
51 public: 52 public:
52 NetworkStateTest() : network_state_("test_path") { 53 NetworkStateTest() : network_state_("test_path") {
53 } 54 }
54 55
55 protected: 56 protected:
56 bool SetStringProperty(const std::string& key, const std::string& value) { 57 bool SetStringProperty(const std::string& key, const std::string& value) {
57 if (!network_state_.PropertyChanged(key, TestStringValue(value))) 58 TestStringValue* string_value = new TestStringValue(value);
58 return false; 59 bool res = network_state_.PropertyChanged(key, *string_value);
59 network_state_.InitialPropertiesReceived(); 60 properties_.SetWithoutPathExpansion(key, string_value);
60 return true; 61 return res;
62 }
63
64 bool SignalInitialPropertiesReceived() {
65 return network_state_.InitialPropertiesReceived(properties_);
61 } 66 }
62 67
63 NetworkState network_state_; 68 NetworkState network_state_;
64 69
65 private: 70 private:
71 base::DictionaryValue properties_;
72
66 DISALLOW_COPY_AND_ASSIGN(NetworkStateTest); 73 DISALLOW_COPY_AND_ASSIGN(NetworkStateTest);
67 }; 74 };
68 75
69 } // namespace 76 } // namespace
70 77
71 // Seting kNameProperty should set network name after call to 78 // Seting kNameProperty should set network name after call to
72 // InitialPropertiesReceived() in SetStringProperty(). 79 // InitialPropertiesReceived() in SetStringProperty().
73 TEST_F(NetworkStateTest, SsidAscii) { 80 TEST_F(NetworkStateTest, SsidAscii) {
74 std::string wifi_setname = "SSID TEST"; 81 std::string wifi_setname = "SSID TEST";
75 std::string wifi_setname_result = "SSID TEST"; 82 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"; 97 std::string wifi_utf8_result = "UTF-8 \xE3\x81\x82\xE3\x81\x84\xE3\x81\x86";
91 EXPECT_TRUE(SetStringProperty(flimflam::kNameProperty, wifi_utf8)); 98 EXPECT_TRUE(SetStringProperty(flimflam::kNameProperty, wifi_utf8));
92 EXPECT_EQ(network_state_.name(), wifi_utf8_result); 99 EXPECT_EQ(network_state_.name(), wifi_utf8_result);
93 } 100 }
94 101
95 // Truncates invalid UTF-8 102 // Truncates invalid UTF-8
96 TEST_F(NetworkStateTest, SsidTruncateInvalid) { 103 TEST_F(NetworkStateTest, SsidTruncateInvalid) {
97 std::string wifi_setname2 = "SSID TEST \x01\xff!"; 104 std::string wifi_setname2 = "SSID TEST \x01\xff!";
98 std::string wifi_setname2_result = "SSID TEST \xEF\xBF\xBD\xEF\xBF\xBD!"; 105 std::string wifi_setname2_result = "SSID TEST \xEF\xBF\xBD\xEF\xBF\xBD!";
99 EXPECT_TRUE(SetStringProperty(flimflam::kNameProperty, wifi_setname2)); 106 EXPECT_TRUE(SetStringProperty(flimflam::kNameProperty, wifi_setname2));
107 EXPECT_TRUE(SignalInitialPropertiesReceived());
100 EXPECT_EQ(network_state_.name(), wifi_setname2_result); 108 EXPECT_EQ(network_state_.name(), wifi_setname2_result);
101 } 109 }
102 110
103 // latin1 SSID -> UTF8 SSID (Hex) 111 // latin1 SSID -> UTF8 SSID (Hex)
104 TEST_F(NetworkStateTest, SsidLatin) { 112 TEST_F(NetworkStateTest, SsidLatin) {
105 std::string wifi_latin1 = "latin-1 \xc0\xcb\xcc\xd6\xfb"; 113 std::string wifi_latin1 = "latin-1 \xc0\xcb\xcc\xd6\xfb";
106 std::string wifi_latin1_hex = 114 std::string wifi_latin1_hex =
107 base::HexEncode(wifi_latin1.c_str(), wifi_latin1.length()); 115 base::HexEncode(wifi_latin1.c_str(), wifi_latin1.length());
108 std::string wifi_latin1_result = "latin-1 \u00c0\u00cb\u00cc\u00d6\u00fb"; 116 std::string wifi_latin1_result = "latin-1 \u00c0\u00cb\u00cc\u00d6\u00fb";
109 EXPECT_TRUE(SetStringProperty(flimflam::kWifiHexSsid, wifi_latin1_hex)); 117 EXPECT_FALSE(SetStringProperty(flimflam::kWifiHexSsid, wifi_latin1_hex));
118 EXPECT_TRUE(SignalInitialPropertiesReceived());
110 EXPECT_EQ(network_state_.name(), wifi_latin1_result); 119 EXPECT_EQ(network_state_.name(), wifi_latin1_result);
111 } 120 }
112 121
113 // Hex SSID 122 // Hex SSID
114 TEST_F(NetworkStateTest, SsidHex) { 123 TEST_F(NetworkStateTest, SsidHex) {
115 std::string wifi_hex = "5468697320697320484558205353494421"; 124 std::string wifi_hex = "5468697320697320484558205353494421";
116 std::string wifi_hex_result = "This is HEX SSID!"; 125 std::string wifi_hex_result = "This is HEX SSID!";
117 SetStringProperty(flimflam::kWifiHexSsid, wifi_hex); 126 EXPECT_FALSE(SetStringProperty(flimflam::kWifiHexSsid, wifi_hex));
127 EXPECT_TRUE(SignalInitialPropertiesReceived());
118 EXPECT_EQ(network_state_.name(), wifi_hex_result); 128 EXPECT_EQ(network_state_.name(), wifi_hex_result);
119 } 129 }
120 130
121 } // namespace chromeos 131 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/network/network_state_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698