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 COMPONENTS_ENHANCED_BOOKMARKS_TEST_IMAGE_STORE_H_
6#define COMPONENTS_ENHANCED_BOOKMARKS_TEST_IMAGE_STORE_H_
7
8#include "components/enhanced_bookmarks/image_store.h"
9
10// The TestImageStore is an implementation of ImageStore that keeps all its
11// data in memory. When deallocated all the associations are lost.
12// Used in tests.
13class TestImageStore : public ImageStore {
14 public:
15  TestImageStore();
16  virtual bool HasKey(const GURL& page_url) OVERRIDE;
17  virtual void Insert(const GURL& page_url,
18                      const GURL& image_url,
19                      const gfx::Image& image) OVERRIDE;
20  virtual void Erase(const GURL& page_url) OVERRIDE;
21  virtual std::pair<gfx::Image, GURL> Get(const GURL& page_url) OVERRIDE;
22  virtual gfx::Size GetSize(const GURL& page_url) OVERRIDE;
23  virtual void GetAllPageUrls(std::set<GURL>* urls) OVERRIDE;
24  virtual void ClearAll() OVERRIDE;
25  virtual int64 GetStoreSizeInBytes() OVERRIDE;
26
27 protected:
28  virtual ~TestImageStore();
29
30 private:
31  typedef std::map<const GURL, std::pair<gfx::Image, const GURL> > ImageMap;
32  ImageMap store_;
33
34  DISALLOW_COPY_AND_ASSIGN(TestImageStore);
35};
36
37#endif  // COMPONENTS_ENHANCED_BOOKMARKS_TEST_IMAGE_STORE_H_
38