Home | History | Annotate | Download | only in enhanced_bookmarks
      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 
     11 TestImageStore::TestImageStore() {
     12 }
     13 
     14 bool TestImageStore::HasKey(const GURL& page_url) {
     15   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
     16 
     17   return store_.find(page_url) != store_.end();
     18 }
     19 
     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 
     32 void TestImageStore::Erase(const GURL& page_url) {
     33   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
     34 
     35   store_.erase(page_url);
     36 }
     37 
     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 
     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 
     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 
     66 void TestImageStore::ClearAll() {
     67   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
     68 
     69   store_.clear();
     70 }
     71 
     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 
     87 TestImageStore::~TestImageStore() {
     88   DCHECK(sequence_checker_.CalledOnValidSequencedThread());
     89 }
     90