Index: chromeos/network/network_util_unittest.cc |
diff --git a/chromeos/network/network_util_unittest.cc b/chromeos/network/network_util_unittest.cc |
index 21c0d59675794802b80482b5ee2bcb989283d861..17c09bbfec87f1d643bd8c54c391b186a28def48 100644 |
--- a/chromeos/network/network_util_unittest.cc |
+++ b/chromeos/network/network_util_unittest.cc |
@@ -5,9 +5,12 @@ |
#include "chromeos/network/network_util.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#include "third_party/cros_system_api/dbus/service_constants.h" |
+using chromeos::CellularScanResult; |
using chromeos::network_util::NetmaskToPrefixLength; |
using chromeos::network_util::PrefixLengthToNetmask; |
+using chromeos::network_util::ParseCellularScanResults; |
typedef testing::Test NetworkUtilTest; |
@@ -99,3 +102,50 @@ TEST_F(NetworkUtilTest, PrefixLengthToNetmask) { |
EXPECT_EQ("", PrefixLengthToNetmask(33)); |
EXPECT_EQ("", PrefixLengthToNetmask(255)); |
} |
+ |
+TEST_F(NetworkUtilTest, ParseScanResults) { |
+ ListValue list; |
+ std::vector<CellularScanResult> scan_results; |
+ |
+ // Empty list value. |
+ EXPECT_TRUE(ParseCellularScanResults(list, &scan_results)); |
+ |
+ // List contains invalid item. |
+ list.AppendInteger(0); |
+ EXPECT_FALSE(ParseCellularScanResults(list, &scan_results)); |
+ |
+ // Scan result has no network id. |
+ list.Clear(); |
+ DictionaryValue* dict_value = new DictionaryValue(); |
+ dict_value->SetString(flimflam::kStatusProperty, "available"); |
+ list.Append(dict_value); |
+ EXPECT_TRUE(ParseCellularScanResults(list, &scan_results)); |
+ EXPECT_TRUE(scan_results.empty()); |
+ |
+ // Mixed parse results. |
+ dict_value = new DictionaryValue(); |
+ dict_value->SetString(flimflam::kNetworkIdProperty, "000001"); |
+ dict_value->SetString(flimflam::kStatusProperty, "unknown"); |
+ dict_value->SetString(flimflam::kTechnologyProperty, "GSM"); |
+ list.Append(dict_value); |
+ |
+ dict_value = new DictionaryValue(); |
+ dict_value->SetString(flimflam::kNetworkIdProperty, "000002"); |
+ dict_value->SetString(flimflam::kStatusProperty, "available"); |
+ dict_value->SetString(flimflam::kLongNameProperty, "Long Name"); |
+ list.Append(dict_value); |
+ |
+ EXPECT_TRUE(ParseCellularScanResults(list, &scan_results)); |
+ EXPECT_EQ(static_cast<size_t>(2), scan_results.size()); |
+ EXPECT_EQ("000001", scan_results[0].network_id); |
+ EXPECT_EQ("unknown", scan_results[0].status); |
+ EXPECT_EQ("GSM", scan_results[0].technology); |
+ EXPECT_TRUE(scan_results[0].long_name.empty()); |
+ EXPECT_TRUE(scan_results[0].short_name.empty()); |
+ |
+ EXPECT_EQ("000002", scan_results[1].network_id); |
+ EXPECT_EQ("available", scan_results[1].status); |
+ EXPECT_EQ("Long Name", scan_results[1].long_name); |
+ EXPECT_TRUE(scan_results[1].short_name.empty()); |
+ EXPECT_TRUE(scan_results[1].technology.empty()); |
+} |