| 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 |