Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / browsing_data / browsing_data_indexed_db_helper_unittest.cc
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   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