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

Side by Side Diff: net/http/http_cache_unittest.cc

Issue 1594036: Update about:cache to display cached metadata for an entry.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « net/http/http_cache_transaction.cc ('k') | net/url_request/view_cache_helper.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2010 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/http_cache.h" 5 #include "net/http/http_cache.h"
6 6
7 #include "base/hash_tables.h" 7 #include "base/hash_tables.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/scoped_vector.h" 9 #include "base/scoped_vector.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 int GetEffectiveTestMode(int test_mode) { 55 int GetEffectiveTestMode(int test_mode) {
56 if (!g_test_mode) 56 if (!g_test_mode)
57 return test_mode; 57 return test_mode;
58 58
59 return g_test_mode; 59 return g_test_mode;
60 } 60 }
61 61
62 //----------------------------------------------------------------------------- 62 //-----------------------------------------------------------------------------
63 // mock disk cache (a very basic memory cache implementation) 63 // mock disk cache (a very basic memory cache implementation)
64 64
65 static const int kNumCacheEntryDataIndices = 3;
66
65 class MockDiskEntry : public disk_cache::Entry, 67 class MockDiskEntry : public disk_cache::Entry,
66 public base::RefCounted<MockDiskEntry> { 68 public base::RefCounted<MockDiskEntry> {
67 public: 69 public:
68 MockDiskEntry() 70 MockDiskEntry()
69 : test_mode_(0), doomed_(false), sparse_(false), fail_requests_(false), 71 : test_mode_(0), doomed_(false), sparse_(false), fail_requests_(false),
70 busy_(false), delayed_(false) { 72 busy_(false), delayed_(false) {
71 } 73 }
72 74
73 explicit MockDiskEntry(const std::string& key) 75 explicit MockDiskEntry(const std::string& key)
74 : key_(key), doomed_(false), sparse_(false), fail_requests_(false), 76 : key_(key), doomed_(false), sparse_(false), fail_requests_(false),
(...skipping 19 matching lines...) Expand all
94 96
95 virtual Time GetLastUsed() const { 97 virtual Time GetLastUsed() const {
96 return Time::FromInternalValue(0); 98 return Time::FromInternalValue(0);
97 } 99 }
98 100
99 virtual Time GetLastModified() const { 101 virtual Time GetLastModified() const {
100 return Time::FromInternalValue(0); 102 return Time::FromInternalValue(0);
101 } 103 }
102 104
103 virtual int32 GetDataSize(int index) const { 105 virtual int32 GetDataSize(int index) const {
104 DCHECK(index >= 0 && index < 3); 106 DCHECK(index >= 0 && index < kNumCacheEntryDataIndices);
105 return static_cast<int32>(data_[index].size()); 107 return static_cast<int32>(data_[index].size());
106 } 108 }
107 109
108 virtual int ReadData(int index, int offset, net::IOBuffer* buf, int buf_len, 110 virtual int ReadData(int index, int offset, net::IOBuffer* buf, int buf_len,
109 net::CompletionCallback* callback) { 111 net::CompletionCallback* callback) {
110 DCHECK(index >= 0 && index < 3); 112 DCHECK(index >= 0 && index < kNumCacheEntryDataIndices);
111 113
112 if (fail_requests_) 114 if (fail_requests_)
113 return net::ERR_CACHE_READ_FAILURE; 115 return net::ERR_CACHE_READ_FAILURE;
114 116
115 if (offset < 0 || offset > static_cast<int>(data_[index].size())) 117 if (offset < 0 || offset > static_cast<int>(data_[index].size()))
116 return net::ERR_FAILED; 118 return net::ERR_FAILED;
117 if (static_cast<size_t>(offset) == data_[index].size()) 119 if (static_cast<size_t>(offset) == data_[index].size())
118 return 0; 120 return 0;
119 121
120 int num = std::min(buf_len, static_cast<int>(data_[index].size()) - offset); 122 int num = std::min(buf_len, static_cast<int>(data_[index].size()) - offset);
121 memcpy(buf->data(), &data_[index][offset], num); 123 memcpy(buf->data(), &data_[index][offset], num);
122 124
123 if (!callback || 125 if (!callback ||
124 (GetEffectiveTestMode(test_mode_) & TEST_MODE_SYNC_CACHE_READ)) 126 (GetEffectiveTestMode(test_mode_) & TEST_MODE_SYNC_CACHE_READ))
125 return num; 127 return num;
126 128
127 CallbackLater(callback, num); 129 CallbackLater(callback, num);
128 return net::ERR_IO_PENDING; 130 return net::ERR_IO_PENDING;
129 } 131 }
130 132
131 virtual int WriteData(int index, int offset, net::IOBuffer* buf, int buf_len, 133 virtual int WriteData(int index, int offset, net::IOBuffer* buf, int buf_len,
132 net::CompletionCallback* callback, bool truncate) { 134 net::CompletionCallback* callback, bool truncate) {
133 DCHECK(index >= 0 && index < 3); 135 DCHECK(index >= 0 && index < kNumCacheEntryDataIndices);
134 DCHECK(truncate); 136 DCHECK(truncate);
135 137
136 if (fail_requests_) 138 if (fail_requests_)
137 return net::ERR_CACHE_READ_FAILURE; 139 return net::ERR_CACHE_READ_FAILURE;
138 140
139 if (offset < 0 || offset > static_cast<int>(data_[index].size())) 141 if (offset < 0 || offset > static_cast<int>(data_[index].size()))
140 return net::ERR_FAILED; 142 return net::ERR_FAILED;
141 143
142 data_[index].resize(offset + buf_len); 144 data_[index].resize(offset + buf_len);
143 if (buf_len) 145 if (buf_len)
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 } else { 333 } else {
332 for (size_t i = 0; i < callback_list.size(); i++) { 334 for (size_t i = 0; i < callback_list.size(); i++) {
333 CallbackInfo& c = callback_list[i]; 335 CallbackInfo& c = callback_list[i];
334 c.entry->CallbackLater(c.callback, c.result); 336 c.entry->CallbackLater(c.callback, c.result);
335 } 337 }
336 callback_list.clear(); 338 callback_list.clear();
337 } 339 }
338 } 340 }
339 341
340 std::string key_; 342 std::string key_;
341 std::vector<char> data_[3]; 343 std::vector<char> data_[kNumCacheEntryDataIndices];
342 int test_mode_; 344 int test_mode_;
343 bool doomed_; 345 bool doomed_;
344 bool sparse_; 346 bool sparse_;
345 bool fail_requests_; 347 bool fail_requests_;
346 bool busy_; 348 bool busy_;
347 bool delayed_; 349 bool delayed_;
348 static bool cancel_; 350 static bool cancel_;
349 static bool ignore_callbacks_; 351 static bool ignore_callbacks_;
350 }; 352 };
351 353
(...skipping 3992 matching lines...) Expand 10 before | Expand all | Expand 10 after
4344 // Now return 200 when validating the entry so the metadata will be lost. 4346 // Now return 200 when validating the entry so the metadata will be lost.
4345 MockTransaction trans2(kTypicalGET_Transaction); 4347 MockTransaction trans2(kTypicalGET_Transaction);
4346 trans2.load_flags = net::LOAD_VALIDATE_CACHE; 4348 trans2.load_flags = net::LOAD_VALIDATE_CACHE;
4347 RunTransactionTestWithResponseInfo(cache.http_cache(), trans2, &response); 4349 RunTransactionTestWithResponseInfo(cache.http_cache(), trans2, &response);
4348 EXPECT_TRUE(response.metadata.get() == NULL); 4350 EXPECT_TRUE(response.metadata.get() == NULL);
4349 4351
4350 EXPECT_EQ(3, cache.network_layer()->transaction_count()); 4352 EXPECT_EQ(3, cache.network_layer()->transaction_count());
4351 EXPECT_EQ(4, cache.disk_cache()->open_count()); 4353 EXPECT_EQ(4, cache.disk_cache()->open_count());
4352 EXPECT_EQ(1, cache.disk_cache()->create_count()); 4354 EXPECT_EQ(1, cache.disk_cache()->create_count());
4353 } 4355 }
OLDNEW
« no previous file with comments | « net/http/http_cache_transaction.cc ('k') | net/url_request/view_cache_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698