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

Unified Diff: chrome/test/sync/engine/test_directory_setter_upper.h

Issue 7828055: Move sync test code out of chrome/test (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 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
Index: chrome/test/sync/engine/test_directory_setter_upper.h
===================================================================
--- chrome/test/sync/engine/test_directory_setter_upper.h (revision 99413)
+++ chrome/test/sync/engine/test_directory_setter_upper.h (working copy)
@@ -1,144 +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.
-//
-// A handy class that takes care of setting up and destroying a
-// syncable::Directory instance for unit tests that require one.
-//
-// The expected usage is to make this a component of your test fixture:
-//
-// class AwesomenessTest : public testing::Test {
-// public:
-// virtual void SetUp() {
-// metadb_.SetUp();
-// }
-// virtual void TearDown() {
-// metadb_.TearDown();
-// }
-// protected:
-// TestDirectorySetterUpper metadb_;
-// };
-//
-// Then, in your tests, get at the directory like so:
-//
-// TEST_F(AwesomenessTest, IsMaximal) {
-// ScopedDirLookup dir(metadb_.manager(), metadb_.name());
-// ... now use |dir| to get at syncable::Entry objects ...
-// }
-//
-
-#ifndef CHROME_TEST_SYNC_ENGINE_TEST_DIRECTORY_SETTER_UPPER_H_
-#define CHROME_TEST_SYNC_ENGINE_TEST_DIRECTORY_SETTER_UPPER_H_
-#pragma once
-
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/scoped_temp_dir.h"
-#include "chrome/browser/sync/syncable/directory_manager.h"
-#include "chrome/browser/sync/syncable/syncable.h"
-#include "chrome/test/sync/null_directory_change_delegate.h"
-#include "testing/gmock/include/gmock/gmock.h"
-
-namespace syncable {
-class DirectoryManager;
-class ScopedDirLookup;
-} // namespace syncable
-
-namespace browser_sync {
-
-class TestDirectorySetterUpper {
- public:
- TestDirectorySetterUpper();
- virtual ~TestDirectorySetterUpper();
-
- // Create a DirectoryManager instance and use it to open the directory.
- // Clears any existing database backing files that might exist on disk.
- virtual void SetUp();
-
- // Undo everything done by SetUp(): close the directory and delete the
- // backing files. Before closing the directory, this will run the directory
- // invariant checks and perform the SaveChanges action on the directory.
- virtual void TearDown();
-
- syncable::DirectoryManager* manager() const { return manager_.get(); }
- const std::string& name() const { return name_; }
-
- protected:
- // Subclasses may want to use a different directory name.
- explicit TestDirectorySetterUpper(const std::string& name);
- virtual void Init();
- void reset_directory_manager(syncable::DirectoryManager* d);
-
- syncable::NullDirectoryChangeDelegate delegate_;
-
- private:
- void RunInvariantCheck(const syncable::ScopedDirLookup& dir);
-
- scoped_ptr<syncable::DirectoryManager> manager_;
- const std::string name_;
- ScopedTempDir temp_dir_;
-
- DISALLOW_COPY_AND_ASSIGN(TestDirectorySetterUpper);
-};
-
-// A variant of the above where SetUp does not actually open the directory.
-// You must manually invoke Open(). This is useful if you are writing a test
-// that depends on the DirectoryManager::OPENED event.
-class ManuallyOpenedTestDirectorySetterUpper : public TestDirectorySetterUpper {
- public:
- ManuallyOpenedTestDirectorySetterUpper() : was_opened_(false) {}
- virtual void SetUp();
- virtual void TearDown();
- void Open();
- private:
- bool was_opened_;
-};
-
-// Use this flavor if you have a test that will trigger the opening event to
-// happen automagically. It is careful on teardown to close only if needed.
-class TriggeredOpenTestDirectorySetterUpper : public TestDirectorySetterUpper {
- public:
- // A triggered open is typically in response to a successful auth event just
- // as in "real life". In this case, the name that will be used should be
- // deterministically known at construction, and is passed in |name|.
- explicit TriggeredOpenTestDirectorySetterUpper(const std::string& name);
- virtual void SetUp();
- virtual void TearDown();
-};
-
-// Use this when you don't want to test the whole stack down to the Directory
-// level, as it installs a google mock Directory implementation.
-class MockDirectorySetterUpper : public TestDirectorySetterUpper {
- public:
- class Manager : public syncable::DirectoryManager {
- public:
- Manager(const FilePath& root_path, syncable::Directory* dir);
- virtual ~Manager() { managed_directory_ = NULL; }
- };
-
- class MockDirectory : public syncable::Directory {
- public:
- explicit MockDirectory(const std::string& name);
- virtual ~MockDirectory();
- MOCK_METHOD1(PurgeEntriesWithTypeIn, void(const syncable::ModelTypeSet&));
-
- private:
- syncable::NullDirectoryChangeDelegate delegate_;
- };
-
- MockDirectorySetterUpper();
- virtual ~MockDirectorySetterUpper();
-
- virtual void SetUp();
- virtual void TearDown();
- MockDirectory* directory() { return directory_.get(); }
-
- private:
- scoped_ptr<MockDirectory> directory_;
-};
-
-} // namespace browser_sync
-
-#endif // CHROME_TEST_SYNC_ENGINE_TEST_DIRECTORY_SETTER_UPPER_H_
« no previous file with comments | « chrome/test/sync/engine/syncer_command_test.h ('k') | chrome/test/sync/engine/test_directory_setter_upper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698