| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "net/http/infinite_cache.h" | 5 #include "net/http/infinite_cache.h" |
| 6 | 6 |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" |
| 9 #include "base/threading/platform_thread.h" | 9 #include "base/threading/platform_thread.h" |
| 10 #include "base/time.h" | 10 #include "base/time.h" |
| 11 #include "net/base/net_errors.h" | 11 #include "net/base/net_errors.h" |
| 12 #include "net/base/test_completion_callback.h" | 12 #include "net/base/test_completion_callback.h" |
| 13 #include "net/http/http_transaction_unittest.h" | 13 #include "net/http/http_transaction_unittest.h" |
| 14 #include "net/http/http_util.h" | 14 #include "net/http/http_util.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 16 | 16 |
| 17 using base::Time; | 17 using base::Time; |
| 18 using base::TimeDelta; | 18 using base::TimeDelta; |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 | 106 |
| 107 // Now a different URL. | 107 // Now a different URL. |
| 108 MockHttpRequest request2(kSimpleGET_Transaction); | 108 MockHttpRequest request2(kSimpleGET_Transaction); |
| 109 transaction->OnRequestStart(&request2); | 109 transaction->OnRequestStart(&request2); |
| 110 transaction->OnResponseReceived(&response); | 110 transaction->OnResponseReceived(&response); |
| 111 transaction.reset(); | 111 transaction.reset(); |
| 112 EXPECT_EQ(2, cb.GetResult(cache.QueryItemsForTest(cb.callback()))); | 112 EXPECT_EQ(2, cb.GetResult(cache.QueryItemsForTest(cb.callback()))); |
| 113 } | 113 } |
| 114 | 114 |
| 115 TEST(InfiniteCache, Save_Restore) { | 115 TEST(InfiniteCache, Save_Restore) { |
| 116 ScopedTempDir dir; | 116 base::ScopedTempDir dir; |
| 117 ASSERT_TRUE(dir.CreateUniqueTempDir()); | 117 ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| 118 FilePath path = dir.path().Append(FILE_PATH_LITERAL("infinite")); | 118 FilePath path = dir.path().Append(FILE_PATH_LITERAL("infinite")); |
| 119 | 119 |
| 120 scoped_ptr<InfiniteCache> cache(new InfiniteCache); | 120 scoped_ptr<InfiniteCache> cache(new InfiniteCache); |
| 121 cache->Init(path); | 121 cache->Init(path); |
| 122 net::TestCompletionCallback cb; | 122 net::TestCompletionCallback cb; |
| 123 | 123 |
| 124 ProcessRequest(kTypicalGET_Transaction, cache.get()); | 124 ProcessRequest(kTypicalGET_Transaction, cache.get()); |
| 125 ProcessRequest(kSimpleGET_Transaction, cache.get()); | 125 ProcessRequest(kSimpleGET_Transaction, cache.get()); |
| 126 ProcessRequest(kETagGET_Transaction, cache.get()); | 126 ProcessRequest(kETagGET_Transaction, cache.get()); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 ProcessRequest(request, &cache); | 158 ProcessRequest(request, &cache); |
| 159 EXPECT_EQ(1, cb.GetResult(cache.QueryItemsForTest(cb.callback()))); | 159 EXPECT_EQ(1, cb.GetResult(cache.QueryItemsForTest(cb.callback()))); |
| 160 | 160 |
| 161 request.method = "DELETE"; | 161 request.method = "DELETE"; |
| 162 request.url = kETagGET_Transaction.url; | 162 request.url = kETagGET_Transaction.url; |
| 163 ProcessRequest(request, &cache); | 163 ProcessRequest(request, &cache); |
| 164 EXPECT_EQ(0, cb.GetResult(cache.QueryItemsForTest(cb.callback()))); | 164 EXPECT_EQ(0, cb.GetResult(cache.QueryItemsForTest(cb.callback()))); |
| 165 } | 165 } |
| 166 | 166 |
| 167 TEST(InfiniteCache, Delete) { | 167 TEST(InfiniteCache, Delete) { |
| 168 ScopedTempDir dir; | 168 base::ScopedTempDir dir; |
| 169 ASSERT_TRUE(dir.CreateUniqueTempDir()); | 169 ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| 170 FilePath path = dir.path().Append(FILE_PATH_LITERAL("infinite")); | 170 FilePath path = dir.path().Append(FILE_PATH_LITERAL("infinite")); |
| 171 | 171 |
| 172 scoped_ptr<InfiniteCache> cache(new InfiniteCache); | 172 scoped_ptr<InfiniteCache> cache(new InfiniteCache); |
| 173 cache->Init(path); | 173 cache->Init(path); |
| 174 net::TestCompletionCallback cb; | 174 net::TestCompletionCallback cb; |
| 175 | 175 |
| 176 ProcessRequest(kTypicalGET_Transaction, cache.get()); | 176 ProcessRequest(kTypicalGET_Transaction, cache.get()); |
| 177 ProcessRequest(kSimpleGET_Transaction, cache.get()); | 177 ProcessRequest(kSimpleGET_Transaction, cache.get()); |
| 178 EXPECT_EQ(2, cb.GetResult(cache->QueryItemsForTest(cb.callback()))); | 178 EXPECT_EQ(2, cb.GetResult(cache->QueryItemsForTest(cb.callback()))); |
| 179 EXPECT_EQ(net::OK, cb.GetResult(cache->FlushDataForTest(cb.callback()))); | 179 EXPECT_EQ(net::OK, cb.GetResult(cache->FlushDataForTest(cb.callback()))); |
| 180 EXPECT_TRUE(file_util::PathExists(path)); | 180 EXPECT_TRUE(file_util::PathExists(path)); |
| 181 | 181 |
| 182 cache.reset(new InfiniteCache); | 182 cache.reset(new InfiniteCache); |
| 183 cache->Init(path); | 183 cache->Init(path); |
| 184 EXPECT_EQ(2, cb.GetResult(cache->QueryItemsForTest(cb.callback()))); | 184 EXPECT_EQ(2, cb.GetResult(cache->QueryItemsForTest(cb.callback()))); |
| 185 EXPECT_EQ(net::OK, cb.GetResult(cache->DeleteData(cb.callback()))); | 185 EXPECT_EQ(net::OK, cb.GetResult(cache->DeleteData(cb.callback()))); |
| 186 EXPECT_EQ(0, cb.GetResult(cache->QueryItemsForTest(cb.callback()))); | 186 EXPECT_EQ(0, cb.GetResult(cache->QueryItemsForTest(cb.callback()))); |
| 187 EXPECT_FALSE(file_util::PathExists(path)); | 187 EXPECT_FALSE(file_util::PathExists(path)); |
| 188 | 188 |
| 189 EXPECT_EQ(net::OK, cb.GetResult(cache->FlushDataForTest(cb.callback()))); | 189 EXPECT_EQ(net::OK, cb.GetResult(cache->FlushDataForTest(cb.callback()))); |
| 190 } | 190 } |
| 191 | 191 |
| 192 TEST(InfiniteCache, DeleteBetween) { | 192 TEST(InfiniteCache, DeleteBetween) { |
| 193 #if !defined(OS_ANDROID) | 193 #if !defined(OS_ANDROID) |
| 194 ScopedTempDir dir; | 194 base::ScopedTempDir dir; |
| 195 ASSERT_TRUE(dir.CreateUniqueTempDir()); | 195 ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| 196 FilePath path = dir.path().Append(FILE_PATH_LITERAL("infinite")); | 196 FilePath path = dir.path().Append(FILE_PATH_LITERAL("infinite")); |
| 197 | 197 |
| 198 scoped_ptr<InfiniteCache> cache(new InfiniteCache); | 198 scoped_ptr<InfiniteCache> cache(new InfiniteCache); |
| 199 cache->Init(path); | 199 cache->Init(path); |
| 200 net::TestCompletionCallback cb; | 200 net::TestCompletionCallback cb; |
| 201 | 201 |
| 202 Time::Exploded baseline = {}; | 202 Time::Exploded baseline = {}; |
| 203 baseline.year = 2012; | 203 baseline.year = 2012; |
| 204 baseline.month = 1; | 204 baseline.month = 1; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 // Make sure the data is deleted from disk. | 238 // Make sure the data is deleted from disk. |
| 239 EXPECT_EQ(net::OK, cb.GetResult(cache->FlushDataForTest(cb.callback()))); | 239 EXPECT_EQ(net::OK, cb.GetResult(cache->FlushDataForTest(cb.callback()))); |
| 240 cache.reset(new InfiniteCache); | 240 cache.reset(new InfiniteCache); |
| 241 cache->Init(path); | 241 cache->Init(path); |
| 242 | 242 |
| 243 EXPECT_EQ(1, cb.GetResult(cache->QueryItemsForTest(cb.callback()))); | 243 EXPECT_EQ(1, cb.GetResult(cache->QueryItemsForTest(cb.callback()))); |
| 244 ProcessRequest(kTypicalGET_Transaction, cache.get()); | 244 ProcessRequest(kTypicalGET_Transaction, cache.get()); |
| 245 EXPECT_EQ(1, cb.GetResult(cache->QueryItemsForTest(cb.callback()))); | 245 EXPECT_EQ(1, cb.GetResult(cache->QueryItemsForTest(cb.callback()))); |
| 246 #endif // OS_ANDROID | 246 #endif // OS_ANDROID |
| 247 } | 247 } |
| OLD | NEW |