Home | History | Annotate | Download | only in browsing_data
      1 // Copyright (c) 2012 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 "chrome/browser/browsing_data/browsing_data_indexed_db_helper.h"
      6 
      7 #include "base/message_loop/message_loop_proxy.h"
      8 #include "base/strings/utf_string_conversions.h"
      9 #include "chrome/test/base/testing_profile.h"
     10 #include "content/public/browser/browser_context.h"
     11 #include "content/public/browser/storage_partition.h"
     12 #include "content/public/test/test_browser_thread_bundle.h"
     13 #include "testing/gtest/include/gtest/gtest.h"
     14 
     15 namespace {
     16 
     17 class CannedBrowsingDataIndexedDBHelperTest : public testing::Test {
     18  public:
     19   virtual void SetUp() OVERRIDE {
     20     IndexedDBContext()->SetTaskRunnerForTesting(
     21         base::MessageLoopProxy::current().get());
     22   }
     23 
     24   content::IndexedDBContext* IndexedDBContext() {
     25     return content::BrowserContext::GetDefaultStoragePartition(&profile_)->
     26         GetIndexedDBContext();
     27   }
     28 
     29  private:
     30   content::TestBrowserThreadBundle thread_bundle_;
     31   TestingProfile profile_;
     32 };
     33 
     34 TEST_F(CannedBrowsingDataIndexedDBHelperTest, Empty) {
     35   const GURL origin("http://host1:1/");
     36   const base::string16 description(base::ASCIIToUTF16("description"));
     37 
     38   scoped_refptr<CannedBrowsingDataIndexedDBHelper> helper(
     39       new CannedBrowsingDataIndexedDBHelper(IndexedDBContext()));
     40 
     41   ASSERT_TRUE(helper->empty());
     42   helper->AddIndexedDB(origin, description);
     43   ASSERT_FALSE(helper->empty());
     44   helper->Reset();
     45   ASSERT_TRUE(helper->empty());
     46 }
     47 
     48 TEST_F(CannedBrowsingDataIndexedDBHelperTest, Delete) {
     49   const GURL origin1("http://host1:9000");
     50   const base::string16 db1(base::ASCIIToUTF16("db1"));
     51 
     52   const GURL origin2("http://example.com");
     53   const base::string16 db2(base::ASCIIToUTF16("db2"));
     54   const base::string16 db3(base::ASCIIToUTF16("db3"));
     55 
     56   scoped_refptr<CannedBrowsingDataIndexedDBHelper> helper(
     57       new CannedBrowsingDataIndexedDBHelper(IndexedDBContext()));
     58 
     59   EXPECT_TRUE(helper->empty());
     60   helper->AddIndexedDB(origin1, db1);
     61   helper->AddIndexedDB(origin2, db2);
     62   helper->AddIndexedDB(origin2, db3);
     63   EXPECT_EQ(3u, helper->GetIndexedDBCount());
     64   helper->DeleteIndexedDB(origin2);
     65   EXPECT_EQ(1u, helper->GetIndexedDBCount());
     66 }
     67 
     68 TEST_F(CannedBrowsingDataIndexedDBHelperTest, IgnoreExtensionsAndDevTools) {
     69   const GURL origin1("chrome-extension://abcdefghijklmnopqrstuvwxyz/");
     70   const GURL origin2("chrome-devtools://abcdefghijklmnopqrstuvwxyz/");
     71   const base::string16 description(base::ASCIIToUTF16("description"));
     72 
     73   scoped_refptr<CannedBrowsingDataIndexedDBHelper> helper(
     74       new CannedBrowsingDataIndexedDBHelper(IndexedDBContext()));
     75 
     76   ASSERT_TRUE(helper->empty());
     77   helper->AddIndexedDB(origin1, description);
     78   ASSERT_TRUE(helper->empty());
     79   helper->AddIndexedDB(origin2, description);
     80   ASSERT_TRUE(helper->empty());
     81 }
     82 
     83 }  // namespace
     84