Index: sync/test/test_transaction_observer.h |
diff --git a/sync/test/test_transaction_observer.h b/sync/test/test_transaction_observer.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b76870ceded20cd88985a677db7bd7b1ea224435 |
--- /dev/null |
+++ b/sync/test/test_transaction_observer.h |
@@ -0,0 +1,45 @@ |
+// Copyright (c) 2012 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 SYNC_TEST_TEST_TRANSACTION_OBSERVER_H_ |
+#define SYNC_TEST_TEST_TRANSACTION_OBSERVER_H_ |
+ |
+#include "base/memory/weak_ptr.h" |
+#include "sync/internal_api/public/base/model_type.h" |
+#include "sync/syncable/transaction_observer.h" |
+#include "sync/syncable/write_transaction_info.h" |
+ |
+namespace syncer { |
+namespace syncable { |
+ |
+// This class acts as a TransactionObserver for the syncable::Directory. |
+// It gathers information that is useful for writing test assertions. |
+class TestTransactionObserver : |
+ public base::SupportsWeakPtr<TestTransactionObserver>, |
+ public TransactionObserver { |
+ public: |
+ TestTransactionObserver(); |
+ virtual ~TestTransactionObserver(); |
+ virtual void OnTransactionWrite( |
+ const ImmutableWriteTransactionInfo& write_transaction_info, |
+ ModelTypeSet models_with_changes) OVERRIDE; |
+ |
+ // Returns the number of transactions observed. |
+ // |
+ // Transactions are generated only when meaningful changes are made. For most |
+ // testing purposes, you may assume that this counts the number of syncer |
+ // nudges generated. |
+ int transactions_observed(); |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(TestTransactionObserver); |
+ |
+ int transactions_observed_; |
+}; |
+ |
+} // namespace syncable |
+} // namespace syncer |
+ |
+ |
+#endif // SYNC_TEST_TEST_TRANSACTION_OBSERVER_H_ |