10529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#ifndef CONTENT_BROWSER_APPCACHE_MOCK_APPCACHE_SERVICE_H_
60529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#define CONTENT_BROWSER_APPCACHE_MOCK_APPCACHE_SERVICE_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "content/browser/appcache/appcache_service_impl.h"
100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "content/browser/appcache/mock_appcache_storage.h"
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/browser/quota/quota_manager.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochnamespace content {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// For use by unit tests.
1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class MockAppCacheService : public AppCacheServiceImpl {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  MockAppCacheService()
1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    : AppCacheServiceImpl(NULL),
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      mock_delete_appcaches_for_origin_result_(net::OK),
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      delete_called_count_(0) {
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    storage_.reset(new MockAppCacheStorage(this));
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Just returns a canned completion code without actually
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // removing groups and caches in our mock storage instance.
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void DeleteAppCachesForOrigin(
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const GURL& origin,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      const net::CompletionCallback& callback) OVERRIDE;
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  void set_quota_manager_proxy(storage::QuotaManagerProxy* proxy) {
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    quota_manager_proxy_ = proxy;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void set_mock_delete_appcaches_for_origin_result(int rv) {
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    mock_delete_appcaches_for_origin_result_ = rv;
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int delete_called_count() const { return delete_called_count_; }
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int mock_delete_appcaches_for_origin_result_;
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int delete_called_count_;
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
460529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}  // namespace content
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
480529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#endif  // CONTENT_BROWSER_APPCACHE_MOCK_APPCACHE_SERVICE_H_
49