| Index: chrome/browser/sync/test/live_sync/live_sync_test.h
|
| diff --git a/chrome/browser/sync/test/live_sync/live_sync_test.h b/chrome/browser/sync/test/live_sync/live_sync_test.h
|
| deleted file mode 100644
|
| index 2769510c6c7ec2900b81c267ea0d66f4615812f0..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/sync/test/live_sync/live_sync_test.h
|
| +++ /dev/null
|
| @@ -1,317 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CHROME_BROWSER_SYNC_TEST_LIVE_SYNC_LIVE_SYNC_TEST_H_
|
| -#define CHROME_BROWSER_SYNC_TEST_LIVE_SYNC_LIVE_SYNC_TEST_H_
|
| -#pragma once
|
| -
|
| -#include "chrome/test/base/in_process_browser_test.h"
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/file_util.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/memory/scoped_vector.h"
|
| -#include "base/process_util.h"
|
| -#include "chrome/browser/sync/syncable/model_type.h"
|
| -#include "net/base/mock_host_resolver.h"
|
| -#include "net/test/test_server.h"
|
| -
|
| -class CommandLine;
|
| -class Profile;
|
| -class ProfileSyncServiceHarness;
|
| -class FakeURLFetcherFactory;
|
| -class URLFetcherFactory;
|
| -
|
| -namespace net {
|
| -class ProxyConfig;
|
| -class ScopedDefaultHostResolverProc;
|
| -class URLRequestContextGetter;
|
| -}
|
| -
|
| -// This is the base class for integration tests for all sync data types. Derived
|
| -// classes must be defined for each sync data type. Individual tests are defined
|
| -// using the IN_PROC_BROWSER_TEST_F macro.
|
| -class LiveSyncTest : public InProcessBrowserTest {
|
| - public:
|
| - // The different types of live sync tests that can be implemented.
|
| - enum TestType {
|
| - // Tests where only one client profile is synced with the server. Typically
|
| - // sanity level tests.
|
| - SINGLE_CLIENT,
|
| -
|
| - // Tests where two client profiles are synced with the server. Typically
|
| - // functionality level tests.
|
| - TWO_CLIENT,
|
| -
|
| - // Tests where three or more client profiles are synced with the server.
|
| - // Typically, these tests create client side races and verify that sync
|
| - // works.
|
| - MULTIPLE_CLIENT,
|
| -
|
| - // Tests where several client profiles are synced with the server. Only used
|
| - // by stress tests.
|
| - MANY_CLIENT
|
| - };
|
| -
|
| - // The type of server we're running against.
|
| - enum ServerType {
|
| - SERVER_TYPE_UNDECIDED,
|
| - LOCAL_PYTHON_SERVER, // The mock python server that runs locally and is
|
| - // part of the Chromium checkout.
|
| - LOCAL_LIVE_SERVER, // Some other server (maybe the real binary used by
|
| - // Google's sync service) that can be started on
|
| - // a per-test basis by running a command
|
| - EXTERNAL_LIVE_SERVER, // A remote server that the test code has no control
|
| - // over whatsoever; cross your fingers that the
|
| - // account state is initially clean.
|
| - };
|
| -
|
| - // A LiveSyncTest must be associated with a particular test type.
|
| - explicit LiveSyncTest(TestType test_type);
|
| -
|
| - virtual ~LiveSyncTest();
|
| -
|
| - // Validates command line parameters and creates a local python test server if
|
| - // specified.
|
| - virtual void SetUp() OVERRIDE;
|
| -
|
| - // Brings down local python test server if one was created.
|
| - virtual void TearDown() OVERRIDE;
|
| -
|
| - // Sets up command line flags required for sync tests.
|
| - virtual void SetUpCommandLine(CommandLine* cl) OVERRIDE;
|
| -
|
| - // Used to get the number of sync clients used by a test.
|
| - int num_clients() WARN_UNUSED_RESULT { return num_clients_; }
|
| -
|
| - // Returns a pointer to a particular sync profile. Callee owns the object
|
| - // and manages its lifetime.
|
| - Profile* GetProfile(int index) WARN_UNUSED_RESULT;
|
| -
|
| - // Returns a pointer to a particular browser. Callee owns the object
|
| - // and manages its lifetime.
|
| - Browser* GetBrowser(int index) WARN_UNUSED_RESULT;
|
| -
|
| - // Returns a pointer to a particular sync client. Callee owns the object
|
| - // and manages its lifetime.
|
| - ProfileSyncServiceHarness* GetClient(int index) WARN_UNUSED_RESULT;
|
| -
|
| - // Returns a reference to the collection of sync clients. Callee owns the
|
| - // object and manages its lifetime.
|
| - std::vector<ProfileSyncServiceHarness*>& clients() WARN_UNUSED_RESULT {
|
| - return clients_.get();
|
| - }
|
| -
|
| - // Returns a pointer to the sync profile that is used to verify changes to
|
| - // individual sync profiles. Callee owns the object and manages its lifetime.
|
| - Profile* verifier() WARN_UNUSED_RESULT;
|
| -
|
| - // Used to determine whether the verifier profile should be updated or not.
|
| - bool use_verifier() WARN_UNUSED_RESULT { return use_verifier_; }
|
| -
|
| - // After calling this method, changes made to a profile will no longer be
|
| - // reflected in the verifier profile. Note: Not all datatypes use this.
|
| - // TODO(rsimha): Hook up all datatypes to this mechanism.
|
| - void DisableVerifier();
|
| -
|
| - // Initializes sync clients and profiles but does not sync any of them.
|
| - virtual bool SetupClients() WARN_UNUSED_RESULT;
|
| -
|
| - // Initializes sync clients and profiles if required and syncs each of them.
|
| - virtual bool SetupSync() WARN_UNUSED_RESULT;
|
| -
|
| - // Enable outgoing network connections for the given profile.
|
| - virtual void EnableNetwork(Profile* profile);
|
| -
|
| - // Disable outgoing network connections for the given profile.
|
| - virtual void DisableNetwork(Profile* profile);
|
| -
|
| - // Encrypts the datatype |type| for profile |index|.
|
| - bool EnableEncryption(int index, syncable::ModelType type);
|
| -
|
| - // Checks if the datatype |type| is encrypted for profile |index|.
|
| - bool IsEncrypted(int index, syncable::ModelType type);
|
| -
|
| - // Blocks until all sync clients have completed their mutual sync cycles.
|
| - // Returns true if a quiescent state was successfully reached.
|
| - bool AwaitQuiescence();
|
| -
|
| - // Returns true if the server being used supports controlling
|
| - // notifications.
|
| - bool ServerSupportsNotificationControl() const;
|
| -
|
| - // Disable notifications on the server. This operation is available
|
| - // only if ServerSupportsNotificationControl() returned true.
|
| - void DisableNotifications();
|
| -
|
| - // Enable notifications on the server. This operation is available
|
| - // only if ServerSupportsNotificationControl() returned true.
|
| - void EnableNotifications();
|
| -
|
| - // Trigger a notification to be sent to all clients. This operation
|
| - // is available only if ServerSupportsNotificationControl() returned
|
| - // true.
|
| - void TriggerNotification(const syncable::ModelTypeSet& changed_types);
|
| -
|
| - // Returns true if the server being used supports injecting errors.
|
| - bool ServerSupportsErrorTriggering() const;
|
| -
|
| - // Triggers a migration for one or more datatypes, and waits
|
| - // for the server to complete it. This operation is available
|
| - // only if ServerSupportsErrorTriggering() returned true.
|
| - void TriggerMigrationDoneError(const syncable::ModelTypeSet& model_types);
|
| -
|
| - // Triggers the server to set its birthday to a random value thereby
|
| - // the server would return a birthday error on next sync.
|
| - void TriggerBirthdayError();
|
| -
|
| - // Triggers a transient error on the server. Note the server will stay in
|
| - // this state until shut down.
|
| - void TriggerTransientError();
|
| -
|
| - // Triggers setting the sync_tabs field of the nigori node.
|
| - void TriggerSetSyncTabs();
|
| -
|
| - protected:
|
| - // Add custom switches needed for running the test.
|
| - virtual void AddTestSwitches(CommandLine* cl);
|
| -
|
| - // Append the command line switches to enable experimental types that aren't
|
| - // on by default yet.
|
| - virtual void AddOptionalTypesToCommandLine(CommandLine* cl);
|
| -
|
| - // InProcessBrowserTest override. Destroys all the sync clients and sync
|
| - // profiles created by a test.
|
| - virtual void CleanUpOnMainThread() OVERRIDE;
|
| -
|
| - // InProcessBrowserTest override. Changes behavior of the default host
|
| - // resolver to avoid DNS lookup errors.
|
| - virtual void SetUpInProcessBrowserTestFixture() OVERRIDE;
|
| -
|
| - // InProcessBrowserTest override. Resets the host resolver its default
|
| - // behavior.
|
| - virtual void TearDownInProcessBrowserTestFixture() OVERRIDE;
|
| -
|
| - // GAIA account used by the test case.
|
| - std::string username_;
|
| -
|
| - // GAIA password used by the test case.
|
| - std::string password_;
|
| -
|
| - // Locally available plain text file in which GAIA credentials are stored.
|
| - FilePath password_file_;
|
| -
|
| - private:
|
| - // Helper to ProfileManager::CreateProfile that handles path creation.
|
| - static Profile* MakeProfile(const FilePath::StringType name);
|
| -
|
| - // Helper method used to read GAIA credentials from a local password file
|
| - // specified via the "--password-file-for-test" command line switch.
|
| - // Note: The password file must be a plain text file with exactly two lines --
|
| - // the username on the first line and the password on the second line.
|
| - void ReadPasswordFile();
|
| -
|
| - // Helper method that starts up a sync test server if required.
|
| - void SetUpTestServerIfRequired();
|
| -
|
| - // Helper method used to start up a local python test server. Note: We set up
|
| - // an XMPP-only python server if |server_type_| is LOCAL_LIVE_SERVER and mock
|
| - // gaia credentials are in use. Returns true if successful.
|
| - bool SetUpLocalPythonTestServer();
|
| -
|
| - // Helper method used to start up a local sync test server. Returns true if
|
| - // successful.
|
| - bool SetUpLocalTestServer();
|
| -
|
| - // Helper method used to destroy the local python sync test server if one was
|
| - // created. Returns true if successful.
|
| - bool TearDownLocalPythonTestServer();
|
| -
|
| - // Helper method used to destroy the local sync test server if one was
|
| - // created. Returns true if successful.
|
| - bool TearDownLocalTestServer();
|
| -
|
| - // Helper method that waits for up to |time_ms| milliseconds for the test
|
| - // server to start. Splits the time into |intervals| intervals, and polls the
|
| - // server after each interval to see if it has started. Returns true if
|
| - // successful.
|
| - bool WaitForTestServerToStart(int time_ms, int intervals);
|
| -
|
| - // Helper method used to check if the test server is up and running.
|
| - bool IsTestServerRunning();
|
| -
|
| - // Used to disable and enable network connectivity by providing and
|
| - // clearing an invalid proxy configuration.
|
| - void SetProxyConfig(net::URLRequestContextGetter* context,
|
| - const net::ProxyConfig& proxy_config);
|
| -
|
| - // Helper method used to set up fake responses for kClientLoginUrl,
|
| - // kIssueAuthTokenUrl, kGetUserInfoUrl and kSearchDomainCheckUrl in order to
|
| - // mock out calls to GAIA servers.
|
| - void SetupMockGaiaResponses();
|
| -
|
| - // Test server of type sync, started on demand.
|
| - net::TestServer sync_server_;
|
| -
|
| - // Helper class to whitelist the notification port.
|
| - scoped_ptr<net::ScopedPortException> xmpp_port_;
|
| -
|
| - // Used to differentiate between single-client, two-client, multi-client and
|
| - // many-client tests.
|
| - TestType test_type_;
|
| -
|
| - // Tells us what kind of server we're using (some tests run only on certain
|
| - // server types).
|
| - ServerType server_type_;
|
| -
|
| - // Number of sync clients that will be created by a test.
|
| - int num_clients_;
|
| -
|
| - // Collection of sync profiles used by a test. A sync profile maintains sync
|
| - // data contained within its own subdirectory under the chrome user data
|
| - // directory.
|
| - ScopedVector<Profile> profiles_;
|
| -
|
| - // Collection of pointers to the browser objects used by a test. One browser
|
| - // instance is created for each sync profile. Browser object lifetime is
|
| - // managed by BrowserList, so we don't use a ScopedVector here.
|
| - std::vector<Browser*> browsers_;
|
| -
|
| - // Collection of sync clients used by a test. A sync client is associated with
|
| - // a sync profile, and implements methods that sync the contents of the
|
| - // profile with the server.
|
| - ScopedVector<ProfileSyncServiceHarness> clients_;
|
| -
|
| - // Sync profile against which changes to individual profiles are verified. We
|
| - // don't need a corresponding verifier sync client because the contents of the
|
| - // verifier profile are strictly local, and are not meant to be synced.
|
| - scoped_ptr<Profile> verifier_;
|
| -
|
| - // Indicates whether changes to a profile should also change the verifier
|
| - // profile or not.
|
| - bool use_verifier_;
|
| -
|
| - // Sync integration tests need to make live DNS requests for access to
|
| - // GAIA and sync server URLs under google.com. We use a scoped version
|
| - // to override the default resolver while the test is active.
|
| - scoped_ptr<net::ScopedDefaultHostResolverProc> mock_host_resolver_override_;
|
| -
|
| - // Used to start and stop the local test server.
|
| - base::ProcessHandle test_server_handle_;
|
| -
|
| - // Fake URLFetcher factory used to mock out GAIA signin.
|
| - scoped_ptr<FakeURLFetcherFactory> fake_factory_;
|
| -
|
| - // The URLFetcherFactory instance used to instantiate |fake_factory_|.
|
| - scoped_ptr<URLFetcherFactory> factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(LiveSyncTest);
|
| -};
|
| -
|
| -DISABLE_RUNNABLE_METHOD_REFCOUNT(LiveSyncTest);
|
| -
|
| -#endif // CHROME_BROWSER_SYNC_TEST_LIVE_SYNC_LIVE_SYNC_TEST_H_
|
|
|