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

Side by Side Diff: sync/syncable/directory_unittest.h

Issue 247983002: Keep track of which attachments are referenced by which sync entries. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: FakeAttachmentService::StoreAttachments now calls AttachmentStore::Write. Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef SYNC_SYNCABLE_DIRECTORY_UNITTEST_H_ 5 #ifndef SYNC_SYNCABLE_DIRECTORY_UNITTEST_H_
6 #define SYNC_SYNCABLE_DIRECTORY_UNITTEST_H_ 6 #define SYNC_SYNCABLE_DIRECTORY_UNITTEST_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "sync/internal_api/public/base_node.h"
13 #include "sync/internal_api/public/user_share.h"
12 #include "sync/syncable/in_memory_directory_backing_store.h" 14 #include "sync/syncable/in_memory_directory_backing_store.h"
13 #include "sync/syncable/mutable_entry.h" 15 #include "sync/syncable/mutable_entry.h"
14 #include "sync/syncable/syncable_read_transaction.h" 16 #include "sync/syncable/syncable_read_transaction.h"
15 #include "sync/syncable/syncable_write_transaction.h" 17 #include "sync/syncable/syncable_write_transaction.h"
16 #include "sync/test/engine/test_id_factory.h" 18 #include "sync/test/engine/test_id_factory.h"
17 #include "sync/test/fake_encryptor.h" 19 #include "sync/test/fake_encryptor.h"
18 #include "sync/test/null_directory_change_delegate.h" 20 #include "sync/test/null_directory_change_delegate.h"
19 #include "sync/test/null_transaction_observer.h" 21 #include "sync/test/null_transaction_observer.h"
20 #include "sync/util/test_unrecoverable_error_handler.h" 22 #include "sync/util/test_unrecoverable_error_handler.h"
21 #include "testing/gtest/include/gtest/gtest.h" 23 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 25 matching lines...) Expand all
47 DirOpenResult ReopenDirectory(); 49 DirOpenResult ReopenDirectory();
48 50
49 // Creates an empty entry and sets the ID field to a default one. 51 // Creates an empty entry and sets the ID field to a default one.
50 void CreateEntry(const std::string& entryname); 52 void CreateEntry(const std::string& entryname);
51 53
52 // Creates an empty entry and sets the ID field to id. 54 // Creates an empty entry and sets the ID field to id.
53 void CreateEntry(const std::string& entryname, const int id); 55 void CreateEntry(const std::string& entryname, const int id);
54 56
55 void CreateEntry(const std::string& entryname, Id id); 57 void CreateEntry(const std::string& entryname, Id id);
56 58
59 // Create an entry with the given |model_type|, |client_tag| and
60 // |attachment_metadata|.
61 void CreateEntryWithAttachmentMetadata(
62 const ModelType& model_type,
63 const std::string& client_tag,
64 const sync_pb::AttachmentMetadata& attachment_metadata);
65
57 // When a directory is saved then loaded from disk, it will pass through 66 // When a directory is saved then loaded from disk, it will pass through
58 // DropDeletedEntries(). This will remove some entries from the directory. 67 // DropDeletedEntries(). This will remove some entries from the directory.
59 // This function is intended to simulate that process. 68 // This function is intended to simulate that process.
60 // 69 //
61 // WARNING: The directory will be deleted by this operation. You should 70 // WARNING: The directory will be deleted by this operation. You should
62 // not have any pointers to the directory (open transactions included) 71 // not have any pointers to the directory (open transactions included)
63 // when you call this. 72 // when you call this.
64 DirOpenResult SimulateSaveAndReloadDir(); 73 DirOpenResult SimulateSaveAndReloadDir();
65 74
66 // This function will close and re-open the directory without saving any 75 // This function will close and re-open the directory without saving any
67 // pending changes. This is intended to simulate the recovery from a crash 76 // pending changes. This is intended to simulate the recovery from a crash
68 // scenario. The same warnings for SimulateSaveAndReloadDir apply here. 77 // scenario. The same warnings for SimulateSaveAndReloadDir apply here.
69 DirOpenResult SimulateCrashAndReloadDir(); 78 DirOpenResult SimulateCrashAndReloadDir();
70 79
71 void GetAllMetaHandles(BaseTransaction* trans, MetahandleSet* result); 80 void GetAllMetaHandles(BaseTransaction* trans, MetahandleSet* result);
72 void CheckPurgeEntriesWithTypeInSucceeded(ModelTypeSet types_to_purge, 81 void CheckPurgeEntriesWithTypeInSucceeded(ModelTypeSet types_to_purge,
73 bool before_reload); 82 bool before_reload);
74 bool IsInDirtyMetahandles(int64 metahandle); 83 bool IsInDirtyMetahandles(int64 metahandle);
75 bool IsInMetahandlesToPurge(int64 metahandle); 84 bool IsInMetahandlesToPurge(int64 metahandle);
76 85
86 // Attempts to load the entry specified by |model_type| and |client_tag| and
87 // returns the lookup result code.
88 BaseNode::InitByLookupResult LookupEntryByClientTag(
89 const ModelType& model_type,
90 const std::string& client_tag);
91
92 // Replace the entry specified by |model_type| and |client_tag| with a
93 // tombstone.
94 void ReplaceWithTombstone(const ModelType& model_type,
95 const std::string& client_tag);
96
77 scoped_ptr<Directory>& dir(); 97 scoped_ptr<Directory>& dir();
98 UserShare* user_share();
78 DirectoryChangeDelegate* directory_change_delegate(); 99 DirectoryChangeDelegate* directory_change_delegate();
79 Encryptor* encryptor(); 100 Encryptor* encryptor();
80 UnrecoverableErrorHandler* unrecoverable_error_handler(); 101 UnrecoverableErrorHandler* unrecoverable_error_handler();
81 102
82 private: 103 private:
83 void ValidateEntry(BaseTransaction* trans, 104 void ValidateEntry(BaseTransaction* trans,
84 int64 id, 105 int64 id,
85 bool check_name, 106 bool check_name,
86 const std::string& name, 107 const std::string& name,
87 int64 base_version, 108 int64 base_version,
88 int64 server_version, 109 int64 server_version,
89 bool is_del); 110 bool is_del);
90 111
91 base::MessageLoop message_loop_; 112 base::MessageLoop message_loop_;
92 scoped_ptr<Directory> dir_; 113 syncer::UserShare user_share_;
93 NullDirectoryChangeDelegate delegate_; 114 NullDirectoryChangeDelegate delegate_;
94 FakeEncryptor encryptor_; 115 FakeEncryptor encryptor_;
95 TestUnrecoverableErrorHandler handler_; 116 TestUnrecoverableErrorHandler handler_;
96 sql::Connection connection_; 117 sql::Connection connection_;
97 }; 118 };
98 119
99 } // namespace syncable 120 } // namespace syncable
100 121
101 } // namespace syncer 122 } // namespace syncer
102 123
103 #endif // SYNC_SYNCABLE_DIRECTORY_UNITTEST_H_ 124 #endif // SYNC_SYNCABLE_DIRECTORY_UNITTEST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698