|  | // 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 CONTENT_BROWSER_FILEAPI_MOCK_FILE_CHANGE_OBSERVER_H_ | 
|  | #define CONTENT_BROWSER_FILEAPI_MOCK_FILE_CHANGE_OBSERVER_H_ | 
|  |  | 
|  | #include "base/compiler_specific.h" | 
|  | #include "base/macros.h" | 
|  | #include "storage/browser/fileapi/file_observers.h" | 
|  | #include "storage/browser/fileapi/file_system_url.h" | 
|  | #include "storage/browser/fileapi/task_runner_bound_observer_list.h" | 
|  |  | 
|  | namespace storage { | 
|  |  | 
|  | // Mock file change observer. | 
|  | class MockFileChangeObserver : public FileChangeObserver { | 
|  | public: | 
|  | MockFileChangeObserver(); | 
|  | ~MockFileChangeObserver() override; | 
|  |  | 
|  | // Creates a ChangeObserverList which only contains given |observer|. | 
|  | static ChangeObserverList CreateList(MockFileChangeObserver* observer); | 
|  |  | 
|  | // FileChangeObserver overrides. | 
|  | void OnCreateFile(const FileSystemURL& url) override; | 
|  | void OnCreateFileFrom(const FileSystemURL& url, | 
|  | const FileSystemURL& src) override; | 
|  | void OnRemoveFile(const FileSystemURL& url) override; | 
|  | void OnModifyFile(const FileSystemURL& url) override; | 
|  | void OnCreateDirectory(const FileSystemURL& url) override; | 
|  | 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 storage | 
|  |  | 
|  | #endif  // CONTENT_BROWSER_FILEAPI_MOCK_FILE_CHANGE_OBSERVER_H_ |