Commit 12e389c7 authored by Jon Mann's avatar Jon Mann Committed by Commit Bot

[Wi-Fi Sync] Sync shared networks created by the user.

This allows shared networks that were added by the logged
in user to be saved to sync while filtering out networks that
were configured by other users.

Bug: 966270
Change-Id: I31063c09300290671f0236e71706fd00fe1ca77d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2142579Reviewed-by: default avatarJames Vecore <vecore@google.com>
Commit-Queue: Jon Mann <jonmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#757949}
parent da58a6f7
...@@ -138,7 +138,8 @@ bool LocalNetworkCollectorImpl::IsEligible( ...@@ -138,7 +138,8 @@ bool LocalNetworkCollectorImpl::IsEligible(
return false; return false;
} }
if (network->source != network_config::mojom::OncSource::kUser) { if (network->source != network_config::mojom::OncSource::kUser &&
!network_metadata_store_->GetIsCreatedByUser(network->guid)) {
NET_LOG(EVENT) << NetworkGuidId(network->guid) NET_LOG(EVENT) << NetworkGuidId(network->guid)
<< " is not eligible, was not configured by user."; << " is not eligible, was not configured by user.";
return false; return false;
......
...@@ -43,6 +43,7 @@ const char kMangoSsid[] = "Mango"; ...@@ -43,6 +43,7 @@ const char kMangoSsid[] = "Mango";
const char kAnnieSsid[] = "Annie"; const char kAnnieSsid[] = "Annie";
const char kOzzySsid[] = "Ozzy"; const char kOzzySsid[] = "Ozzy";
const char kHopperSsid[] = "Hopper"; const char kHopperSsid[] = "Hopper";
const char kByteSsid[] = "Byte";
} // namespace } // namespace
...@@ -126,15 +127,20 @@ TEST_F(LocalNetworkCollectorImplTest, ...@@ -126,15 +127,20 @@ TEST_F(LocalNetworkCollectorImplTest,
helper()->ConfigureWiFiNetwork(kFredSsid, /*is_secured=*/true, helper()->ConfigureWiFiNetwork(kFredSsid, /*is_secured=*/true,
/*in_profile=*/true, /*has_connected=*/true); /*in_profile=*/true, /*has_connected=*/true);
helper()->ConfigureWiFiNetwork(kMangoSsid, /*is_secured=*/true, helper()->ConfigureWiFiNetwork(kMangoSsid, /*is_secured=*/true,
/*in_profile=*/false, /*has_connected=*/true); /*in_profile=*/false, /*has_connected=*/true,
/*owned_by_user=*/false);
helper()->ConfigureWiFiNetwork(kAnnieSsid, /*is_secured=*/false, helper()->ConfigureWiFiNetwork(kAnnieSsid, /*is_secured=*/false,
/*in_profile=*/true, /*has_connected=*/true); /*in_profile=*/true, /*has_connected=*/true);
helper()->ConfigureWiFiNetwork(kOzzySsid, /*is_secured=*/true, helper()->ConfigureWiFiNetwork(kOzzySsid, /*is_secured=*/true,
/*in_profile=*/true, /*has_connected=*/true); /*in_profile=*/true, /*has_connected=*/true);
helper()->ConfigureWiFiNetwork(kHopperSsid, /*is_secured=*/true, helper()->ConfigureWiFiNetwork(kHopperSsid, /*is_secured=*/true,
/*in_profile=*/true, /*has_connected=*/false); /*in_profile=*/true, /*has_connected=*/false);
helper()->ConfigureWiFiNetwork(kByteSsid, /*is_secured=*/true,
/*in_profile=*/false, /*has_connected=*/true,
/*owned_by_user=*/true);
std::vector<std::string> expected; std::vector<std::string> expected;
expected.push_back(kByteSsid);
expected.push_back(kFredSsid); expected.push_back(kFredSsid);
expected.push_back(kOzzySsid); expected.push_back(kOzzySsid);
...@@ -154,6 +160,26 @@ TEST_F(LocalNetworkCollectorImplTest, TestGetSyncableNetwork) { ...@@ -154,6 +160,26 @@ TEST_F(LocalNetworkCollectorImplTest, TestGetSyncableNetwork) {
base::Unretained(this), kFredSsid)); base::Unretained(this), kFredSsid));
} }
TEST_F(LocalNetworkCollectorImplTest,
TestGetSyncableNetwork_Shared_OwnedByUser) {
std::string guid = helper()->ConfigureWiFiNetwork(
kFredSsid, /*is_secured=*/true,
/*in_profile=*/false, /*has_connected=*/true, /*owned_by_user=*/true);
local_network_collector()->GetSyncableNetwork(
guid, base::BindOnce(&LocalNetworkCollectorImplTest::OnGetSyncableNetwork,
base::Unretained(this), kFredSsid));
}
TEST_F(LocalNetworkCollectorImplTest,
TestGetSyncableNetwork_Shared_OwnedByOther) {
std::string guid = helper()->ConfigureWiFiNetwork(
kFredSsid, /*is_secured=*/true,
/*in_profile=*/false, /*has_connected=*/true, /*owned_by_user=*/false);
local_network_collector()->GetSyncableNetwork(
guid, base::BindOnce(&LocalNetworkCollectorImplTest::OnGetSyncableNetwork,
base::Unretained(this), std::string()));
}
TEST_F(LocalNetworkCollectorImplTest, TestGetSyncableNetwork_DoesntExist) { TEST_F(LocalNetworkCollectorImplTest, TestGetSyncableNetwork_DoesntExist) {
local_network_collector()->GetSyncableNetwork( local_network_collector()->GetSyncableNetwork(
"test_guid", "test_guid",
......
...@@ -80,14 +80,14 @@ void NetworkTestHelper::SetUp() { ...@@ -80,14 +80,14 @@ void NetworkTestHelper::SetUp() {
std::string NetworkTestHelper::ConfigureWiFiNetwork(const std::string& ssid, std::string NetworkTestHelper::ConfigureWiFiNetwork(const std::string& ssid,
bool is_secured, bool is_secured,
bool in_profile, bool in_profile,
bool has_connected) { bool has_connected,
bool owned_by_user) {
std::string security_entry = std::string security_entry =
is_secured ? R"("SecurityClass": "psk", "Passphrase": "secretsauce", )" is_secured ? R"("SecurityClass": "psk", "Passphrase": "secretsauce", )"
: R"("SecurityClass": "none", )"; : R"("SecurityClass": "none", )";
std::string profile_entry = std::string profile_entry = base::StringPrintf(
in_profile ? base::StringPrintf(R"("Profile": "%s", )", R"("Profile": "%s", )",
network_state_helper_->UserHash()) in_profile ? network_state_helper_->UserHash() : "/profile/default");
: std::string();
std::string guid = base::StringPrintf("%s_guid", ssid.c_str()); std::string guid = base::StringPrintf("%s_guid", ssid.c_str());
std::string service_path = std::string service_path =
network_state_helper_->ConfigureService(base::StringPrintf( network_state_helper_->ConfigureService(base::StringPrintf(
...@@ -99,6 +99,11 @@ std::string NetworkTestHelper::ConfigureWiFiNetwork(const std::string& ssid, ...@@ -99,6 +99,11 @@ std::string NetworkTestHelper::ConfigureWiFiNetwork(const std::string& ssid,
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
if (owned_by_user) {
NetworkHandler::Get()->network_metadata_store()->OnConfigurationCreated(
service_path, guid);
}
if (has_connected) { if (has_connected) {
NetworkHandler::Get()->network_metadata_store()->ConnectSucceeded( NetworkHandler::Get()->network_metadata_store()->ConnectSucceeded(
service_path); service_path);
......
...@@ -34,7 +34,8 @@ class NetworkTestHelper : public network_config::CrosNetworkConfigTestHelper { ...@@ -34,7 +34,8 @@ class NetworkTestHelper : public network_config::CrosNetworkConfigTestHelper {
std::string ConfigureWiFiNetwork(const std::string& ssid, std::string ConfigureWiFiNetwork(const std::string& ssid,
bool is_secured, bool is_secured,
bool in_profile, bool in_profile,
bool has_connected); bool has_connected,
bool owned_by_user = true);
NetworkStateTestHelper* network_state_test_helper(); NetworkStateTestHelper* network_state_test_helper();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment