11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef WEBKIT_BROWSER_FILEAPI_MOCK_FILE_UPDATE_OBSERVER_H_ 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define WEBKIT_BROWSER_FILEAPI_MOCK_FILE_UPDATE_OBSERVER_H_ 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include <map> 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/basictypes.h" 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/compiler_specific.h" 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/browser/fileapi/file_observers.h" 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/browser/fileapi/file_system_url.h" 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/browser/fileapi/task_runner_bound_observer_list.h" 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace storage { 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Mock file change observer. 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass MockFileUpdateObserver : public FileUpdateObserver { 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public: 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci MockFileUpdateObserver(); 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~MockFileUpdateObserver(); 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Creates a ChangeObserverList which only contains given |observer|. 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static UpdateObserverList CreateList(MockFileUpdateObserver* observer); 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // FileUpdateObserver overrides. 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void OnStartUpdate(const FileSystemURL& url) OVERRIDE; 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void OnUpdate(const FileSystemURL& url, int64 delta) OVERRIDE; 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void OnEndUpdate(const FileSystemURL& url) OVERRIDE; 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci void Enable() { is_ready_ = true; } 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci void Disable() { 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci start_update_count_.clear(); 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci end_update_count_.clear(); 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci is_ready_ = false; 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private: 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::map<FileSystemURL, int, FileSystemURL::Comparator> start_update_count_; 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::map<FileSystemURL, int, FileSystemURL::Comparator> end_update_count_; 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool is_ready_; 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DISALLOW_COPY_AND_ASSIGN(MockFileUpdateObserver); 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace storage 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif // WEBKIT_BROWSER_FILEAPI_MOCK_FILE_UPDATE_OBSERVER_H_ 51