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 3 // found in the LICENSE file. 4 5 #ifndef WEBKIT_BROWSER_FILEAPI_MOCK_FILE_UPDATE_OBSERVER_H_ 6 #define WEBKIT_BROWSER_FILEAPI_MOCK_FILE_UPDATE_OBSERVER_H_ 7 8 #include <map> 9 10 #include "base/basictypes.h" 11 #include "base/compiler_specific.h" 12 #include "storage/browser/fileapi/file_observers.h" 13 #include "storage/browser/fileapi/file_system_url.h" 14 #include "storage/browser/fileapi/task_runner_bound_observer_list.h" 15 16 namespace storage { 17 18 // Mock file change observer. 19 class MockFileUpdateObserver : public FileUpdateObserver { 20 public: 21 MockFileUpdateObserver(); 22 virtual ~MockFileUpdateObserver(); 23 24 // Creates a ChangeObserverList which only contains given |observer|. 25 static UpdateObserverList CreateList(MockFileUpdateObserver* observer); 26 27 // FileUpdateObserver overrides. 28 virtual void OnStartUpdate(const FileSystemURL& url) OVERRIDE; 29 virtual void OnUpdate(const FileSystemURL& url, int64 delta) OVERRIDE; 30 virtual void OnEndUpdate(const FileSystemURL& url) OVERRIDE; 31 32 void Enable() { is_ready_ = true; } 33 34 void Disable() { 35 start_update_count_.clear(); 36 end_update_count_.clear(); 37 is_ready_ = false; 38 } 39 40 private: 41 std::map<FileSystemURL, int, FileSystemURL::Comparator> start_update_count_; 42 std::map<FileSystemURL, int, FileSystemURL::Comparator> end_update_count_; 43 bool is_ready_; 44 45 DISALLOW_COPY_AND_ASSIGN(MockFileUpdateObserver); 46 }; 47 48 } // namespace storage 49 50 #endif // WEBKIT_BROWSER_FILEAPI_MOCK_FILE_UPDATE_OBSERVER_H_ 51