OLD | NEW |
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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/url_request/request_tracker.h" | 5 #include "net/url_request/request_tracker.h" |
6 | 6 |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "base/format_macros.h" |
8 #include "base/string_util.h" | 9 #include "base/string_util.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
10 | 11 |
11 namespace { | 12 namespace { |
12 | 13 |
13 static const int kMaxNumLoadLogEntries = 1; | 14 static const int kMaxNumLoadLogEntries = 1; |
14 | 15 |
15 class TestRequest { | 16 class TestRequest { |
16 public: | 17 public: |
17 explicit TestRequest(const GURL& url) | 18 explicit TestRequest(const GURL& url) |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 | 85 |
85 TEST(RequestTrackerTest, GraveyardBounded) { | 86 TEST(RequestTrackerTest, GraveyardBounded) { |
86 RequestTracker<TestRequest> tracker; | 87 RequestTracker<TestRequest> tracker; |
87 EXPECT_EQ(0u, tracker.GetLiveRequests().size()); | 88 EXPECT_EQ(0u, tracker.GetLiveRequests().size()); |
88 EXPECT_EQ(0u, tracker.GetRecentlyDeceased().size()); | 89 EXPECT_EQ(0u, tracker.GetRecentlyDeceased().size()); |
89 | 90 |
90 // Add twice as many requests as will fit in the graveyard. | 91 // Add twice as many requests as will fit in the graveyard. |
91 for (size_t i = 0; | 92 for (size_t i = 0; |
92 i < RequestTracker<TestRequest>::kMaxGraveyardSize * 2; | 93 i < RequestTracker<TestRequest>::kMaxGraveyardSize * 2; |
93 ++i) { | 94 ++i) { |
94 TestRequest req(GURL(StringPrintf("http://req%d", i).c_str())); | 95 TestRequest req(GURL(StringPrintf("http://req%" PRIuS, i).c_str())); |
95 tracker.Add(&req); | 96 tracker.Add(&req); |
96 tracker.Remove(&req); | 97 tracker.Remove(&req); |
97 } | 98 } |
98 | 99 |
99 // Check that only the last |kMaxGraveyardSize| requests are in-memory. | 100 // Check that only the last |kMaxGraveyardSize| requests are in-memory. |
100 | 101 |
101 RequestTracker<TestRequest>::RecentRequestInfoList recent_reqs = | 102 RequestTracker<TestRequest>::RecentRequestInfoList recent_reqs = |
102 tracker.GetRecentlyDeceased(); | 103 tracker.GetRecentlyDeceased(); |
103 | 104 |
104 ASSERT_EQ(RequestTracker<TestRequest>::kMaxGraveyardSize, recent_reqs.size()); | 105 ASSERT_EQ(RequestTracker<TestRequest>::kMaxGraveyardSize, recent_reqs.size()); |
105 | 106 |
106 for (size_t i = 0; i < RequestTracker<TestRequest>::kMaxGraveyardSize; ++i) { | 107 for (size_t i = 0; i < RequestTracker<TestRequest>::kMaxGraveyardSize; ++i) { |
107 size_t req_number = i + RequestTracker<TestRequest>::kMaxGraveyardSize; | 108 size_t req_number = i + RequestTracker<TestRequest>::kMaxGraveyardSize; |
108 GURL url(StringPrintf("http://req%d", req_number).c_str()); | 109 GURL url(StringPrintf("http://req%" PRIuS, req_number).c_str()); |
109 EXPECT_EQ(url, recent_reqs[i].original_url); | 110 EXPECT_EQ(url, recent_reqs[i].original_url); |
110 } | 111 } |
111 } | 112 } |
112 | 113 |
113 // Check that very long URLs are truncated. | 114 // Check that very long URLs are truncated. |
114 TEST(RequestTrackerTest, GraveyardURLBounded) { | 115 TEST(RequestTrackerTest, GraveyardURLBounded) { |
115 RequestTracker<TestRequest> tracker; | 116 RequestTracker<TestRequest> tracker; |
116 | 117 |
117 std::string big_url_spec("http://"); | 118 std::string big_url_spec("http://"); |
118 big_url_spec.resize(2 * RequestTracker<TestRequest>::kMaxGraveyardURLSize, | 119 big_url_spec.resize(2 * RequestTracker<TestRequest>::kMaxGraveyardURLSize, |
(...skipping 24 matching lines...) Expand all Loading... |
143 | 144 |
144 tracker.Add(&req); | 145 tracker.Add(&req); |
145 tracker.Remove(&req); | 146 tracker.Remove(&req); |
146 | 147 |
147 // Check that the invalid URL made it into graveyard. | 148 // Check that the invalid URL made it into graveyard. |
148 ASSERT_EQ(1u, tracker.GetRecentlyDeceased().size()); | 149 ASSERT_EQ(1u, tracker.GetRecentlyDeceased().size()); |
149 EXPECT_FALSE(tracker.GetRecentlyDeceased()[0].original_url.is_valid()); | 150 EXPECT_FALSE(tracker.GetRecentlyDeceased()[0].original_url.is_valid()); |
150 } | 151 } |
151 | 152 |
152 } // namespace | 153 } // namespace |
OLD | NEW |