| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 // Copyright 2013 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/precache/core/precache_url_table.h" | 
|  | 6 | 
|  | 7 #include <map> | 
|  | 8 | 
|  | 9 #include "base/basictypes.h" | 
|  | 10 #include "base/compiler_specific.h" | 
|  | 11 #include "base/time/time.h" | 
|  | 12 #include "sql/connection.h" | 
|  | 13 #include "testing/gtest/include/gtest/gtest.h" | 
|  | 14 | 
|  | 15 namespace precache { | 
|  | 16 | 
|  | 17 namespace { | 
|  | 18 | 
|  | 19 base::Time GetTimeFromString(const char* time_string) { | 
|  | 20   base::Time time; | 
|  | 21   EXPECT_TRUE(base::Time::FromString(time_string, &time)); | 
|  | 22   return time; | 
|  | 23 } | 
|  | 24 | 
|  | 25 class PrecacheURLTableTest : public testing::Test { | 
|  | 26  public: | 
|  | 27   PrecacheURLTableTest() {} | 
|  | 28   virtual ~PrecacheURLTableTest() {} | 
|  | 29 | 
|  | 30  protected: | 
|  | 31   virtual void SetUp() OVERRIDE { | 
|  | 32     precache_url_table_.reset(new PrecacheURLTable()); | 
|  | 33     db_.reset(new sql::Connection()); | 
|  | 34     ASSERT_TRUE(db_->OpenInMemory()); | 
|  | 35     precache_url_table_->Init(db_.get()); | 
|  | 36   } | 
|  | 37 | 
|  | 38   scoped_ptr<PrecacheURLTable> precache_url_table_; | 
|  | 39   scoped_ptr<sql::Connection> db_; | 
|  | 40 }; | 
|  | 41 | 
|  | 42 TEST_F(PrecacheURLTableTest, AddURLWithNoExistingRow) { | 
|  | 43   const base::Time kTime = GetTimeFromString("11 Oct 2013, 12:00:00"); | 
|  | 44   precache_url_table_->AddURL(GURL("http://url.com"), kTime); | 
|  | 45 | 
|  | 46   std::map<GURL, base::Time> expected_map; | 
|  | 47   expected_map[GURL("http://url.com")] = kTime; | 
|  | 48 | 
|  | 49   std::map<GURL, base::Time> actual_map; | 
|  | 50   precache_url_table_->GetAllDataForTesting(&actual_map); | 
|  | 51   EXPECT_EQ(expected_map, actual_map); | 
|  | 52 } | 
|  | 53 | 
|  | 54 TEST_F(PrecacheURLTableTest, AddURLWithExistingRow) { | 
|  | 55   const base::Time kOldTime = GetTimeFromString("11 Oct 2013, 12:00:00"); | 
|  | 56   const base::Time kNewTime = GetTimeFromString("11 Oct 2013, 12:00:00"); | 
|  | 57   precache_url_table_->AddURL(GURL("http://url.com"), kOldTime); | 
|  | 58   precache_url_table_->AddURL(GURL("http://url.com"), kNewTime); | 
|  | 59 | 
|  | 60   std::map<GURL, base::Time> expected_map; | 
|  | 61   expected_map[GURL("http://url.com")] = kNewTime; | 
|  | 62 | 
|  | 63   std::map<GURL, base::Time> actual_map; | 
|  | 64   precache_url_table_->GetAllDataForTesting(&actual_map); | 
|  | 65   EXPECT_EQ(expected_map, actual_map); | 
|  | 66 } | 
|  | 67 | 
|  | 68 TEST_F(PrecacheURLTableTest, DeleteURL) { | 
|  | 69   const base::Time kStaysTime = GetTimeFromString("11 Oct 2013, 12:00:00"); | 
|  | 70   const base::Time kDeletedTime = GetTimeFromString("11 Oct 2013, 13:00:00"); | 
|  | 71 | 
|  | 72   precache_url_table_->AddURL(GURL("http://stays.com"), kStaysTime); | 
|  | 73   precache_url_table_->AddURL(GURL("http://deleted.com"), kDeletedTime); | 
|  | 74 | 
|  | 75   precache_url_table_->DeleteURL(GURL("http://deleted.com")); | 
|  | 76 | 
|  | 77   std::map<GURL, base::Time> expected_map; | 
|  | 78   expected_map[GURL("http://stays.com")] = kStaysTime; | 
|  | 79 | 
|  | 80   std::map<GURL, base::Time> actual_map; | 
|  | 81   precache_url_table_->GetAllDataForTesting(&actual_map); | 
|  | 82   EXPECT_EQ(expected_map, actual_map); | 
|  | 83 } | 
|  | 84 | 
|  | 85 TEST_F(PrecacheURLTableTest, HasURL) { | 
|  | 86   EXPECT_FALSE(precache_url_table_->HasURL(GURL("http://url.com"))); | 
|  | 87 | 
|  | 88   precache_url_table_->AddURL(GURL("http://url.com"), | 
|  | 89                               GetTimeFromString("11 Oct 2013, 12:00:00")); | 
|  | 90 | 
|  | 91   EXPECT_TRUE(precache_url_table_->HasURL(GURL("http://url.com"))); | 
|  | 92 | 
|  | 93   precache_url_table_->DeleteURL(GURL("http://url.com")); | 
|  | 94 | 
|  | 95   EXPECT_FALSE(precache_url_table_->HasURL(GURL("http://url.com"))); | 
|  | 96 } | 
|  | 97 | 
|  | 98 TEST_F(PrecacheURLTableTest, DeleteAllPrecachedUntil) { | 
|  | 99   const base::Time kBeforeTime = GetTimeFromString("11 Oct 2013, 11:59:59"); | 
|  | 100   const base::Time kEndTime = GetTimeFromString("11 Oct 2013, 12:00:00"); | 
|  | 101   const base::Time kAfterTime = GetTimeFromString("11 Oct 2013, 12:00:01"); | 
|  | 102 | 
|  | 103   precache_url_table_->AddURL(GURL("http://before.com"), kBeforeTime); | 
|  | 104   precache_url_table_->AddURL(GURL("http://end.com"), kEndTime); | 
|  | 105   precache_url_table_->AddURL(GURL("http://after.com"), kAfterTime); | 
|  | 106 | 
|  | 107   precache_url_table_->DeleteAllPrecachedUntil(kEndTime); | 
|  | 108 | 
|  | 109   std::map<GURL, base::Time> expected_map; | 
|  | 110   expected_map[GURL("http://after.com")] = kAfterTime; | 
|  | 111 | 
|  | 112   std::map<GURL, base::Time> actual_map; | 
|  | 113   precache_url_table_->GetAllDataForTesting(&actual_map); | 
|  | 114   EXPECT_EQ(expected_map, actual_map); | 
|  | 115 } | 
|  | 116 | 
|  | 117 }  // namespace | 
|  | 118 | 
|  | 119 }  // namespace precache | 
| OLD | NEW | 
|---|