| 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 "chrome/browser/prerender/prerender_history.h" | 5 #include "chrome/browser/prerender/prerender_history.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 } | 52 } |
| 53 | 53 |
| 54 TEST(PrerenderHistoryTest, GetAsValue) { | 54 TEST(PrerenderHistoryTest, GetAsValue) { |
| 55 std::unique_ptr<base::Value> entry_value; | 55 std::unique_ptr<base::Value> entry_value; |
| 56 base::ListValue* entry_list = NULL; | 56 base::ListValue* entry_list = NULL; |
| 57 | 57 |
| 58 // Create a history with only 2 values. | 58 // Create a history with only 2 values. |
| 59 PrerenderHistory history(2); | 59 PrerenderHistory history(2); |
| 60 | 60 |
| 61 // Make sure an empty list exists when retrieving as value. | 61 // Make sure an empty list exists when retrieving as value. |
| 62 entry_value.reset(history.GetEntriesAsValue()); | 62 entry_value = history.GetEntriesAsValue(); |
| 63 ASSERT_TRUE(entry_value.get() != NULL); | 63 ASSERT_TRUE(entry_value.get() != NULL); |
| 64 ASSERT_TRUE(entry_value->GetAsList(&entry_list)); | 64 ASSERT_TRUE(entry_value->GetAsList(&entry_list)); |
| 65 EXPECT_TRUE(entry_list->empty()); | 65 EXPECT_TRUE(entry_list->empty()); |
| 66 | 66 |
| 67 // Base time used for all events. Each event is given a time 1 millisecond | 67 // Base time used for all events. Each event is given a time 1 millisecond |
| 68 // after that of the previous one. | 68 // after that of the previous one. |
| 69 base::Time epoch_start = base::Time::UnixEpoch(); | 69 base::Time epoch_start = base::Time::UnixEpoch(); |
| 70 | 70 |
| 71 // Add a single entry and make sure that it matches up. | 71 // Add a single entry and make sure that it matches up. |
| 72 const char* const kFirstUrl = "http://www.alpha.com/"; | 72 const char* const kFirstUrl = "http://www.alpha.com/"; |
| 73 const FinalStatus kFirstFinalStatus = FINAL_STATUS_USED; | 73 const FinalStatus kFirstFinalStatus = FINAL_STATUS_USED; |
| 74 const Origin kFirstOrigin = ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN; | 74 const Origin kFirstOrigin = ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN; |
| 75 PrerenderHistory::Entry entry_first( | 75 PrerenderHistory::Entry entry_first( |
| 76 GURL(kFirstUrl), kFirstFinalStatus, kFirstOrigin, epoch_start); | 76 GURL(kFirstUrl), kFirstFinalStatus, kFirstOrigin, epoch_start); |
| 77 history.AddEntry(entry_first); | 77 history.AddEntry(entry_first); |
| 78 entry_value.reset(history.GetEntriesAsValue()); | 78 entry_value = history.GetEntriesAsValue(); |
| 79 ASSERT_TRUE(entry_value.get() != NULL); | 79 ASSERT_TRUE(entry_value.get() != NULL); |
| 80 ASSERT_TRUE(entry_value->GetAsList(&entry_list)); | 80 ASSERT_TRUE(entry_value->GetAsList(&entry_list)); |
| 81 EXPECT_EQ(1u, entry_list->GetSize()); | 81 EXPECT_EQ(1u, entry_list->GetSize()); |
| 82 EXPECT_TRUE(ListEntryMatches(entry_list, 0u, kFirstUrl, kFirstFinalStatus, | 82 EXPECT_TRUE(ListEntryMatches(entry_list, 0u, kFirstUrl, kFirstFinalStatus, |
| 83 kFirstOrigin, "0")); | 83 kFirstOrigin, "0")); |
| 84 | 84 |
| 85 // Add a second entry and make sure both first and second appear. | 85 // Add a second entry and make sure both first and second appear. |
| 86 const char* const kSecondUrl = "http://www.beta.com/"; | 86 const char* const kSecondUrl = "http://www.beta.com/"; |
| 87 const FinalStatus kSecondFinalStatus = FINAL_STATUS_INVALID_HTTP_METHOD; | 87 const FinalStatus kSecondFinalStatus = FINAL_STATUS_INVALID_HTTP_METHOD; |
| 88 const Origin kSecondOrigin = ORIGIN_OMNIBOX; | 88 const Origin kSecondOrigin = ORIGIN_OMNIBOX; |
| 89 PrerenderHistory::Entry entry_second( | 89 PrerenderHistory::Entry entry_second( |
| 90 GURL(kSecondUrl), kSecondFinalStatus, kSecondOrigin, | 90 GURL(kSecondUrl), kSecondFinalStatus, kSecondOrigin, |
| 91 epoch_start + base::TimeDelta::FromMilliseconds(1)); | 91 epoch_start + base::TimeDelta::FromMilliseconds(1)); |
| 92 history.AddEntry(entry_second); | 92 history.AddEntry(entry_second); |
| 93 entry_value.reset(history.GetEntriesAsValue()); | 93 entry_value = history.GetEntriesAsValue(); |
| 94 ASSERT_TRUE(entry_value.get() != NULL); | 94 ASSERT_TRUE(entry_value.get() != NULL); |
| 95 ASSERT_TRUE(entry_value->GetAsList(&entry_list)); | 95 ASSERT_TRUE(entry_value->GetAsList(&entry_list)); |
| 96 EXPECT_EQ(2u, entry_list->GetSize()); | 96 EXPECT_EQ(2u, entry_list->GetSize()); |
| 97 EXPECT_TRUE(ListEntryMatches(entry_list, 0u, kSecondUrl, kSecondFinalStatus, | 97 EXPECT_TRUE(ListEntryMatches(entry_list, 0u, kSecondUrl, kSecondFinalStatus, |
| 98 kSecondOrigin, "1")); | 98 kSecondOrigin, "1")); |
| 99 EXPECT_TRUE(ListEntryMatches(entry_list, 1u, kFirstUrl, kFirstFinalStatus, | 99 EXPECT_TRUE(ListEntryMatches(entry_list, 1u, kFirstUrl, kFirstFinalStatus, |
| 100 kFirstOrigin, "0")); | 100 kFirstOrigin, "0")); |
| 101 | 101 |
| 102 // Add a third entry and make sure that the first one drops off. | 102 // Add a third entry and make sure that the first one drops off. |
| 103 const char* const kThirdUrl = "http://www.gamma.com/"; | 103 const char* const kThirdUrl = "http://www.gamma.com/"; |
| 104 const FinalStatus kThirdFinalStatus = FINAL_STATUS_AUTH_NEEDED; | 104 const FinalStatus kThirdFinalStatus = FINAL_STATUS_AUTH_NEEDED; |
| 105 const Origin kThirdOrigin = ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN; | 105 const Origin kThirdOrigin = ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN; |
| 106 PrerenderHistory::Entry entry_third( | 106 PrerenderHistory::Entry entry_third( |
| 107 GURL(kThirdUrl), kThirdFinalStatus, kThirdOrigin, | 107 GURL(kThirdUrl), kThirdFinalStatus, kThirdOrigin, |
| 108 epoch_start + base::TimeDelta::FromMilliseconds(2)); | 108 epoch_start + base::TimeDelta::FromMilliseconds(2)); |
| 109 history.AddEntry(entry_third); | 109 history.AddEntry(entry_third); |
| 110 entry_value.reset(history.GetEntriesAsValue()); | 110 entry_value = history.GetEntriesAsValue(); |
| 111 ASSERT_TRUE(entry_value.get() != NULL); | 111 ASSERT_TRUE(entry_value.get() != NULL); |
| 112 ASSERT_TRUE(entry_value->GetAsList(&entry_list)); | 112 ASSERT_TRUE(entry_value->GetAsList(&entry_list)); |
| 113 EXPECT_EQ(2u, entry_list->GetSize()); | 113 EXPECT_EQ(2u, entry_list->GetSize()); |
| 114 EXPECT_TRUE(ListEntryMatches(entry_list, 0u, kThirdUrl, kThirdFinalStatus, | 114 EXPECT_TRUE(ListEntryMatches(entry_list, 0u, kThirdUrl, kThirdFinalStatus, |
| 115 kThirdOrigin, "2")); | 115 kThirdOrigin, "2")); |
| 116 EXPECT_TRUE(ListEntryMatches(entry_list, 1u, kSecondUrl, kSecondFinalStatus, | 116 EXPECT_TRUE(ListEntryMatches(entry_list, 1u, kSecondUrl, kSecondFinalStatus, |
| 117 kSecondOrigin, "1")); | 117 kSecondOrigin, "1")); |
| 118 | 118 |
| 119 // Make sure clearing history acts as expected. | 119 // Make sure clearing history acts as expected. |
| 120 history.Clear(); | 120 history.Clear(); |
| 121 entry_value.reset(history.GetEntriesAsValue()); | 121 entry_value = history.GetEntriesAsValue(); |
| 122 ASSERT_TRUE(entry_value.get() != NULL); | 122 ASSERT_TRUE(entry_value.get() != NULL); |
| 123 ASSERT_TRUE(entry_value->GetAsList(&entry_list)); | 123 ASSERT_TRUE(entry_value->GetAsList(&entry_list)); |
| 124 EXPECT_TRUE(entry_list->empty()); | 124 EXPECT_TRUE(entry_list->empty()); |
| 125 } | 125 } |
| 126 | 126 |
| 127 } // namespace | 127 } // namespace |
| 128 | 128 |
| 129 } // namespace prerender | 129 } // namespace prerender |
| OLD | NEW |