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

Side by Side Diff: ios/web/navigation/navigation_manager_impl_unittest.mm

Issue 2698773002: [iOS] Refactoring web CRWSessionController user agent code. (Closed)
Patch Set: Fix unit tests and rebase Created 3 years, 10 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #import "ios/web/navigation/navigation_manager_impl.h" 5 #import "ios/web/navigation/navigation_manager_impl.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #import "base/mac/scoped_nsobject.h" 8 #import "base/mac/scoped_nsobject.h"
9 #import "ios/web/navigation/crw_session_controller+private_constructors.h" 9 #import "ios/web/navigation/crw_session_controller+private_constructors.h"
10 #import "ios/web/navigation/navigation_manager_delegate.h" 10 #import "ios/web/navigation/navigation_manager_delegate.h"
11 #include "ios/web/public/navigation_item.h"
11 #include "ios/web/public/test/fakes/test_browser_state.h" 12 #include "ios/web/public/test/fakes/test_browser_state.h"
12 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
13 #include "testing/platform_test.h" 14 #include "testing/platform_test.h"
14 15
15 namespace web { 16 namespace web {
16 namespace { 17 namespace {
17 // Stub class for NavigationManagerDelegate. 18 // Stub class for NavigationManagerDelegate.
18 class TestNavigationManagerDelegate : public NavigationManagerDelegate { 19 class TestNavigationManagerDelegate : public NavigationManagerDelegate {
19 void GoToIndex(int index) override {} 20 void GoToIndex(int index) override {}
20 void LoadURLWithParams(const NavigationManager::WebLoadParams&) override {} 21 void LoadURLWithParams(const NavigationManager::WebLoadParams&) override {}
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 EXPECT_EQ(-1, navigation_manager()->GetCurrentItemIndex()); 56 EXPECT_EQ(-1, navigation_manager()->GetCurrentItemIndex());
56 EXPECT_FALSE(navigation_manager()->GetPreviousItem()); 57 EXPECT_FALSE(navigation_manager()->GetPreviousItem());
57 EXPECT_EQ(-1, navigation_manager()->GetCurrentItemIndex()); 58 EXPECT_EQ(-1, navigation_manager()->GetCurrentItemIndex());
58 EXPECT_FALSE(navigation_manager()->GetPendingItem()); 59 EXPECT_FALSE(navigation_manager()->GetPendingItem());
59 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 60 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex());
60 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0)); 61 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(0));
61 } 62 }
62 63
63 // Tests that GetPendingItemIndex() returns -1 if there is no pending entry. 64 // Tests that GetPendingItemIndex() returns -1 if there is no pending entry.
64 TEST_F(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) { 65 TEST_F(NavigationManagerTest, GetPendingItemIndexWithoutPendingEntry) {
65 [session_controller() addPendingItem:GURL("http://www.url.com") 66 navigation_manager()->AddPendingItem(
66 referrer:Referrer() 67 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
67 transition:ui::PAGE_TRANSITION_TYPED 68 web::NavigationInitiationType::USER_INITIATED);
68 rendererInitiated:NO];
69 [session_controller() commitPendingItem]; 69 [session_controller() commitPendingItem];
70 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 70 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex());
71 } 71 }
72 72
73 // Tests that GetPendingItemIndex() returns current item index if there is a 73 // Tests that GetPendingItemIndex() returns current item index if there is a
74 // pending entry. 74 // pending entry.
75 TEST_F(NavigationManagerTest, GetPendingItemIndexWithPendingEntry) { 75 TEST_F(NavigationManagerTest, GetPendingItemIndexWithPendingEntry) {
76 [session_controller() addPendingItem:GURL("http://www.url.com") 76 navigation_manager()->AddPendingItem(
77 referrer:Referrer() 77 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
78 transition:ui::PAGE_TRANSITION_TYPED 78 web::NavigationInitiationType::USER_INITIATED);
79 rendererInitiated:NO];
80 [session_controller() commitPendingItem]; 79 [session_controller() commitPendingItem];
81 [session_controller() addPendingItem:GURL("http://www.url.com/0") 80 navigation_manager()->AddPendingItem(
82 referrer:Referrer() 81 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
83 transition:ui::PAGE_TRANSITION_TYPED 82 web::NavigationInitiationType::USER_INITIATED);
84 rendererInitiated:NO];
85 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); 83 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex());
86 } 84 }
87 85
88 // Tests that GetPendingItemIndex() returns same index as was set by 86 // Tests that GetPendingItemIndex() returns same index as was set by
89 // -[CRWSessionController setPendingItemIndex:]. 87 // -[CRWSessionController setPendingItemIndex:].
90 TEST_F(NavigationManagerTest, GetPendingItemIndexWithIndexedPendingEntry) { 88 TEST_F(NavigationManagerTest, GetPendingItemIndexWithIndexedPendingEntry) {
91 [session_controller() addPendingItem:GURL("http://www.url.com") 89 navigation_manager()->AddPendingItem(
92 referrer:Referrer() 90 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
93 transition:ui::PAGE_TRANSITION_TYPED 91 web::NavigationInitiationType::USER_INITIATED);
94 rendererInitiated:NO];
95 [session_controller() commitPendingItem]; 92 [session_controller() commitPendingItem];
96 [session_controller() addPendingItem:GURL("http://www.url.com/0") 93 navigation_manager()->AddPendingItem(
97 referrer:Referrer() 94 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
98 transition:ui::PAGE_TRANSITION_TYPED 95 web::NavigationInitiationType::USER_INITIATED);
99 rendererInitiated:NO];
100 [session_controller() commitPendingItem]; 96 [session_controller() commitPendingItem];
101 97
102 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 98 EXPECT_EQ(-1, navigation_manager()->GetPendingItemIndex());
103 [session_controller() setPendingItemIndex:0]; 99 [session_controller() setPendingItemIndex:0];
104 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex()); 100 EXPECT_EQ(0, navigation_manager()->GetPendingItemIndex());
105 } 101 }
106 102
107 // Tests that going back or negative offset is not possible without a committed 103 // Tests that going back or negative offset is not possible without a committed
108 // item. 104 // item.
109 TEST_F(NavigationManagerTest, CanGoBackWithoutCommitedItem) { 105 TEST_F(NavigationManagerTest, CanGoBackWithoutCommitedItem) {
110 EXPECT_FALSE(navigation_manager()->CanGoBack()); 106 EXPECT_FALSE(navigation_manager()->CanGoBack());
111 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 107 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
112 } 108 }
113 109
114 // Tests that going back or negative offset is not possible if there is a 110 // Tests that going back or negative offset is not possible if there is a
115 // transient item, but not committed items. 111 // transient item, but not committed items.
116 TEST_F(NavigationManagerTest, CanGoBackWithTransientItem) { 112 TEST_F(NavigationManagerTest, CanGoBackWithTransientItem) {
117 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")]; 113 [session_controller() addTransientItemWithURL:GURL("http://www.url.com")];
118 114
119 EXPECT_FALSE(navigation_manager()->CanGoBack()); 115 EXPECT_FALSE(navigation_manager()->CanGoBack());
120 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 116 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
121 } 117 }
122 118
123 // Tests that going back or negative offset is possible if there is a transient 119 // Tests that going back or negative offset is possible if there is a transient
124 // item and at least one committed item. 120 // item and at least one committed item.
125 TEST_F(NavigationManagerTest, CanGoBackWithTransientItemAndCommittedItem) { 121 TEST_F(NavigationManagerTest, CanGoBackWithTransientItemAndCommittedItem) {
126 [session_controller() addPendingItem:GURL("http://www.url.com") 122 navigation_manager()->AddPendingItem(
127 referrer:Referrer() 123 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
128 transition:ui::PAGE_TRANSITION_TYPED 124 web::NavigationInitiationType::USER_INITIATED);
129 rendererInitiated:NO];
130 [session_controller() commitPendingItem]; 125 [session_controller() commitPendingItem];
131 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/0")]; 126 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/0")];
132 127
133 EXPECT_TRUE(navigation_manager()->CanGoBack()); 128 EXPECT_TRUE(navigation_manager()->CanGoBack());
134 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 129 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
135 } 130 }
136 131
137 // Tests that going back or negative offset is not possible if there is ony one 132 // Tests that going back or negative offset is not possible if there is ony one
138 // committed item and no transient item. 133 // committed item and no transient item.
139 TEST_F(NavigationManagerTest, CanGoBackWithSingleCommitedItem) { 134 TEST_F(NavigationManagerTest, CanGoBackWithSingleCommitedItem) {
140 [session_controller() addPendingItem:GURL("http://www.url.com") 135 navigation_manager()->AddPendingItem(
141 referrer:Referrer() 136 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
142 transition:ui::PAGE_TRANSITION_TYPED 137 web::NavigationInitiationType::USER_INITIATED);
143 rendererInitiated:NO];
144 [session_controller() commitPendingItem]; 138 [session_controller() commitPendingItem];
145 139
146 EXPECT_FALSE(navigation_manager()->CanGoBack()); 140 EXPECT_FALSE(navigation_manager()->CanGoBack());
147 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 141 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
148 } 142 }
149 143
150 // Tests going back possibility with multiple committed items. 144 // Tests going back possibility with multiple committed items.
151 TEST_F(NavigationManagerTest, CanGoBackWithMultipleCommitedItems) { 145 TEST_F(NavigationManagerTest, CanGoBackWithMultipleCommitedItems) {
152 [session_controller() addPendingItem:GURL("http://www.url.com") 146 navigation_manager()->AddPendingItem(
153 referrer:Referrer() 147 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
154 transition:ui::PAGE_TRANSITION_TYPED 148 web::NavigationInitiationType::USER_INITIATED);
155 rendererInitiated:NO];
156 [session_controller() commitPendingItem]; 149 [session_controller() commitPendingItem];
157 [session_controller() addPendingItem:GURL("http://www.url.com/0") 150 navigation_manager()->AddPendingItem(
158 referrer:Referrer() 151 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
159 transition:ui::PAGE_TRANSITION_TYPED 152 web::NavigationInitiationType::USER_INITIATED);
160 rendererInitiated:NO];
161 [session_controller() commitPendingItem]; 153 [session_controller() commitPendingItem];
162 [session_controller() addPendingItem:GURL("http://www.url.com/1") 154 navigation_manager()->AddPendingItem(
163 referrer:Referrer() 155 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
164 transition:ui::PAGE_TRANSITION_TYPED 156 web::NavigationInitiationType::USER_INITIATED);
165 rendererInitiated:NO];
166 [session_controller() commitPendingItem]; 157 [session_controller() commitPendingItem];
167 158
168 EXPECT_TRUE(navigation_manager()->CanGoBack()); 159 EXPECT_TRUE(navigation_manager()->CanGoBack());
169 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 160 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
170 161
171 [session_controller() goToItemAtIndex:1]; 162 [session_controller() goToItemAtIndex:1];
172 EXPECT_TRUE(navigation_manager()->CanGoBack()); 163 EXPECT_TRUE(navigation_manager()->CanGoBack());
173 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 164 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
174 165
175 [session_controller() goToItemAtIndex:0]; 166 [session_controller() goToItemAtIndex:0];
176 EXPECT_FALSE(navigation_manager()->CanGoBack()); 167 EXPECT_FALSE(navigation_manager()->CanGoBack());
177 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 168 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
178 169
179 [session_controller() goToItemAtIndex:1]; 170 [session_controller() goToItemAtIndex:1];
180 EXPECT_TRUE(navigation_manager()->CanGoBack()); 171 EXPECT_TRUE(navigation_manager()->CanGoBack());
181 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1)); 172 EXPECT_TRUE(navigation_manager()->CanGoToOffset(-1));
182 } 173 }
183 174
184 // Tests that going forward or positive offset is not possible if there is a 175 // Tests that going forward or positive offset is not possible if there is a
185 // pending entry. 176 // pending entry.
186 TEST_F(NavigationManagerTest, CanGoForwardWithPendingItem) { 177 TEST_F(NavigationManagerTest, CanGoForwardWithPendingItem) {
187 [session_controller() addPendingItem:GURL("http://www.url.com") 178 navigation_manager()->AddPendingItem(
188 referrer:Referrer() 179 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
189 transition:ui::PAGE_TRANSITION_TYPED 180 web::NavigationInitiationType::USER_INITIATED);
190 rendererInitiated:NO];
191 [session_controller() commitPendingItem]; 181 [session_controller() commitPendingItem];
192 [session_controller() addPendingItem:GURL("http://www.url.com/0") 182 navigation_manager()->AddPendingItem(
193 referrer:Referrer() 183 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
194 transition:ui::PAGE_TRANSITION_TYPED 184 web::NavigationInitiationType::USER_INITIATED);
195 rendererInitiated:NO];
196 [session_controller() commitPendingItem]; 185 [session_controller() commitPendingItem];
197 [session_controller() goToItemAtIndex:0]; 186 [session_controller() goToItemAtIndex:0];
198 [session_controller() addPendingItem:GURL("http://www.url.com/1") 187 navigation_manager()->AddPendingItem(
199 referrer:Referrer() 188 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
200 transition:ui::PAGE_TRANSITION_TYPED 189 web::NavigationInitiationType::USER_INITIATED);
201 rendererInitiated:NO];
202 190
203 // Pending entry should not allow going forward. 191 // Pending entry should not allow going forward.
204 EXPECT_FALSE(navigation_manager()->CanGoForward()); 192 EXPECT_FALSE(navigation_manager()->CanGoForward());
205 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 193 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
206 } 194 }
207 195
208 // Tests that going forward or positive offset is not possible without a 196 // Tests that going forward or positive offset is not possible without a
209 // committed item. 197 // committed item.
210 TEST_F(NavigationManagerTest, CanGoForwardWithoutCommitedItem) { 198 TEST_F(NavigationManagerTest, CanGoForwardWithoutCommitedItem) {
211 EXPECT_FALSE(navigation_manager()->CanGoForward()); 199 EXPECT_FALSE(navigation_manager()->CanGoForward());
212 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 200 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
213 } 201 }
214 202
215 // Tests that going forward or positive offset is not possible if there is ony 203 // Tests that going forward or positive offset is not possible if there is ony
216 // one committed item and no transient item. 204 // one committed item and no transient item.
217 TEST_F(NavigationManagerTest, CanGoForwardWithSingleCommitedItem) { 205 TEST_F(NavigationManagerTest, CanGoForwardWithSingleCommitedItem) {
218 [session_controller() addPendingItem:GURL("http://www.url.com") 206 navigation_manager()->AddPendingItem(
219 referrer:Referrer() 207 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
220 transition:ui::PAGE_TRANSITION_TYPED 208 web::NavigationInitiationType::USER_INITIATED);
221 rendererInitiated:NO];
222 [session_controller() commitPendingItem]; 209 [session_controller() commitPendingItem];
223 210
224 EXPECT_FALSE(navigation_manager()->CanGoForward()); 211 EXPECT_FALSE(navigation_manager()->CanGoForward());
225 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 212 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
226 } 213 }
227 214
228 // Tests going forward possibility with multiple committed items. 215 // Tests going forward possibility with multiple committed items.
229 TEST_F(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) { 216 TEST_F(NavigationManagerTest, CanGoForwardWithMultipleCommitedEntries) {
230 [session_controller() addPendingItem:GURL("http://www.url.com") 217 navigation_manager()->AddPendingItem(
231 referrer:Referrer() 218 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
232 transition:ui::PAGE_TRANSITION_TYPED 219 web::NavigationInitiationType::USER_INITIATED);
233 rendererInitiated:NO];
234 [session_controller() commitPendingItem]; 220 [session_controller() commitPendingItem];
235 [session_controller() addPendingItem:GURL("http://www.url.com/0") 221 navigation_manager()->AddPendingItem(
236 referrer:Referrer() 222 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_TYPED,
237 transition:ui::PAGE_TRANSITION_TYPED 223 web::NavigationInitiationType::USER_INITIATED);
238 rendererInitiated:NO];
239 [session_controller() commitPendingItem]; 224 [session_controller() commitPendingItem];
240 [session_controller() addPendingItem:GURL("http://www.url.com/1") 225 navigation_manager()->AddPendingItem(
241 referrer:Referrer() 226 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_TYPED,
242 transition:ui::PAGE_TRANSITION_TYPED 227 web::NavigationInitiationType::USER_INITIATED);
243 rendererInitiated:NO];
244 [session_controller() commitPendingItem]; 228 [session_controller() commitPendingItem];
245 229
246 EXPECT_FALSE(navigation_manager()->CanGoForward()); 230 EXPECT_FALSE(navigation_manager()->CanGoForward());
247 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 231 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
248 232
249 [session_controller() goToItemAtIndex:1]; 233 [session_controller() goToItemAtIndex:1];
250 EXPECT_TRUE(navigation_manager()->CanGoForward()); 234 EXPECT_TRUE(navigation_manager()->CanGoForward());
251 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 235 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
252 236
253 [session_controller() goToItemAtIndex:0]; 237 [session_controller() goToItemAtIndex:0];
254 EXPECT_TRUE(navigation_manager()->CanGoForward()); 238 EXPECT_TRUE(navigation_manager()->CanGoForward());
255 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 239 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
256 240
257 [session_controller() goToItemAtIndex:1]; 241 [session_controller() goToItemAtIndex:1];
258 EXPECT_TRUE(navigation_manager()->CanGoForward()); 242 EXPECT_TRUE(navigation_manager()->CanGoForward());
259 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1)); 243 EXPECT_TRUE(navigation_manager()->CanGoToOffset(1));
260 244
261 [session_controller() goToItemAtIndex:2]; 245 [session_controller() goToItemAtIndex:2];
262 EXPECT_FALSE(navigation_manager()->CanGoForward()); 246 EXPECT_FALSE(navigation_manager()->CanGoForward());
263 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1)); 247 EXPECT_FALSE(navigation_manager()->CanGoToOffset(1));
264 } 248 }
265 249
266 // Tests CanGoToOffset API for positive, negative and zero delta. Tested 250 // Tests CanGoToOffset API for positive, negative and zero delta. Tested
267 // navigation manager will have redirect entries to make sure they are 251 // navigation manager will have redirect entries to make sure they are
268 // appropriately skipped. 252 // appropriately skipped.
269 TEST_F(NavigationManagerTest, OffsetsWithoutPendingIndex) { 253 TEST_F(NavigationManagerTest, OffsetsWithoutPendingIndex) {
270 [session_controller() addPendingItem:GURL("http://www.url.com/0") 254 navigation_manager()->AddPendingItem(
271 referrer:Referrer() 255 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK,
272 transition:ui::PAGE_TRANSITION_LINK 256 web::NavigationInitiationType::USER_INITIATED);
273 rendererInitiated:NO];
274 [session_controller() commitPendingItem]; 257 [session_controller() commitPendingItem];
275 [session_controller() addPendingItem:GURL("http://www.url.com/redirect") 258 navigation_manager()->AddPendingItem(
276 referrer:Referrer() 259 GURL("http://www.url.com/redirect"), Referrer(),
277 transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK 260 ui::PAGE_TRANSITION_IS_REDIRECT_MASK,
278 rendererInitiated:NO]; 261 web::NavigationInitiationType::USER_INITIATED);
279 [session_controller() commitPendingItem]; 262 [session_controller() commitPendingItem];
280 [session_controller() addPendingItem:GURL("http://www.url.com/1") 263 navigation_manager()->AddPendingItem(
281 referrer:Referrer() 264 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK,
282 transition:ui::PAGE_TRANSITION_LINK 265 web::NavigationInitiationType::USER_INITIATED);
283 rendererInitiated:NO];
284 [session_controller() commitPendingItem]; 266 [session_controller() commitPendingItem];
285 [session_controller() addPendingItem:GURL("http://www.url.com/2") 267 navigation_manager()->AddPendingItem(
286 referrer:Referrer() 268 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK,
287 transition:ui::PAGE_TRANSITION_LINK 269 web::NavigationInitiationType::USER_INITIATED);
288 rendererInitiated:NO];
289 [session_controller() commitPendingItem]; 270 [session_controller() commitPendingItem];
290 [session_controller() addPendingItem:GURL("http://www.url.com/redirect") 271 navigation_manager()->AddPendingItem(
291 referrer:Referrer() 272 GURL("http://www.url.com/redirect"), Referrer(),
292 transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK 273 ui::PAGE_TRANSITION_IS_REDIRECT_MASK,
293 rendererInitiated:NO]; 274 web::NavigationInitiationType::USER_INITIATED);
294 [session_controller() commitPendingItem]; 275 [session_controller() commitPendingItem];
295 ASSERT_EQ(5, navigation_manager()->GetItemCount()); 276 ASSERT_EQ(5, navigation_manager()->GetItemCount());
296 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex()); 277 ASSERT_EQ(4, navigation_manager()->GetCurrentItemIndex());
297 278
298 // Go to entry at index 1 and test API from that state. 279 // Go to entry at index 1 and test API from that state.
299 [session_controller() goToItemAtIndex:1]; 280 [session_controller() goToItemAtIndex:1];
300 ASSERT_EQ(1, navigation_manager()->GetCurrentItemIndex()); 281 ASSERT_EQ(1, navigation_manager()->GetCurrentItemIndex());
301 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex()); 282 ASSERT_EQ(-1, navigation_manager()->GetPendingItemIndex());
302 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1)); 283 EXPECT_FALSE(navigation_manager()->CanGoToOffset(-1));
303 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1)); 284 EXPECT_EQ(-1, navigation_manager()->GetIndexForOffset(-1));
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 EXPECT_EQ(-999999997, navigation_manager()->GetIndexForOffset(-1000000000)); 468 EXPECT_EQ(-999999997, navigation_manager()->GetIndexForOffset(-1000000000));
488 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000)); 469 EXPECT_EQ(1000000004, navigation_manager()->GetIndexForOffset(1000000000));
489 } 470 }
490 471
491 // Tests offsets with pending transient entries (specifically gong back and 472 // Tests offsets with pending transient entries (specifically gong back and
492 // forward from a pending navigation entry that is added to the middle of the 473 // forward from a pending navigation entry that is added to the middle of the
493 // navigation stack). 474 // navigation stack).
494 TEST_F(NavigationManagerTest, OffsetsWithPendingTransientEntry) { 475 TEST_F(NavigationManagerTest, OffsetsWithPendingTransientEntry) {
495 // Create a transient item in the middle of the navigation stack and go back 476 // Create a transient item in the middle of the navigation stack and go back
496 // to it (pending index is 1, current index is 2). 477 // to it (pending index is 1, current index is 2).
497 [session_controller() addPendingItem:GURL("http://www.url.com/0") 478 navigation_manager()->AddPendingItem(
498 referrer:Referrer() 479 GURL("http://www.url.com/0"), Referrer(), ui::PAGE_TRANSITION_LINK,
499 transition:ui::PAGE_TRANSITION_LINK 480 web::NavigationInitiationType::USER_INITIATED);
500 rendererInitiated:NO];
501 [session_controller() commitPendingItem]; 481 [session_controller() commitPendingItem];
502 [session_controller() addPendingItem:GURL("http://www.url.com/1") 482 navigation_manager()->AddPendingItem(
503 referrer:Referrer() 483 GURL("http://www.url.com/1"), Referrer(), ui::PAGE_TRANSITION_LINK,
504 transition:ui::PAGE_TRANSITION_LINK 484 web::NavigationInitiationType::USER_INITIATED);
505 rendererInitiated:NO];
506 [session_controller() commitPendingItem]; 485 [session_controller() commitPendingItem];
507 [session_controller() addPendingItem:GURL("http://www.url.com/2") 486 navigation_manager()->AddPendingItem(
508 referrer:Referrer() 487 GURL("http://www.url.com/2"), Referrer(), ui::PAGE_TRANSITION_LINK,
509 transition:ui::PAGE_TRANSITION_LINK 488 web::NavigationInitiationType::USER_INITIATED);
510 rendererInitiated:NO];
511 [session_controller() commitPendingItem]; 489 [session_controller() commitPendingItem];
512 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/1")]; 490 [session_controller() addTransientItemWithURL:GURL("http://www.url.com/1")];
513 [session_controller() setPendingItemIndex:1]; 491 [session_controller() setPendingItemIndex:1];
514 492
515 ASSERT_EQ(3, navigation_manager()->GetItemCount()); 493 ASSERT_EQ(3, navigation_manager()->GetItemCount());
516 ASSERT_EQ(2, navigation_manager()->GetCurrentItemIndex()); 494 ASSERT_EQ(2, navigation_manager()->GetCurrentItemIndex());
517 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); 495 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex());
518 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); 496 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1));
519 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); 497 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1));
520 498
521 // Now go forward to that middle transient item (pending index is 1, 499 // Now go forward to that middle transient item (pending index is 1,
522 // current index is 0). 500 // current index is 0).
523 [session_controller() goToItemAtIndex:0]; 501 [session_controller() goToItemAtIndex:0];
524 [session_controller() setPendingItemIndex:1]; 502 [session_controller() setPendingItemIndex:1];
525 ASSERT_EQ(3, navigation_manager()->GetItemCount()); 503 ASSERT_EQ(3, navigation_manager()->GetItemCount());
526 ASSERT_EQ(0, navigation_manager()->GetCurrentItemIndex()); 504 ASSERT_EQ(0, navigation_manager()->GetCurrentItemIndex());
527 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex()); 505 ASSERT_EQ(1, navigation_manager()->GetPendingItemIndex());
528 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1)); 506 EXPECT_EQ(2, navigation_manager()->GetIndexForOffset(1));
529 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1)); 507 EXPECT_EQ(0, navigation_manager()->GetIndexForOffset(-1));
530 } 508 }
531 509
510 // Tests that desktop user agent can be enforced to use for next pending item.
511 TEST_F(NavigationManagerTest, OverrideDesktopUserAgent) {
512 navigation_manager()->OverrideDesktopUserAgentForNextPendingItem();
513 navigation_manager()->AddPendingItem(
514 GURL("http://www.url.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
515 web::NavigationInitiationType::USER_INITIATED);
516 [session_controller() commitPendingItem];
517 NavigationItem* visible_item = navigation_manager()->GetVisibleItem();
518 EXPECT_TRUE(visible_item->IsOverridingUserAgent());
519 }
520
532 } // namespace web 521 } // namespace web
OLDNEW
« no previous file with comments | « ios/web/navigation/navigation_manager_impl.mm ('k') | ios/web/net/crw_ssl_status_updater_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698