1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/command_line.h"
6 #include "base/macros.h"
7 #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h"
8 #include "chrome/browser/sync/test/integration/sync_test.h"
9 #include "chrome/browser/sync/test/integration/wifi_credentials_helper.h"
10 #include "chrome/common/chrome_switches.h"
11 #include "components/wifi_sync/wifi_credential.h"
12 #include "components/wifi_sync/wifi_security_class.h"
14 using wifi_sync::WifiCredential
;
16 using WifiCredentialSet
= wifi_sync::WifiCredential::CredentialSet
;
18 class TwoClientWifiCredentialsSyncTest
: public SyncTest
{
20 TwoClientWifiCredentialsSyncTest() : SyncTest(TWO_CLIENT
) {}
21 ~TwoClientWifiCredentialsSyncTest() override
{}
23 // SyncTest implementation.
24 void SetUp() override
{
25 wifi_credentials_helper::SetUp();
29 void SetUpCommandLine(base::CommandLine
* command_line
) override
{
30 SyncTest::SetUpCommandLine(command_line
);
31 command_line
->AppendSwitch(switches::kEnableWifiCredentialSync
);
34 bool SetupClients() override
{
35 if (!SyncTest::SetupClients())
37 wifi_credentials_helper::SetupClients();
42 DISALLOW_COPY_AND_ASSIGN(TwoClientWifiCredentialsSyncTest
);
45 IN_PROC_BROWSER_TEST_F(TwoClientWifiCredentialsSyncTest
, NoCredentials
) {
46 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
47 ASSERT_TRUE(wifi_credentials_helper::VerifierIsEmpty());
48 ASSERT_TRUE(wifi_credentials_helper::AllProfilesMatch());
51 IN_PROC_BROWSER_TEST_F(TwoClientWifiCredentialsSyncTest
, SingleCredential
) {
52 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
54 const char ssid
[] = "fake-ssid";
55 scoped_ptr
<WifiCredential
> credential
=
56 wifi_credentials_helper::MakeWifiCredential(
57 ssid
, wifi_sync::SECURITY_CLASS_PSK
, "fake_passphrase");
58 ASSERT_TRUE(credential
);
60 const size_t profile_a_index
= 0;
61 wifi_credentials_helper::AddWifiCredential(
62 profile_a_index
, "fake_id", *credential
);
64 const WifiCredentialSet verifier_credentials
=
65 wifi_credentials_helper::GetWifiCredentialsForProfile(verifier());
66 EXPECT_EQ(1U, verifier_credentials
.size());
67 EXPECT_EQ(WifiCredential::MakeSsidBytesForTest(ssid
),
68 verifier_credentials
.begin()->ssid());
70 const size_t profile_b_index
= 1;
71 ASSERT_TRUE(GetClient(profile_a_index
)->AwaitMutualSyncCycleCompletion(
72 GetClient(profile_b_index
)));
73 EXPECT_FALSE(wifi_credentials_helper::VerifierIsEmpty());
74 EXPECT_TRUE(wifi_credentials_helper::AllProfilesMatch());