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(
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)
<< " is not eligible, was not configured by user.";
return false;
......
......@@ -43,6 +43,7 @@ const char kMangoSsid[] = "Mango";
const char kAnnieSsid[] = "Annie";
const char kOzzySsid[] = "Ozzy";
const char kHopperSsid[] = "Hopper";
const char kByteSsid[] = "Byte";
} // namespace
......@@ -126,15 +127,20 @@ TEST_F(LocalNetworkCollectorImplTest,
helper()->ConfigureWiFiNetwork(kFredSsid, /*is_secured=*/true,
/*in_profile=*/true, /*has_connected=*/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,
/*in_profile=*/true, /*has_connected=*/true);
helper()->ConfigureWiFiNetwork(kOzzySsid, /*is_secured=*/true,
/*in_profile=*/true, /*has_connected=*/true);
helper()->ConfigureWiFiNetwork(kHopperSsid, /*is_secured=*/true,
/*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;
expected.push_back(kByteSsid);
expected.push_back(kFredSsid);
expected.push_back(kOzzySsid);
......@@ -154,6 +160,26 @@ TEST_F(LocalNetworkCollectorImplTest, TestGetSyncableNetwork) {
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) {
local_network_collector()->GetSyncableNetwork(
"test_guid",
......
......@@ -80,14 +80,14 @@ void NetworkTestHelper::SetUp() {
std::string NetworkTestHelper::ConfigureWiFiNetwork(const std::string& ssid,
bool is_secured,
bool in_profile,
bool has_connected) {
bool has_connected,
bool owned_by_user) {
std::string security_entry =
is_secured ? R"("SecurityClass": "psk", "Passphrase": "secretsauce", )"
: R"("SecurityClass": "none", )";
std::string profile_entry =
in_profile ? base::StringPrintf(R"("Profile": "%s", )",
network_state_helper_->UserHash())
: std::string();
std::string profile_entry = base::StringPrintf(
R"("Profile": "%s", )",
in_profile ? network_state_helper_->UserHash() : "/profile/default");
std::string guid = base::StringPrintf("%s_guid", ssid.c_str());
std::string service_path =
network_state_helper_->ConfigureService(base::StringPrintf(
......@@ -99,6 +99,11 @@ std::string NetworkTestHelper::ConfigureWiFiNetwork(const std::string& ssid,
base::RunLoop().RunUntilIdle();
if (owned_by_user) {
NetworkHandler::Get()->network_metadata_store()->OnConfigurationCreated(
service_path, guid);
}
if (has_connected) {
NetworkHandler::Get()->network_metadata_store()->ConnectSucceeded(
service_path);
......
......@@ -34,7 +34,8 @@ class NetworkTestHelper : public network_config::CrosNetworkConfigTestHelper {
std::string ConfigureWiFiNetwork(const std::string& ssid,
bool is_secured,
bool in_profile,
bool has_connected);
bool has_connected,
bool owned_by_user = true);
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