summaryrefslogtreecommitdiffstats
path: root/chromium/content/browser/fileapi/mock_file_change_observer.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/browser/fileapi/mock_file_change_observer.h')
-rw-r--r--chromium/content/browser/fileapi/mock_file_change_observer.h103
1 files changed, 103 insertions, 0 deletions
diff --git a/chromium/content/browser/fileapi/mock_file_change_observer.h b/chromium/content/browser/fileapi/mock_file_change_observer.h
new file mode 100644
index 00000000000..4c1bcb2d1a4
--- /dev/null
+++ b/chromium/content/browser/fileapi/mock_file_change_observer.h
@@ -0,0 +1,103 @@
+// Copyright 2014 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 WEBKIT_BROWSER_FILEAPI_MOCK_FILE_CHANGE_OBSERVER_H_
+#define WEBKIT_BROWSER_FILEAPI_MOCK_FILE_CHANGE_OBSERVER_H_
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "webkit/browser/fileapi/file_observers.h"
+#include "webkit/browser/fileapi/file_system_url.h"
+#include "webkit/browser/fileapi/task_runner_bound_observer_list.h"
+
+namespace fileapi {
+
+// Mock file change observer.
+class MockFileChangeObserver : public FileChangeObserver {
+ public:
+ MockFileChangeObserver();
+ virtual ~MockFileChangeObserver();
+
+ // Creates a ChangeObserverList which only contains given |observer|.
+ static ChangeObserverList CreateList(MockFileChangeObserver* observer);
+
+ // FileChangeObserver overrides.
+ virtual void OnCreateFile(const FileSystemURL& url) OVERRIDE;
+ virtual void OnCreateFileFrom(const FileSystemURL& url,
+ const FileSystemURL& src) OVERRIDE;
+ virtual void OnRemoveFile(const FileSystemURL& url) OVERRIDE;
+ virtual void OnModifyFile(const FileSystemURL& url) OVERRIDE;
+ virtual void OnCreateDirectory(const FileSystemURL& url) OVERRIDE;
+ virtual void OnRemoveDirectory(const FileSystemURL& url) OVERRIDE;
+
+ void ResetCount() {
+ create_file_count_ = 0;
+ create_file_from_count_ = 0;
+ remove_file_count_ = 0;
+ modify_file_count_ = 0;
+ create_directory_count_ = 0;
+ remove_directory_count_ = 0;
+ }
+
+ bool HasNoChange() const {
+ return create_file_count_ == 0 &&
+ create_file_from_count_ == 0 &&
+ remove_file_count_ == 0 &&
+ modify_file_count_ == 0 &&
+ create_directory_count_ == 0 &&
+ remove_directory_count_ == 0;
+ }
+
+ int create_file_count() const { return create_file_count_; }
+ int create_file_from_count() const { return create_file_from_count_; }
+ int remove_file_count() const { return remove_file_count_; }
+ int modify_file_count() const { return modify_file_count_; }
+ int create_directory_count() const { return create_directory_count_; }
+ int remove_directory_count() const { return remove_directory_count_; }
+
+ int get_and_reset_create_file_count() {
+ int tmp = create_file_count_;
+ create_file_count_ = 0;
+ return tmp;
+ }
+ int get_and_reset_create_file_from_count() {
+ int tmp = create_file_from_count_;
+ create_file_from_count_ = 0;
+ return tmp;
+ }
+ int get_and_reset_remove_file_count() {
+ int tmp = remove_file_count_;
+ remove_file_count_ = 0;
+ return tmp;
+ }
+ int get_and_reset_modify_file_count() {
+ int tmp = modify_file_count_;
+ modify_file_count_ = 0;
+ return tmp;
+ }
+ int get_and_reset_create_directory_count() {
+ int tmp = create_directory_count_;
+ create_directory_count_ = 0;
+ return tmp;
+ }
+ int get_and_reset_remove_directory_count() {
+ int tmp = remove_directory_count_;
+ remove_directory_count_ = 0;
+ return tmp;
+ }
+
+ private:
+ int create_file_count_;
+ int create_file_from_count_;
+ int remove_file_count_;
+ int modify_file_count_;
+ int create_directory_count_;
+ int remove_directory_count_;
+
+ DISALLOW_COPY_AND_ASSIGN(MockFileChangeObserver);
+};
+
+} // namespace fileapi
+
+#endif // WEBKIT_BROWSER_FILEAPI_MOCK_FILE_CHANGE_OBSERVER_H_