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_database_helper.h"
6
7#include "chrome/test/base/testing_profile.h"
8#include "content/public/test/test_browser_thread_bundle.h"
9#include "storage/common/database/database_identifier.h"
10#include "testing/gtest/include/gtest/gtest.h"
11
12namespace {
13
14using storage::DatabaseIdentifier;
15
16class CannedBrowsingDataDatabaseHelperTest : public testing::Test {
17  content::TestBrowserThreadBundle thread_bundle_;
18};
19
20TEST_F(CannedBrowsingDataDatabaseHelperTest, Empty) {
21  TestingProfile profile;
22
23  const GURL origin("http://host1:1/");
24  const char db[] = "db1";
25
26  scoped_refptr<CannedBrowsingDataDatabaseHelper> helper(
27      new CannedBrowsingDataDatabaseHelper(&profile));
28
29  ASSERT_TRUE(helper->empty());
30  helper->AddDatabase(origin, db, std::string());
31  ASSERT_FALSE(helper->empty());
32  helper->Reset();
33  ASSERT_TRUE(helper->empty());
34}
35
36TEST_F(CannedBrowsingDataDatabaseHelperTest, Delete) {
37  TestingProfile profile;
38
39  const GURL origin1("http://host1:9000");
40  const char db1[] = "db1";
41
42  const GURL origin2("http://example.com");
43  const char db2[] = "db2";
44
45  const GURL origin3("http://foo.example.com");
46  const char db3[] = "db3";
47
48  scoped_refptr<CannedBrowsingDataDatabaseHelper> helper(
49      new CannedBrowsingDataDatabaseHelper(&profile));
50
51  EXPECT_TRUE(helper->empty());
52  helper->AddDatabase(origin1, db1, std::string());
53  helper->AddDatabase(origin2, db2, std::string());
54  helper->AddDatabase(origin3, db3, std::string());
55  EXPECT_EQ(3u, helper->GetDatabaseCount());
56  helper->DeleteDatabase(
57      DatabaseIdentifier::CreateFromOrigin(origin2).ToString(), db1);
58  EXPECT_EQ(3u, helper->GetDatabaseCount());
59  helper->DeleteDatabase(
60      DatabaseIdentifier::CreateFromOrigin(origin2).ToString(), db2);
61  EXPECT_EQ(2u, helper->GetDatabaseCount());
62}
63
64TEST_F(CannedBrowsingDataDatabaseHelperTest, IgnoreExtensionsAndDevTools) {
65  TestingProfile profile;
66
67  const GURL origin1("chrome-extension://abcdefghijklmnopqrstuvwxyz/");
68  const GURL origin2("chrome-devtools://abcdefghijklmnopqrstuvwxyz/");
69  const char db[] = "db1";
70
71  scoped_refptr<CannedBrowsingDataDatabaseHelper> helper(
72      new CannedBrowsingDataDatabaseHelper(&profile));
73
74  ASSERT_TRUE(helper->empty());
75  helper->AddDatabase(origin1, db, std::string());
76  ASSERT_TRUE(helper->empty());
77  helper->AddDatabase(origin2, db, std::string());
78  ASSERT_TRUE(helper->empty());
79  helper->Reset();
80  ASSERT_TRUE(helper->empty());
81}
82
83}  // namespace
84