12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_MOCK_REMOTE_CHANGE_PROCESSOR_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CHROME_BROWSER_SYNC_FILE_SYSTEM_MOCK_REMOTE_CHANGE_PROCESSOR_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/callback.h"
92385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#include "chrome/browser/sync_file_system/file_change.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/sync_file_system/remote_change_processor.h"
112385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#include "chrome/browser/sync_file_system/sync_callbacks.h"
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "testing/gmock/include/gmock/gmock.h"
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace base {
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class FilePath;
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace storage {
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class FileSystemURL;
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace sync_file_system {
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class MockRemoteChangeProcessor : public RemoteChangeProcessor {
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public:
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  MockRemoteChangeProcessor();
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual ~MockRemoteChangeProcessor();
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // RemoteChangeProcessor overrides.
30868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  MOCK_METHOD2(PrepareForProcessRemoteChange,
3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)               void(const storage::FileSystemURL& url,
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    const PrepareChangeCallback& callback));
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  MOCK_METHOD4(ApplyRemoteChange,
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)               void(const FileChange& change,
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    const base::FilePath& local_path,
3603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                    const storage::FileSystemURL& url,
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    const SyncStatusCallback& callback));
384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  MOCK_METHOD3(FinalizeRemoteSync,
3903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)               void(const storage::FileSystemURL& url,
404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                    bool clear_local_changes,
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    const base::Closure& completion_callback));
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  MOCK_METHOD3(RecordFakeLocalChange,
4303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)               void(const storage::FileSystemURL& url,
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    const FileChange& change,
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                    const SyncStatusCallback& callback));
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private:
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(MockRemoteChangeProcessor);
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace sync_file_system
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // CHROME_BROWSER_SYNC_FILE_SYSTEM_MOCK_REMOTE_CHANGE_PROCESSOR_H_
54