• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "components/enhanced_bookmarks/test_image_store.h"
6 
7 #include "third_party/skia/include/core/SkBitmap.h"
8 #include "ui/gfx/geometry/size.h"
9 #include "url/gurl.h"
10 
TestImageStore()11 TestImageStore::TestImageStore() {
12 }
13 
HasKey(const GURL & page_url)14 bool TestImageStore::HasKey(const GURL& page_url) {
15   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
16 
17   return store_.find(page_url) != store_.end();
18 }
19 
Insert(const GURL & page_url,const GURL & image_url,const gfx::Image & image)20 void TestImageStore::Insert(const GURL& page_url,
21                               const GURL& image_url,
22                               const gfx::Image& image) {
23   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
24 
25   Erase(page_url);
26   store_.insert(std::make_pair(
27       page_url,
28       std::make_pair(image,
29                      image_url)));
30 }
31 
Erase(const GURL & page_url)32 void TestImageStore::Erase(const GURL& page_url) {
33   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
34 
35   store_.erase(page_url);
36 }
37 
Get(const GURL & page_url)38 std::pair<gfx::Image, GURL> TestImageStore::Get(const GURL& page_url) {
39   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
40 
41   ImageMap::const_iterator pair_enumerator = store_.find(page_url);
42   if (pair_enumerator == store_.end())
43     return std::make_pair(gfx::Image(), GURL());
44 
45   return std::make_pair(store_[page_url].first, store_[page_url].second);
46 }
47 
GetSize(const GURL & page_url)48 gfx::Size TestImageStore::GetSize(const GURL& page_url) {
49   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
50 
51   ImageMap::const_iterator pair_enumerator = store_.find(page_url);
52   if (pair_enumerator == store_.end())
53     return gfx::Size();
54 
55   return store_[page_url].first.Size();
56 }
57 
GetAllPageUrls(std::set<GURL> * urls)58 void TestImageStore::GetAllPageUrls(std::set<GURL>* urls) {
59   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
60   DCHECK(urls->empty());
61 
62   for (ImageMap::const_iterator it = store_.begin(); it != store_.end(); ++it)
63     urls->insert(it->first);
64 }
65 
ClearAll()66 void TestImageStore::ClearAll() {
67   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
68 
69   store_.clear();
70 }
71 
GetStoreSizeInBytes()72 int64 TestImageStore::GetStoreSizeInBytes() {
73   // Not 100% accurate, but it's for testing so the actual value is not
74   // important.
75   int64 size = sizeof(store_);
76   for (ImageMap::const_iterator it = store_.begin(); it != store_.end(); ++it) {
77     size += sizeof(it->first);
78     size += it->first.spec().length();
79     size += sizeof(it->second);
80     SkBitmap bitmap = it->second.first.AsBitmap();
81     size += bitmap.getSize();
82     size += it->second.second.spec().length();
83   }
84   return size;
85 }
86 
~TestImageStore()87 TestImageStore::~TestImageStore() {
88   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
89 }
90