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

Unified Diff: extensions/browser/api/networking_private/networking_private_chromeos_unittest.cc

Issue 2767253006: Set HexSSID in network config before matching it against policies (Closed)
Patch Set: . Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/browser/BUILD.gn ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/browser/api/networking_private/networking_private_chromeos_unittest.cc
diff --git a/extensions/browser/api/networking_private/networking_private_chromeos_unittest.cc b/extensions/browser/api/networking_private/networking_private_chromeos_unittest.cc
index 6bed63200f9235161eae415ca9b73c42546e2b2b..2ad5b3f2c31ea4c5f5b463318bf3a3146767ec63 100644
--- a/extensions/browser/api/networking_private/networking_private_chromeos_unittest.cc
+++ b/extensions/browser/api/networking_private/networking_private_chromeos_unittest.cc
@@ -5,6 +5,7 @@
#include "base/macros.h"
#include "base/message_loop/message_loop.h"
#include "base/run_loop.h"
+#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/shill_device_client.h"
@@ -15,6 +16,7 @@
#include "chromeos/network/network_handler.h"
#include "chromeos/network/network_state.h"
#include "chromeos/network/network_state_handler.h"
+#include "components/onc/onc_constants.h"
#include "extensions/browser/api/networking_private/networking_private_api.h"
#include "extensions/browser/api_unittest.h"
#include "extensions/common/value_builder.h"
@@ -37,6 +39,12 @@ const char kPrivateWifiServicePath[] = "/service/private_wifi";
const char kPrivateWifiGuid[] = "private_wifi_guid";
const char kPrivateWifiName[] = "private_wifi";
+const char kManagedUserWifiGuid[] = "managed_user_wifi_guid";
+const char kManagedUserWifiSsid[] = "managed_user_wifi";
+
+const char kManagedDeviceWifiGuid[] = "managed_device_wifi_guid";
+const char kManagedDeviceWifiSsid[] = "managed_device_wifi";
+
} // namespace
class NetworkingPrivateApiTest : public ApiUnitTest {
@@ -128,11 +136,45 @@ class NetworkingPrivateApiTest : public ApiUnitTest {
chromeos::NetworkHandler::Get()
->managed_network_configuration_handler();
- config_handler->SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUserHash,
- base::ListValue(), base::DictionaryValue());
+ const std::string user_policy_ssid = kManagedUserWifiSsid;
+ std::unique_ptr<base::ListValue> user_policy_onc =
+ ListBuilder()
+ .Append(DictionaryBuilder()
+ .Set("GUID", kManagedUserWifiGuid)
+ .Set("Type", "WiFi")
+ .Set("WiFi",
+ DictionaryBuilder()
+ .Set("Passphrase", "fake")
+ .Set("SSID", user_policy_ssid)
+ .Set("HexSSID",
+ base::HexEncode(user_policy_ssid.c_str(),
+ user_policy_ssid.size()))
+ .Set("Security", "WPA-PSK")
+ .Build())
+ .Build())
+ .Build();
+ config_handler->SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUserHash,
+ *user_policy_onc, base::DictionaryValue());
+
+ const std::string device_policy_ssid = kManagedDeviceWifiSsid;
+ std::unique_ptr<base::ListValue> device_policy_onc =
+ ListBuilder()
+ .Append(DictionaryBuilder()
+ .Set("GUID", kManagedDeviceWifiGuid)
+ .Set("Type", "WiFi")
+ .Set("WiFi",
+ DictionaryBuilder()
+ .Set("SSID", device_policy_ssid)
+ .Set("HexSSID", base::HexEncode(
+ device_policy_ssid.c_str(),
+ device_policy_ssid.size()))
+ .Set("Security", "None")
+ .Build())
+ .Build())
+ .Build();
config_handler->SetPolicy(::onc::ONC_SOURCE_DEVICE_POLICY, "",
- base::ListValue(), base::DictionaryValue());
+ *device_policy_onc, base::DictionaryValue());
}
void AddSharedNetworkToUserProfile() {
@@ -172,7 +214,7 @@ TEST_F(NetworkingPrivateApiTest, SetSharedNetworkProperties) {
RunFunctionAndReturnError(
new NetworkingPrivateSetPropertiesFunction(),
base::StringPrintf(
- "[\"%s\", {\"WiFi\": {\"Passphrase\": \"passphrase\"}}]",
+ R"(["%s", {"WiFi": {"Passphrase": "passphrase"}}])",
kSharedWifiGuid)));
}
@@ -183,7 +225,7 @@ TEST_F(NetworkingPrivateApiTest, SetPrivateNetworkPropertiesWebUI) {
RunFunction(
set_properties.get(),
- base::StringPrintf("[\"%s\", {\"Priority\": 0}]", kSharedWifiGuid));
+ base::StringPrintf(R"(["%s", {"Priority": 0}])", kSharedWifiGuid));
EXPECT_EQ(ExtensionFunction::SUCCEEDED, *set_properties->response_type());
const chromeos::NetworkState* network =
@@ -200,7 +242,7 @@ TEST_F(NetworkingPrivateApiTest, SetPrivateNetworkProperties) {
new NetworkingPrivateSetPropertiesFunction();
RunFunction(
set_properties.get(),
- base::StringPrintf("[\"%s\", {\"Priority\": 0}]", kPrivateWifiGuid));
+ base::StringPrintf(R"(["%s", {"Priority": 0}])", kPrivateWifiGuid));
EXPECT_EQ(ExtensionFunction::SUCCEEDED, *set_properties->response_type());
const chromeos::NetworkState* network =
@@ -216,12 +258,13 @@ TEST_F(NetworkingPrivateApiTest, CreateSharedNetwork) {
EXPECT_EQ(
networking_private::kErrorAccessToSharedConfig,
RunFunctionAndReturnError(new NetworkingPrivateCreateNetworkFunction(),
- "[true, {"
- " \"Type\": \"WiFi\","
- " \"WiFi\": {"
- " \"SSID\": \"New network\","
- " \"Security\": \"None\""
- "}}]"));
+ R"([true, {
+ "Type": "WiFi",
+ "WiFi": {
+ "SSID": "New network",
+ "Security": "None"
+ }
+ }])"));
}
TEST_F(NetworkingPrivateApiTest, CreateSharedNetworkWebUI) {
@@ -231,13 +274,14 @@ TEST_F(NetworkingPrivateApiTest, CreateSharedNetworkWebUI) {
std::unique_ptr<base::Value> result =
RunFunctionAndReturnValue(create_network.get(),
- "[true, {"
- " \"Priority\": 1,"
- " \"Type\": \"WiFi\","
- " \"WiFi\": {"
- " \"SSID\": \"New network\","
- " \"Security\": \"None\""
- "}}]");
+ R"([true, {
+ "Priority": 1,
+ "Type": "WiFi",
+ "WiFi": {
+ "SSID": "New network",
+ "Security": "None"
+ }
+ }])");
ASSERT_TRUE(result);
ASSERT_TRUE(result->is_string());
@@ -254,13 +298,14 @@ TEST_F(NetworkingPrivateApiTest, CreateSharedNetworkWebUI) {
TEST_F(NetworkingPrivateApiTest, CreatePrivateNetwork) {
std::unique_ptr<base::Value> result =
RunFunctionAndReturnValue(new NetworkingPrivateCreateNetworkFunction(),
- "[false, {"
- " \"Priority\": 1,"
- " \"Type\": \"WiFi\","
- " \"WiFi\": {"
- " \"SSID\": \"New WiFi\","
- " \"Security\": \"WPA-PSK\""
- "}}]");
+ R"([false, {
+ "Priority": 1,
+ "Type": "WiFi",
+ "WiFi": {
+ "SSID": "New WiFi",
+ "Security": "WPA-PSK"
+ }
+ }])");
ASSERT_TRUE(result);
ASSERT_TRUE(result->is_string());
@@ -278,10 +323,146 @@ TEST_F(NetworkingPrivateApiTest, CreatePrivateNetwork) {
new NetworkingPrivateSetPropertiesFunction();
RunFunction(set_properties.get(),
- base::StringPrintf("[\"%s\", {\"Priority\": 2}]", guid.c_str()));
+ base::StringPrintf(R"(["%s", {"Priority": 2}])", guid.c_str()));
EXPECT_EQ(ExtensionFunction::SUCCEEDED, *set_properties->response_type());
EXPECT_EQ(2, GetNetworkPriority(network));
}
+TEST_F(NetworkingPrivateApiTest, CreatePrivateNetwork_NonMatchingSsids) {
+ const std::string network_ssid = "new_wifi_config";
+ const std::string network_hex_ssid =
+ base::HexEncode(network_ssid.c_str(), network_ssid.size());
+ std::unique_ptr<base::Value> result =
+ RunFunctionAndReturnValue(new NetworkingPrivateCreateNetworkFunction(),
+ base::StringPrintf(R"([false, {
+ "Priority": 1,
+ "Type": "WiFi",
+ "WiFi": {
+ "SSID": "New WiFi",
+ "HexSSID": "%s",
+ "Security": "WPA-PSK"
+ }
+ }])",
+ network_hex_ssid.c_str()));
+
+ ASSERT_TRUE(result);
+ ASSERT_TRUE(result->is_string());
+
+ // Test the created config can be changed now.
+ const std::string guid = result->GetString();
+ const chromeos::NetworkState* network = chromeos::NetworkHandler::Get()
+ ->network_state_handler()
+ ->GetNetworkStateFromGuid(guid);
+ ASSERT_TRUE(network);
+ EXPECT_TRUE(network->IsPrivate());
+ EXPECT_EQ(1, GetNetworkPriority(network));
+ EXPECT_EQ(network_hex_ssid, network->GetHexSsid());
+ EXPECT_EQ(network_ssid, network->name());
+}
+
+TEST_F(NetworkingPrivateApiTest,
+ CreateAlreadyConfiguredUserPrivateNetwork_BySsid) {
+ EXPECT_EQ(
+ "NetworkAlreadyConfigured",
+ RunFunctionAndReturnError(new NetworkingPrivateCreateNetworkFunction(),
+ base::StringPrintf(R"([false, {
+ "Priority": 1,
+ "Type": "WiFi",
+ "WiFi": {
+ "SSID": "%s",
+ "Security": "WPA-PSK"
+ }
+ }])",
+ kManagedUserWifiSsid)));
+}
+
+TEST_F(NetworkingPrivateApiTest,
+ CreateAlreadyConfiguredUserPrivateNetwork_ByHexSsid) {
+ std::string network_hex_ssid =
+ base::HexEncode(kManagedUserWifiSsid, sizeof(kManagedUserWifiSsid) - 1);
+ EXPECT_EQ(
+ "NetworkAlreadyConfigured",
+ RunFunctionAndReturnError(new NetworkingPrivateCreateNetworkFunction(),
+ base::StringPrintf(R"([false, {
+ "Priority": 1,
+ "Type": "WiFi",
+ "WiFi": {
+ "HexSSID": "%s",
+ "Security": "WPA-PSK"
+ }
+ }])",
+ network_hex_ssid.c_str())));
+}
+
+TEST_F(NetworkingPrivateApiTest,
+ CreateAlreadyConfiguredUserPrivateNetwork_NonMatchingSsids) {
+ std::string network_hex_ssid =
+ base::HexEncode(kManagedUserWifiSsid, sizeof(kManagedUserWifiSsid) - 1);
+ // HexSSID should take presedence over SSID.
+ EXPECT_EQ(
+ "NetworkAlreadyConfigured",
+ RunFunctionAndReturnError(new NetworkingPrivateCreateNetworkFunction(),
+ base::StringPrintf(R"([false, {
+ "Priority": 1,
+ "Type": "WiFi",
+ "WiFi": {
+ "SSID": "wrong_ssid",
+ "HexSSID": "%s",
+ "Security": "WPA-PSK"
+ }
+ }])",
+ network_hex_ssid.c_str())));
+}
+
+TEST_F(NetworkingPrivateApiTest,
+ CreateAlreadyConfiguredUserPrivateNetwork_ByHexSSID) {
+ std::string network_hex_ssid =
+ base::HexEncode(kManagedUserWifiSsid, sizeof(kManagedUserWifiSsid) - 1);
+ EXPECT_EQ(
+ "NetworkAlreadyConfigured",
+ RunFunctionAndReturnError(new NetworkingPrivateCreateNetworkFunction(),
+ base::StringPrintf(R"([false, {
+ "Priority": 1,
+ "Type": "WiFi",
+ "WiFi": {
+ "HexSSID": "%s",
+ "Security": "WPA-PSK"
+ }
+ }])",
+ network_hex_ssid.c_str())));
+}
+
+TEST_F(NetworkingPrivateApiTest, CreateAlreadyConfiguredDeviceNetwork) {
+ EXPECT_EQ(
+ "NetworkAlreadyConfigured",
+ RunFunctionAndReturnError(new NetworkingPrivateCreateNetworkFunction(),
+ base::StringPrintf(R"([false, {
+ "Priority": 1,
+ "Type": "WiFi",
+ "WiFi": {
+ "SSID": "%s"
+ }
+ }])",
+ kManagedDeviceWifiSsid)));
+}
+
+TEST_F(NetworkingPrivateApiTest,
+ CreateAlreadyConfiguredDeviceNetwork_ByHexSSID) {
+ std::string network_hex_ssid = base::HexEncode(
+ kManagedDeviceWifiSsid, sizeof(kManagedDeviceWifiSsid) - 1);
+ EXPECT_EQ(
+ "NetworkAlreadyConfigured",
+ RunFunctionAndReturnError(new NetworkingPrivateCreateNetworkFunction(),
+ base::StringPrintf(R"([false, {
+ "Priority": 1,
+ "Type": "WiFi",
+ "WiFi": {
+ "HexSSID": "%s",
+ "Security": "WPA-PSK"
+ }
+ }])",
+ network_hex_ssid.c_str())));
+}
+
} // namespace extensions
« no previous file with comments | « extensions/browser/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698