Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(393)

Side by Side Diff: services/url_response_disk_cache/url_response_disk_cache_db_unittests.cc

Issue 1351693007: Add invalidation to url_response_disk_cache. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Follow review Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/files/scoped_temp_dir.h" 5 #include "base/files/scoped_temp_dir.h"
6 #include "base/threading/platform_thread.h" 6 #include "base/threading/platform_thread.h"
7 #include "services/url_response_disk_cache/url_response_disk_cache_db.h" 7 #include "services/url_response_disk_cache/url_response_disk_cache_db.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace mojo { 10 namespace mojo {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 db_->SetVersion(15); 48 db_->SetVersion(15);
49 EXPECT_EQ(15lu, db_->GetVersion()); 49 EXPECT_EQ(15lu, db_->GetVersion());
50 Open(); 50 Open();
51 EXPECT_EQ(15lu, db_->GetVersion()); 51 EXPECT_EQ(15lu, db_->GetVersion());
52 } 52 }
53 53
54 TEST_F(URLResponseDiskCacheDBTest, Entry) { 54 TEST_F(URLResponseDiskCacheDBTest, Entry) {
55 std::string origin = "origin"; 55 std::string origin = "origin";
56 std::string url = "url"; 56 std::string url = "url";
57 db_->PutNew(origin, url, NewEntry()); 57 db_->PutNew(origin, url, NewEntry());
58 CacheEntryPtr entry = db_->GetNewest(origin, url); 58 CacheKeyPtr key;
59 CacheEntryPtr entry = db_->GetNewest(origin, url, &key);
60 EXPECT_TRUE(key);
59 EXPECT_TRUE(entry); 61 EXPECT_TRUE(entry);
60 Open(); 62 Open();
61 entry = db_->GetNewest(origin, url); 63 CacheKeyPtr key2;
64 entry = db_->GetNewest(origin, url, &key2);
62 EXPECT_TRUE(entry); 65 EXPECT_TRUE(entry);
66 EXPECT_TRUE(key.Equals(key2));
67
68 std::string new_entry_directory = "/newcache/";
69 entry->entry_directory = new_entry_directory;
70 db_->Put(key.Clone(), entry.Pass());
71 entry = db_->GetNewest(origin, url, nullptr);
72 EXPECT_TRUE(entry);
73 EXPECT_EQ(new_entry_directory, entry->entry_directory);
74 entry = db_->Get(key.Pass());
75 EXPECT_TRUE(entry);
76 EXPECT_EQ(new_entry_directory, entry->entry_directory);
63 } 77 }
64 78
65 TEST_F(URLResponseDiskCacheDBTest, Newest) { 79 TEST_F(URLResponseDiskCacheDBTest, Newest) {
66 std::string origin = "origin"; 80 std::string origin = "origin";
67 std::string url = "url"; 81 std::string url = "url";
68 std::string new_entry_directory = "/newcache/"; 82 std::string new_entry_directory = "/newcache/";
69 db_->PutNew(origin, url, NewEntry()); 83 db_->PutNew(origin, url, NewEntry());
70 base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(5)); 84 base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(5));
71 CacheEntryPtr entry = NewEntry(); 85 CacheEntryPtr entry = NewEntry();
72 entry->entry_directory = new_entry_directory; 86 entry->entry_directory = new_entry_directory;
73 db_->PutNew(origin, url, entry.Pass()); 87 db_->PutNew(origin, url, entry.Pass());
74 entry = db_->GetNewest(origin, url); 88 entry = db_->GetNewest(origin, url, nullptr);
75 EXPECT_TRUE(entry); 89 EXPECT_TRUE(entry);
76 EXPECT_EQ(new_entry_directory, entry->entry_directory); 90 EXPECT_EQ(new_entry_directory, entry->entry_directory);
77 } 91 }
78 92
79 TEST_F(URLResponseDiskCacheDBTest, Iterator) { 93 TEST_F(URLResponseDiskCacheDBTest, Iterator) {
80 std::string origin = "origin"; 94 std::string origin = "origin";
81 std::string url1 = "a"; 95 std::string url1 = "a";
82 std::string url2 = "b"; 96 std::string url2 = "b";
83 std::string url3 = "c"; 97 std::string url3 = "c";
84 db_->PutNew(origin, url2, NewEntry()); 98 db_->PutNew(origin, url2, NewEntry());
85 CacheEntryPtr entry = db_->GetNewest(origin, url2); 99 CacheEntryPtr entry = db_->GetNewest(origin, url2, nullptr);
86 EXPECT_TRUE(entry); 100 EXPECT_TRUE(entry);
87 db_->PutNew(origin, url1, NewEntry()); 101 db_->PutNew(origin, url1, NewEntry());
88 db_->PutNew(origin, url3, NewEntry()); 102 db_->PutNew(origin, url3, NewEntry());
89 entry = CacheEntry::New(); 103 entry = CacheEntry::New();
90 scoped_ptr<URLResponseDiskCacheDB::Iterator> iterator = db_->GetIterator(); 104 scoped_ptr<URLResponseDiskCacheDB::Iterator> iterator = db_->GetIterator();
91 EXPECT_TRUE(iterator->HasNext()); 105 EXPECT_TRUE(iterator->HasNext());
92 CacheKeyPtr key; 106 CacheKeyPtr key;
93 iterator->GetNext(&key, &entry); 107 iterator->GetNext(&key, &entry);
94 EXPECT_TRUE(iterator->HasNext()); 108 EXPECT_TRUE(iterator->HasNext());
95 EXPECT_TRUE(key); 109 EXPECT_TRUE(key);
96 EXPECT_EQ(url1, key->url); 110 EXPECT_EQ(url1, key->url);
97 EXPECT_TRUE(entry); 111 EXPECT_TRUE(entry);
98 iterator->GetNext(&key, &entry); 112 iterator->GetNext(&key, &entry);
99 EXPECT_TRUE(iterator->HasNext()); 113 EXPECT_TRUE(iterator->HasNext());
100 EXPECT_TRUE(key); 114 EXPECT_TRUE(key);
101 EXPECT_EQ(url2, key->url); 115 EXPECT_EQ(url2, key->url);
102 EXPECT_TRUE(entry); 116 EXPECT_TRUE(entry);
103 iterator->GetNext(&key, &entry); 117 iterator->GetNext(&key, &entry);
104 EXPECT_FALSE(iterator->HasNext()); 118 EXPECT_FALSE(iterator->HasNext());
105 EXPECT_TRUE(key); 119 EXPECT_TRUE(key);
106 EXPECT_EQ(url3, key->url); 120 EXPECT_EQ(url3, key->url);
107 EXPECT_TRUE(entry); 121 EXPECT_TRUE(entry);
108 } 122 }
109 123
110 TEST_F(URLResponseDiskCacheDBTest, Delete) { 124 TEST_F(URLResponseDiskCacheDBTest, Delete) {
111 std::string origin = "origin"; 125 std::string origin = "origin";
112 std::string url = "url"; 126 std::string url = "url";
113 db_->PutNew(origin, url, NewEntry()); 127 db_->PutNew(origin, url, NewEntry());
114 CacheEntryPtr entry = db_->GetNewest(origin, url); 128 CacheEntryPtr entry = db_->GetNewest(origin, url, nullptr);
115 EXPECT_TRUE(entry); 129 EXPECT_TRUE(entry);
116 entry = CacheEntry::New(); 130 entry = CacheEntry::New();
117 scoped_ptr<URLResponseDiskCacheDB::Iterator> iterator = db_->GetIterator(); 131 scoped_ptr<URLResponseDiskCacheDB::Iterator> iterator = db_->GetIterator();
118 EXPECT_TRUE(iterator->HasNext()); 132 EXPECT_TRUE(iterator->HasNext());
119 CacheKeyPtr key; 133 CacheKeyPtr key;
120 iterator->GetNext(&key, &entry); 134 iterator->GetNext(&key, &entry);
121 EXPECT_FALSE(iterator->HasNext()); 135 EXPECT_FALSE(iterator->HasNext());
122 EXPECT_TRUE(key); 136 EXPECT_TRUE(key);
123 EXPECT_TRUE(entry); 137 EXPECT_TRUE(entry);
124 db_->Delete(key.Pass()); 138 db_->Delete(key.Pass());
125 entry = db_->GetNewest(origin, url); 139 entry = db_->GetNewest(origin, url, nullptr);
126 EXPECT_FALSE(entry); 140 EXPECT_FALSE(entry);
127 } 141 }
128 142
129 TEST_F(URLResponseDiskCacheDBTest, IteratorFrozen) { 143 TEST_F(URLResponseDiskCacheDBTest, IteratorFrozen) {
130 std::string origin = "origin"; 144 std::string origin = "origin";
131 std::string url = "url"; 145 std::string url = "url";
132 db_->PutNew(origin, url, NewEntry()); 146 db_->PutNew(origin, url, NewEntry());
133 scoped_ptr<URLResponseDiskCacheDB::Iterator> iterator = db_->GetIterator(); 147 scoped_ptr<URLResponseDiskCacheDB::Iterator> iterator = db_->GetIterator();
134 std::string url2 = "url2"; 148 std::string url2 = "url2";
135 db_->PutNew(origin, url2, NewEntry()); 149 db_->PutNew(origin, url2, NewEntry());
136 150
137 EXPECT_TRUE(iterator->HasNext()); 151 EXPECT_TRUE(iterator->HasNext());
138 iterator->GetNext(nullptr, nullptr); 152 iterator->GetNext(nullptr, nullptr);
139 EXPECT_FALSE(iterator->HasNext()); 153 EXPECT_FALSE(iterator->HasNext());
140 } 154 }
141 155
142 } // namespace 156 } // namespace
143 157
144 } // namespace mojo 158 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698