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

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

Issue 2794723002: Create new pending item if UserAgentOverrideOption is not INHERIT. (Closed)
Patch Set: Rebase Created 3 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 #import "ios/web/navigation/crw_session_controller.h" 5 #import "ios/web/navigation/crw_session_controller.h"
6 6
7 #import <Foundation/Foundation.h> 7 #import <Foundation/Foundation.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #import "base/mac/scoped_nsobject.h" 12 #import "base/mac/scoped_nsobject.h"
13 #include "base/memory/ptr_util.h" 13 #include "base/memory/ptr_util.h"
14 #include "base/strings/sys_string_conversions.h" 14 #include "base/strings/sys_string_conversions.h"
15 #import "ios/web/navigation/crw_session_controller+private_constructors.h" 15 #import "ios/web/navigation/crw_session_controller+private_constructors.h"
16 #import "ios/web/navigation/navigation_item_impl.h" 16 #import "ios/web/navigation/navigation_item_impl.h"
17 #import "ios/web/navigation/navigation_manager_impl.h" 17 #import "ios/web/navigation/navigation_manager_impl.h"
18 #include "ios/web/public/referrer.h" 18 #include "ios/web/public/referrer.h"
19 #include "ios/web/public/test/fakes/test_browser_state.h" 19 #include "ios/web/public/test/fakes/test_browser_state.h"
20 #include "ios/web/public/test/test_web_thread_bundle.h" 20 #include "ios/web/public/test/test_web_thread_bundle.h"
21 #import "net/base/mac/url_conversions.h" 21 #import "net/base/mac/url_conversions.h"
22 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
23 #import "testing/gtest_mac.h" 23 #import "testing/gtest_mac.h"
24 #include "testing/platform_test.h" 24 #include "testing/platform_test.h"
25 25
26 using UserAgentOverrideOption = web::NavigationManager::UserAgentOverrideOption;
27
26 @interface CRWSessionController (Testing) 28 @interface CRWSessionController (Testing)
27 - (const GURL&)URLForItemAtIndex:(size_t)index; 29 - (const GURL&)URLForItemAtIndex:(size_t)index;
28 - (const GURL&)currentURL; 30 - (const GURL&)currentURL;
29 @end 31 @end
30 32
31 @implementation CRWSessionController (Testing) 33 @implementation CRWSessionController (Testing)
32 - (const GURL&)URLForItemAtIndex:(size_t)index { 34 - (const GURL&)URLForItemAtIndex:(size_t)index {
33 if (index < self.items.size()) 35 if (index < self.items.size())
34 return self.items[index]->GetURL(); 36 return self.items[index]->GetURL();
35 return GURL::EmptyGURL(); 37 return GURL::EmptyGURL();
(...skipping 23 matching lines...) Expand all
59 }; 61 };
60 62
61 TEST_F(CRWSessionControllerTest, Init) { 63 TEST_F(CRWSessionControllerTest, Init) {
62 EXPECT_TRUE([session_controller_ items].empty()); 64 EXPECT_TRUE([session_controller_ items].empty());
63 EXPECT_FALSE([session_controller_ currentItem]); 65 EXPECT_FALSE([session_controller_ currentItem]);
64 } 66 }
65 67
66 // Tests session controller state after setting a pending index. 68 // Tests session controller state after setting a pending index.
67 TEST_F(CRWSessionControllerTest, SetPendingIndex) { 69 TEST_F(CRWSessionControllerTest, SetPendingIndex) {
68 [session_controller_ 70 [session_controller_
69 addPendingItem:GURL("http://www.example.com") 71 addPendingItem:GURL("http://www.example.com")
70 referrer:web::Referrer() 72 referrer:web::Referrer()
71 transition:ui::PAGE_TRANSITION_TYPED 73 transition:ui::PAGE_TRANSITION_TYPED
72 initiationType:web::NavigationInitiationType::USER_INITIATED]; 74 initiationType:web::NavigationInitiationType::USER_INITIATED
75 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
73 [session_controller_ commitPendingItem]; 76 [session_controller_ commitPendingItem];
74 77
75 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 78 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
76 [session_controller_ setPendingItemIndex:0]; 79 [session_controller_ setPendingItemIndex:0];
77 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 80 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
78 EXPECT_EQ([session_controller_ items].back().get(), 81 EXPECT_EQ([session_controller_ items].back().get(),
79 [session_controller_ pendingItem]); 82 [session_controller_ pendingItem]);
80 } 83 }
81 84
82 TEST_F(CRWSessionControllerTest, addPendingItem) { 85 TEST_F(CRWSessionControllerTest, addPendingItem) {
83 [session_controller_ 86 [session_controller_
84 addPendingItem:GURL("http://www.url.com") 87 addPendingItem:GURL("http://www.url.com")
85 referrer:MakeReferrer("http://www.referer.com") 88 referrer:MakeReferrer("http://www.referer.com")
86 transition:ui::PAGE_TRANSITION_TYPED 89 transition:ui::PAGE_TRANSITION_TYPED
87 initiationType:web::NavigationInitiationType::USER_INITIATED]; 90 initiationType:web::NavigationInitiationType::USER_INITIATED
91 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
88 92
89 EXPECT_TRUE([session_controller_ items].empty()); 93 EXPECT_TRUE([session_controller_ items].empty());
90 EXPECT_EQ( 94 EXPECT_EQ(
91 GURL("http://www.url.com/"), 95 GURL("http://www.url.com/"),
92 [session_controller_ currentURL]); 96 [session_controller_ currentURL]);
93 } 97 }
94 98
95 TEST_F(CRWSessionControllerTest, addPendingItemWithCommittedItems) { 99 TEST_F(CRWSessionControllerTest, addPendingItemWithCommittedItems) {
96 [session_controller_ 100 [session_controller_
97 addPendingItem:GURL("http://www.committed.url.com") 101 addPendingItem:GURL("http://www.committed.url.com")
98 referrer:MakeReferrer("http://www.referer.com") 102 referrer:MakeReferrer("http://www.referer.com")
99 transition:ui::PAGE_TRANSITION_TYPED 103 transition:ui::PAGE_TRANSITION_TYPED
100 initiationType:web::NavigationInitiationType::USER_INITIATED]; 104 initiationType:web::NavigationInitiationType::USER_INITIATED
105 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
101 [session_controller_ commitPendingItem]; 106 [session_controller_ commitPendingItem];
102 107
103 [session_controller_ 108 [session_controller_
104 addPendingItem:GURL("http://www.url.com") 109 addPendingItem:GURL("http://www.url.com")
105 referrer:MakeReferrer("http://www.referer.com") 110 referrer:MakeReferrer("http://www.referer.com")
106 transition:ui::PAGE_TRANSITION_TYPED 111 transition:ui::PAGE_TRANSITION_TYPED
107 initiationType:web::NavigationInitiationType::USER_INITIATED]; 112 initiationType:web::NavigationInitiationType::USER_INITIATED
113 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
108 114
109 EXPECT_EQ(1U, [session_controller_ items].size()); 115 EXPECT_EQ(1U, [session_controller_ items].size());
110 EXPECT_EQ(GURL("http://www.committed.url.com/"), 116 EXPECT_EQ(GURL("http://www.committed.url.com/"),
111 [session_controller_ URLForItemAtIndex:0U]); 117 [session_controller_ URLForItemAtIndex:0U]);
112 EXPECT_EQ( 118 EXPECT_EQ(
113 GURL("http://www.url.com/"), 119 GURL("http://www.url.com/"),
114 [session_controller_ currentURL]); 120 [session_controller_ currentURL]);
115 } 121 }
116 122
117 // Tests that adding a pending item resets pending item index. 123 // Tests that adding a pending item resets pending item index.
118 TEST_F(CRWSessionControllerTest, addPendingItemWithExistingPendingItemIndex) { 124 TEST_F(CRWSessionControllerTest, addPendingItemWithExistingPendingItemIndex) {
119 [session_controller_ 125 [session_controller_
120 addPendingItem:GURL("http://www.example.com") 126 addPendingItem:GURL("http://www.example.com")
121 referrer:web::Referrer() 127 referrer:web::Referrer()
122 transition:ui::PAGE_TRANSITION_TYPED 128 transition:ui::PAGE_TRANSITION_TYPED
123 initiationType:web::NavigationInitiationType::USER_INITIATED]; 129 initiationType:web::NavigationInitiationType::USER_INITIATED
130 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
124 [session_controller_ commitPendingItem]; 131 [session_controller_ commitPendingItem];
125 [session_controller_ 132 [session_controller_
126 addPendingItem:GURL("http://www.example.com/0") 133 addPendingItem:GURL("http://www.example.com/0")
127 referrer:web::Referrer() 134 referrer:web::Referrer()
128 transition:ui::PAGE_TRANSITION_TYPED 135 transition:ui::PAGE_TRANSITION_TYPED
129 initiationType:web::NavigationInitiationType::USER_INITIATED]; 136 initiationType:web::NavigationInitiationType::USER_INITIATED
137 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
130 [session_controller_ commitPendingItem]; 138 [session_controller_ commitPendingItem];
131 139
132 // Set 0 as pending item index. 140 // Set 0 as pending item index.
133 [session_controller_ setPendingItemIndex:0]; 141 [session_controller_ setPendingItemIndex:0];
134 EXPECT_EQ(GURL("http://www.example.com/"), 142 EXPECT_EQ(GURL("http://www.example.com/"),
135 [session_controller_ pendingItem]->GetURL()); 143 [session_controller_ pendingItem]->GetURL());
136 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 144 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
137 145
138 // Add a pending item, which should drop pending navigation index. 146 // Add a pending item, which should drop pending navigation index.
139 [session_controller_ 147 [session_controller_
140 addPendingItem:GURL("http://www.example.com/1") 148 addPendingItem:GURL("http://www.example.com/1")
141 referrer:web::Referrer() 149 referrer:web::Referrer()
142 transition:ui::PAGE_TRANSITION_TYPED 150 transition:ui::PAGE_TRANSITION_TYPED
143 initiationType:web::NavigationInitiationType::USER_INITIATED]; 151 initiationType:web::NavigationInitiationType::USER_INITIATED
152 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
144 EXPECT_EQ(GURL("http://www.example.com/1"), 153 EXPECT_EQ(GURL("http://www.example.com/1"),
145 [session_controller_ pendingItem]->GetURL()); 154 [session_controller_ pendingItem]->GetURL());
146 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 155 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
147 } 156 }
148 157
149 TEST_F(CRWSessionControllerTest, addPendingItemOverriding) { 158 TEST_F(CRWSessionControllerTest, addPendingItemOverriding) {
150 [session_controller_ 159 [session_controller_
151 addPendingItem:GURL("http://www.url.com") 160 addPendingItem:GURL("http://www.url.com")
152 referrer:MakeReferrer("http://www.referer.com") 161 referrer:MakeReferrer("http://www.referer.com")
153 transition:ui::PAGE_TRANSITION_TYPED 162 transition:ui::PAGE_TRANSITION_TYPED
154 initiationType:web::NavigationInitiationType::USER_INITIATED]; 163 initiationType:web::NavigationInitiationType::USER_INITIATED
164 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
155 [session_controller_ 165 [session_controller_
156 addPendingItem:GURL("http://www.another.url.com") 166 addPendingItem:GURL("http://www.another.url.com")
157 referrer:MakeReferrer("http://www.another.referer.com") 167 referrer:MakeReferrer("http://www.another.referer.com")
158 transition:ui::PAGE_TRANSITION_TYPED 168 transition:ui::PAGE_TRANSITION_TYPED
159 initiationType:web::NavigationInitiationType::USER_INITIATED]; 169 initiationType:web::NavigationInitiationType::USER_INITIATED
170 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
160 171
161 EXPECT_TRUE([session_controller_ items].empty()); 172 EXPECT_TRUE([session_controller_ items].empty());
162 EXPECT_EQ( 173 EXPECT_EQ(
163 GURL("http://www.another.url.com/"), 174 GURL("http://www.another.url.com/"),
164 [session_controller_ currentURL]); 175 [session_controller_ currentURL]);
165 } 176 }
166 177
167 TEST_F(CRWSessionControllerTest, addPendingItemAndCommit) { 178 TEST_F(CRWSessionControllerTest, addPendingItemAndCommit) {
168 [session_controller_ 179 [session_controller_
169 addPendingItem:GURL("http://www.url.com") 180 addPendingItem:GURL("http://www.url.com")
170 referrer:MakeReferrer("http://www.referer.com") 181 referrer:MakeReferrer("http://www.referer.com")
171 transition:ui::PAGE_TRANSITION_TYPED 182 transition:ui::PAGE_TRANSITION_TYPED
172 initiationType:web::NavigationInitiationType::USER_INITIATED]; 183 initiationType:web::NavigationInitiationType::USER_INITIATED
184 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
173 [session_controller_ commitPendingItem]; 185 [session_controller_ commitPendingItem];
174 186
175 EXPECT_EQ(1U, [session_controller_ items].size()); 187 EXPECT_EQ(1U, [session_controller_ items].size());
176 EXPECT_EQ(GURL("http://www.url.com/"), 188 EXPECT_EQ(GURL("http://www.url.com/"),
177 [session_controller_ URLForItemAtIndex:0U]); 189 [session_controller_ URLForItemAtIndex:0U]);
178 EXPECT_EQ([session_controller_ items].front().get(), 190 EXPECT_EQ([session_controller_ items].front().get(),
179 [session_controller_ currentItem]); 191 [session_controller_ currentItem]);
180 } 192 }
181 193
182 TEST_F(CRWSessionControllerTest, addPendingItemOverridingAndCommit) { 194 TEST_F(CRWSessionControllerTest, addPendingItemOverridingAndCommit) {
183 [session_controller_ 195 [session_controller_
184 addPendingItem:GURL("http://www.url.com") 196 addPendingItem:GURL("http://www.url.com")
185 referrer:MakeReferrer("http://www.referer.com") 197 referrer:MakeReferrer("http://www.referer.com")
186 transition:ui::PAGE_TRANSITION_TYPED 198 transition:ui::PAGE_TRANSITION_TYPED
187 initiationType:web::NavigationInitiationType::USER_INITIATED]; 199 initiationType:web::NavigationInitiationType::USER_INITIATED
200 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
188 [session_controller_ 201 [session_controller_
189 addPendingItem:GURL("http://www.another.url.com") 202 addPendingItem:GURL("http://www.another.url.com")
190 referrer:MakeReferrer("http://www.another.referer.com") 203 referrer:MakeReferrer("http://www.another.referer.com")
191 transition:ui::PAGE_TRANSITION_TYPED 204 transition:ui::PAGE_TRANSITION_TYPED
192 initiationType:web::NavigationInitiationType::USER_INITIATED]; 205 initiationType:web::NavigationInitiationType::USER_INITIATED
206 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
193 [session_controller_ commitPendingItem]; 207 [session_controller_ commitPendingItem];
194 208
195 EXPECT_EQ(1U, [session_controller_ items].size()); 209 EXPECT_EQ(1U, [session_controller_ items].size());
196 EXPECT_EQ(GURL("http://www.another.url.com/"), 210 EXPECT_EQ(GURL("http://www.another.url.com/"),
197 [session_controller_ URLForItemAtIndex:0U]); 211 [session_controller_ URLForItemAtIndex:0U]);
198 EXPECT_EQ([session_controller_ items].front().get(), 212 EXPECT_EQ([session_controller_ items].front().get(),
199 [session_controller_ currentItem]); 213 [session_controller_ currentItem]);
200 } 214 }
201 215
202 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitMultiple) { 216 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitMultiple) {
203 [session_controller_ 217 [session_controller_
204 addPendingItem:GURL("http://www.url.com") 218 addPendingItem:GURL("http://www.url.com")
205 referrer:MakeReferrer("http://www.referer.com") 219 referrer:MakeReferrer("http://www.referer.com")
206 transition:ui::PAGE_TRANSITION_TYPED 220 transition:ui::PAGE_TRANSITION_TYPED
207 initiationType:web::NavigationInitiationType::USER_INITIATED]; 221 initiationType:web::NavigationInitiationType::USER_INITIATED
222 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
208 [session_controller_ commitPendingItem]; 223 [session_controller_ commitPendingItem];
209 224
210 [session_controller_ 225 [session_controller_
211 addPendingItem:GURL("http://www.another.url.com") 226 addPendingItem:GURL("http://www.another.url.com")
212 referrer:MakeReferrer("http://www.another.referer.com") 227 referrer:MakeReferrer("http://www.another.referer.com")
213 transition:ui::PAGE_TRANSITION_TYPED 228 transition:ui::PAGE_TRANSITION_TYPED
214 initiationType:web::NavigationInitiationType::USER_INITIATED]; 229 initiationType:web::NavigationInitiationType::USER_INITIATED
230 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
215 [session_controller_ commitPendingItem]; 231 [session_controller_ commitPendingItem];
216 232
217 EXPECT_EQ(2U, [session_controller_ items].size()); 233 EXPECT_EQ(2U, [session_controller_ items].size());
218 EXPECT_EQ(GURL("http://www.url.com/"), 234 EXPECT_EQ(GURL("http://www.url.com/"),
219 [session_controller_ URLForItemAtIndex:0U]); 235 [session_controller_ URLForItemAtIndex:0U]);
220 EXPECT_EQ(GURL("http://www.another.url.com/"), 236 EXPECT_EQ(GURL("http://www.another.url.com/"),
221 [session_controller_ URLForItemAtIndex:1U]); 237 [session_controller_ URLForItemAtIndex:1U]);
222 EXPECT_EQ([session_controller_ items][1U].get(), 238 EXPECT_EQ([session_controller_ items][1U].get(),
223 [session_controller_ currentItem]); 239 [session_controller_ currentItem]);
224 } 240 }
225 241
226 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscard) { 242 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscard) {
227 [session_controller_ 243 [session_controller_
228 addPendingItem:GURL("http://www.url.com") 244 addPendingItem:GURL("http://www.url.com")
229 referrer:MakeReferrer("http://www.referer.com") 245 referrer:MakeReferrer("http://www.referer.com")
230 transition:ui::PAGE_TRANSITION_TYPED 246 transition:ui::PAGE_TRANSITION_TYPED
231 initiationType:web::NavigationInitiationType::USER_INITIATED]; 247 initiationType:web::NavigationInitiationType::USER_INITIATED
248 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
232 [session_controller_ discardNonCommittedItems]; 249 [session_controller_ discardNonCommittedItems];
233 250
234 EXPECT_TRUE([session_controller_ items].empty()); 251 EXPECT_TRUE([session_controller_ items].empty());
235 EXPECT_FALSE([session_controller_ currentItem]); 252 EXPECT_FALSE([session_controller_ currentItem]);
236 } 253 }
237 254
238 // Tests discarding pending item added via |setPendingItemIndex:| call. 255 // Tests discarding pending item added via |setPendingItemIndex:| call.
239 TEST_F(CRWSessionControllerTest, setPendingItemIndexAndDiscard) { 256 TEST_F(CRWSessionControllerTest, setPendingItemIndexAndDiscard) {
240 [session_controller_ 257 [session_controller_
241 addPendingItem:GURL("http://www.example.com") 258 addPendingItem:GURL("http://www.example.com")
242 referrer:web::Referrer() 259 referrer:web::Referrer()
243 transition:ui::PAGE_TRANSITION_TYPED 260 transition:ui::PAGE_TRANSITION_TYPED
244 initiationType:web::NavigationInitiationType::USER_INITIATED]; 261 initiationType:web::NavigationInitiationType::USER_INITIATED
262 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
245 [session_controller_ commitPendingItem]; 263 [session_controller_ commitPendingItem];
246 264
247 [session_controller_ setPendingItemIndex:0]; 265 [session_controller_ setPendingItemIndex:0];
248 EXPECT_TRUE([session_controller_ pendingItem]); 266 EXPECT_TRUE([session_controller_ pendingItem]);
249 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 267 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
250 268
251 [session_controller_ discardNonCommittedItems]; 269 [session_controller_ discardNonCommittedItems];
252 EXPECT_FALSE([session_controller_ pendingItem]); 270 EXPECT_FALSE([session_controller_ pendingItem]);
253 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 271 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
254 } 272 }
255 273
256 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscardAndAddAndCommit) { 274 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscardAndAddAndCommit) {
257 [session_controller_ 275 [session_controller_
258 addPendingItem:GURL("http://www.url.com") 276 addPendingItem:GURL("http://www.url.com")
259 referrer:MakeReferrer("http://www.referer.com") 277 referrer:MakeReferrer("http://www.referer.com")
260 transition:ui::PAGE_TRANSITION_TYPED 278 transition:ui::PAGE_TRANSITION_TYPED
261 initiationType:web::NavigationInitiationType::USER_INITIATED]; 279 initiationType:web::NavigationInitiationType::USER_INITIATED
280 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
262 [session_controller_ discardNonCommittedItems]; 281 [session_controller_ discardNonCommittedItems];
263 282
264 [session_controller_ 283 [session_controller_
265 addPendingItem:GURL("http://www.another.url.com") 284 addPendingItem:GURL("http://www.another.url.com")
266 referrer:MakeReferrer("http://www.referer.com") 285 referrer:MakeReferrer("http://www.referer.com")
267 transition:ui::PAGE_TRANSITION_TYPED 286 transition:ui::PAGE_TRANSITION_TYPED
268 initiationType:web::NavigationInitiationType::USER_INITIATED]; 287 initiationType:web::NavigationInitiationType::USER_INITIATED
288 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
269 [session_controller_ commitPendingItem]; 289 [session_controller_ commitPendingItem];
270 290
271 EXPECT_EQ(1U, [session_controller_ items].size()); 291 EXPECT_EQ(1U, [session_controller_ items].size());
272 EXPECT_EQ(GURL("http://www.another.url.com/"), 292 EXPECT_EQ(GURL("http://www.another.url.com/"),
273 [session_controller_ URLForItemAtIndex:0U]); 293 [session_controller_ URLForItemAtIndex:0U]);
274 EXPECT_EQ([session_controller_ items].front().get(), 294 EXPECT_EQ([session_controller_ items].front().get(),
275 [session_controller_ currentItem]); 295 [session_controller_ currentItem]);
276 } 296 }
277 297
278 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitAndAddAndDiscard) { 298 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitAndAddAndDiscard) {
279 [session_controller_ 299 [session_controller_
280 addPendingItem:GURL("http://www.url.com") 300 addPendingItem:GURL("http://www.url.com")
281 referrer:MakeReferrer("http://www.referer.com") 301 referrer:MakeReferrer("http://www.referer.com")
282 transition:ui::PAGE_TRANSITION_TYPED 302 transition:ui::PAGE_TRANSITION_TYPED
283 initiationType:web::NavigationInitiationType::USER_INITIATED]; 303 initiationType:web::NavigationInitiationType::USER_INITIATED
304 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
284 [session_controller_ commitPendingItem]; 305 [session_controller_ commitPendingItem];
285 306
286 [session_controller_ 307 [session_controller_
287 addPendingItem:GURL("http://www.another.url.com") 308 addPendingItem:GURL("http://www.another.url.com")
288 referrer:MakeReferrer("http://www.referer.com") 309 referrer:MakeReferrer("http://www.referer.com")
289 transition:ui::PAGE_TRANSITION_TYPED 310 transition:ui::PAGE_TRANSITION_TYPED
290 initiationType:web::NavigationInitiationType::USER_INITIATED]; 311 initiationType:web::NavigationInitiationType::USER_INITIATED
312 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
291 [session_controller_ discardNonCommittedItems]; 313 [session_controller_ discardNonCommittedItems];
292 314
293 EXPECT_EQ(1U, [session_controller_ items].size()); 315 EXPECT_EQ(1U, [session_controller_ items].size());
294 EXPECT_EQ(GURL("http://www.url.com/"), 316 EXPECT_EQ(GURL("http://www.url.com/"),
295 [session_controller_ URLForItemAtIndex:0U]); 317 [session_controller_ URLForItemAtIndex:0U]);
296 EXPECT_EQ([session_controller_ items].front().get(), 318 EXPECT_EQ([session_controller_ items].front().get(),
297 [session_controller_ currentItem]); 319 [session_controller_ currentItem]);
298 } 320 }
299 321
300 TEST_F(CRWSessionControllerTest, 322 TEST_F(CRWSessionControllerTest,
301 commitPendingItemWithoutPendingOrCommittedItem) { 323 commitPendingItemWithoutPendingOrCommittedItem) {
302 [session_controller_ commitPendingItem]; 324 [session_controller_ commitPendingItem];
303 325
304 EXPECT_TRUE([session_controller_ items].empty()); 326 EXPECT_TRUE([session_controller_ items].empty());
305 EXPECT_FALSE([session_controller_ currentItem]); 327 EXPECT_FALSE([session_controller_ currentItem]);
306 } 328 }
307 329
308 TEST_F(CRWSessionControllerTest, 330 TEST_F(CRWSessionControllerTest,
309 commitPendingItemWithoutPendingItemWithCommittedItem) { 331 commitPendingItemWithoutPendingItemWithCommittedItem) {
310 // Setup committed item. 332 // Setup committed item.
311 [session_controller_ 333 [session_controller_
312 addPendingItem:GURL("http://www.url.com/") 334 addPendingItem:GURL("http://www.url.com/")
313 referrer:MakeReferrer("http://www.referrer.com/") 335 referrer:MakeReferrer("http://www.referrer.com/")
314 transition:ui::PAGE_TRANSITION_TYPED 336 transition:ui::PAGE_TRANSITION_TYPED
315 initiationType:web::NavigationInitiationType::USER_INITIATED]; 337 initiationType:web::NavigationInitiationType::USER_INITIATED
338 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
316 [session_controller_ commitPendingItem]; 339 [session_controller_ commitPendingItem];
317 340
318 // Commit pending item when there is no such one 341 // Commit pending item when there is no such one
319 [session_controller_ commitPendingItem]; 342 [session_controller_ commitPendingItem];
320 343
321 EXPECT_EQ(1U, [session_controller_ items].size()); 344 EXPECT_EQ(1U, [session_controller_ items].size());
322 EXPECT_EQ([session_controller_ items].front().get(), 345 EXPECT_EQ([session_controller_ items].front().get(),
323 [session_controller_ currentItem]); 346 [session_controller_ currentItem]);
324 } 347 }
325 348
326 // Tests that forward items are discarded after navigation item is committed. 349 // Tests that forward items are discarded after navigation item is committed.
327 TEST_F(CRWSessionControllerTest, commitPendingItemWithExistingForwardItems) { 350 TEST_F(CRWSessionControllerTest, commitPendingItemWithExistingForwardItems) {
328 // Make 3 items. 351 // Make 3 items.
329 [session_controller_ 352 [session_controller_
330 addPendingItem:GURL("http://www.example.com/0") 353 addPendingItem:GURL("http://www.example.com/0")
331 referrer:MakeReferrer("http://www.example.com/a") 354 referrer:MakeReferrer("http://www.example.com/a")
332 transition:ui::PAGE_TRANSITION_LINK 355 transition:ui::PAGE_TRANSITION_LINK
333 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 356 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
357 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
334 [session_controller_ commitPendingItem]; 358 [session_controller_ commitPendingItem];
335 [session_controller_ 359 [session_controller_
336 addPendingItem:GURL("http://www.example.com/1") 360 addPendingItem:GURL("http://www.example.com/1")
337 referrer:MakeReferrer("http://www.example.com/b") 361 referrer:MakeReferrer("http://www.example.com/b")
338 transition:ui::PAGE_TRANSITION_LINK 362 transition:ui::PAGE_TRANSITION_LINK
339 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 363 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
364 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
340 [session_controller_ commitPendingItem]; 365 [session_controller_ commitPendingItem];
341 [session_controller_ 366 [session_controller_
342 addPendingItem:GURL("http://www.example.com/2") 367 addPendingItem:GURL("http://www.example.com/2")
343 referrer:MakeReferrer("http://www.example.com/c") 368 referrer:MakeReferrer("http://www.example.com/c")
344 transition:ui::PAGE_TRANSITION_LINK 369 transition:ui::PAGE_TRANSITION_LINK
345 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 370 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
371 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
346 [session_controller_ commitPendingItem]; 372 [session_controller_ commitPendingItem];
347 373
348 // Go back to the first item. 374 // Go back to the first item.
349 [session_controller_ goToItemAtIndex:0]; 375 [session_controller_ goToItemAtIndex:0];
350 376
351 // Create and commit a new pending item. 377 // Create and commit a new pending item.
352 [session_controller_ 378 [session_controller_
353 addPendingItem:GURL("http://www.example.com/2") 379 addPendingItem:GURL("http://www.example.com/2")
354 referrer:MakeReferrer("http://www.example.com/c") 380 referrer:MakeReferrer("http://www.example.com/c")
355 transition:ui::PAGE_TRANSITION_LINK 381 transition:ui::PAGE_TRANSITION_LINK
356 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 382 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
383 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
357 [session_controller_ commitPendingItem]; 384 [session_controller_ commitPendingItem];
358 385
359 // All forward items should go away. 386 // All forward items should go away.
360 EXPECT_EQ(2U, [session_controller_ items].size()); 387 EXPECT_EQ(2U, [session_controller_ items].size());
361 EXPECT_EQ(0U, [session_controller_ forwardItems].size()); 388 EXPECT_EQ(0U, [session_controller_ forwardItems].size());
362 ASSERT_EQ(1, [session_controller_ lastCommittedItemIndex]); 389 ASSERT_EQ(1, [session_controller_ lastCommittedItemIndex]);
363 ASSERT_EQ(0, [session_controller_ previousItemIndex]); 390 ASSERT_EQ(0, [session_controller_ previousItemIndex]);
364 } 391 }
365 392
366 // Tests committing pending item index from the middle. 393 // Tests committing pending item index from the middle.
367 TEST_F(CRWSessionControllerTest, commitPendingItemIndex) { 394 TEST_F(CRWSessionControllerTest, commitPendingItemIndex) {
368 [session_controller_ 395 [session_controller_
369 addPendingItem:GURL("http://www.example.com/0") 396 addPendingItem:GURL("http://www.example.com/0")
370 referrer:web::Referrer() 397 referrer:web::Referrer()
371 transition:ui::PAGE_TRANSITION_TYPED 398 transition:ui::PAGE_TRANSITION_TYPED
372 initiationType:web::NavigationInitiationType::USER_INITIATED]; 399 initiationType:web::NavigationInitiationType::USER_INITIATED
400 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
373 [session_controller_ commitPendingItem]; 401 [session_controller_ commitPendingItem];
374 [session_controller_ 402 [session_controller_
375 addPendingItem:GURL("http://www.example.com/1") 403 addPendingItem:GURL("http://www.example.com/1")
376 referrer:web::Referrer() 404 referrer:web::Referrer()
377 transition:ui::PAGE_TRANSITION_TYPED 405 transition:ui::PAGE_TRANSITION_TYPED
378 initiationType:web::NavigationInitiationType::USER_INITIATED]; 406 initiationType:web::NavigationInitiationType::USER_INITIATED
407 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
379 [session_controller_ commitPendingItem]; 408 [session_controller_ commitPendingItem];
380 [session_controller_ 409 [session_controller_
381 addPendingItem:GURL("http://www.example.com/2") 410 addPendingItem:GURL("http://www.example.com/2")
382 referrer:web::Referrer() 411 referrer:web::Referrer()
383 transition:ui::PAGE_TRANSITION_TYPED 412 transition:ui::PAGE_TRANSITION_TYPED
384 initiationType:web::NavigationInitiationType::USER_INITIATED]; 413 initiationType:web::NavigationInitiationType::USER_INITIATED
414 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
385 [session_controller_ commitPendingItem]; 415 [session_controller_ commitPendingItem];
386 ASSERT_EQ(3U, [session_controller_ items].size()); 416 ASSERT_EQ(3U, [session_controller_ items].size());
387 417
388 // Go to the middle, and commit first pending item index. 418 // Go to the middle, and commit first pending item index.
389 [session_controller_ goToItemAtIndex:1]; 419 [session_controller_ goToItemAtIndex:1];
390 [session_controller_ setPendingItemIndex:0]; 420 [session_controller_ setPendingItemIndex:0];
391 ASSERT_EQ(0, [session_controller_ pendingItemIndex]); 421 ASSERT_EQ(0, [session_controller_ pendingItemIndex]);
392 web::NavigationItem* pending_item = [session_controller_ pendingItem]; 422 web::NavigationItem* pending_item = [session_controller_ pendingItem];
393 ASSERT_TRUE(pending_item); 423 ASSERT_TRUE(pending_item);
394 ASSERT_EQ(1, [session_controller_ lastCommittedItemIndex]); 424 ASSERT_EQ(1, [session_controller_ lastCommittedItemIndex]);
(...skipping 15 matching lines...) Expand all
410 [session_controller_ discardNonCommittedItems]; 440 [session_controller_ discardNonCommittedItems];
411 441
412 EXPECT_TRUE([session_controller_ items].empty()); 442 EXPECT_TRUE([session_controller_ items].empty());
413 EXPECT_FALSE([session_controller_ currentItem]); 443 EXPECT_FALSE([session_controller_ currentItem]);
414 } 444 }
415 445
416 TEST_F(CRWSessionControllerTest, 446 TEST_F(CRWSessionControllerTest,
417 DiscardPendingItemWithoutPendingItemWithCommittedItem) { 447 DiscardPendingItemWithoutPendingItemWithCommittedItem) {
418 // Setup committed item 448 // Setup committed item
419 [session_controller_ 449 [session_controller_
420 addPendingItem:GURL("http://www.url.com") 450 addPendingItem:GURL("http://www.url.com")
421 referrer:MakeReferrer("http://www.referer.com") 451 referrer:MakeReferrer("http://www.referer.com")
422 transition:ui::PAGE_TRANSITION_TYPED 452 transition:ui::PAGE_TRANSITION_TYPED
423 initiationType:web::NavigationInitiationType::USER_INITIATED]; 453 initiationType:web::NavigationInitiationType::USER_INITIATED
454 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
424 [session_controller_ commitPendingItem]; 455 [session_controller_ commitPendingItem];
425 456
426 // Discard noncommitted items when there is no such one 457 // Discard noncommitted items when there is no such one
427 [session_controller_ discardNonCommittedItems]; 458 [session_controller_ discardNonCommittedItems];
428 459
429 EXPECT_EQ(1U, [session_controller_ items].size()); 460 EXPECT_EQ(1U, [session_controller_ items].size());
430 EXPECT_EQ([session_controller_ items].front().get(), 461 EXPECT_EQ([session_controller_ items].front().get(),
431 [session_controller_ currentItem]); 462 [session_controller_ currentItem]);
432 } 463 }
433 464
434 TEST_F(CRWSessionControllerTest, updatePendingItemWithoutPendingItem) { 465 TEST_F(CRWSessionControllerTest, updatePendingItemWithoutPendingItem) {
435 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; 466 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")];
436 [session_controller_ commitPendingItem]; 467 [session_controller_ commitPendingItem];
437 468
438 EXPECT_TRUE([session_controller_ items].empty()); 469 EXPECT_TRUE([session_controller_ items].empty());
439 EXPECT_FALSE([session_controller_ currentItem]); 470 EXPECT_FALSE([session_controller_ currentItem]);
440 } 471 }
441 472
442 TEST_F(CRWSessionControllerTest, updatePendingItemWithPendingItem) { 473 TEST_F(CRWSessionControllerTest, updatePendingItemWithPendingItem) {
443 [session_controller_ 474 [session_controller_
444 addPendingItem:GURL("http://www.url.com") 475 addPendingItem:GURL("http://www.url.com")
445 referrer:MakeReferrer("http://www.referer.com") 476 referrer:MakeReferrer("http://www.referer.com")
446 transition:ui::PAGE_TRANSITION_TYPED 477 transition:ui::PAGE_TRANSITION_TYPED
447 initiationType:web::NavigationInitiationType::USER_INITIATED]; 478 initiationType:web::NavigationInitiationType::USER_INITIATED
479 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
448 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; 480 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")];
449 481
450 EXPECT_EQ( 482 EXPECT_EQ(
451 GURL("http://www.another.url.com/"), 483 GURL("http://www.another.url.com/"),
452 [session_controller_ currentURL]); 484 [session_controller_ currentURL]);
453 } 485 }
454 486
455 TEST_F(CRWSessionControllerTest, 487 TEST_F(CRWSessionControllerTest,
456 updatePendingItemWithPendingItemAlreadyCommited) { 488 updatePendingItemWithPendingItemAlreadyCommited) {
457 [session_controller_ 489 [session_controller_
458 addPendingItem:GURL("http://www.url.com") 490 addPendingItem:GURL("http://www.url.com")
459 referrer:MakeReferrer("http://www.referer.com") 491 referrer:MakeReferrer("http://www.referer.com")
460 transition:ui::PAGE_TRANSITION_TYPED 492 transition:ui::PAGE_TRANSITION_TYPED
461 initiationType:web::NavigationInitiationType::USER_INITIATED]; 493 initiationType:web::NavigationInitiationType::USER_INITIATED
494 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
462 [session_controller_ commitPendingItem]; 495 [session_controller_ commitPendingItem];
463 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; 496 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")];
464 [session_controller_ commitPendingItem]; 497 [session_controller_ commitPendingItem];
465 498
466 EXPECT_EQ(1U, [session_controller_ items].size()); 499 EXPECT_EQ(1U, [session_controller_ items].size());
467 EXPECT_EQ(GURL("http://www.url.com/"), 500 EXPECT_EQ(GURL("http://www.url.com/"),
468 [session_controller_ URLForItemAtIndex:0U]); 501 [session_controller_ URLForItemAtIndex:0U]);
469 EXPECT_EQ([session_controller_ items].front().get(), 502 EXPECT_EQ([session_controller_ items].front().get(),
470 [session_controller_ currentItem]); 503 [session_controller_ currentItem]);
471 } 504 }
472 505
473 // Tests inserting session controller state. 506 // Tests inserting session controller state.
474 TEST_F(CRWSessionControllerTest, CopyState) { 507 TEST_F(CRWSessionControllerTest, CopyState) {
475 // Add 1 committed and 1 pending item to target controller. 508 // Add 1 committed and 1 pending item to target controller.
476 [session_controller_ 509 [session_controller_
477 addPendingItem:GURL("http://www.url.com/2") 510 addPendingItem:GURL("http://www.url.com/2")
478 referrer:web::Referrer() 511 referrer:web::Referrer()
479 transition:ui::PAGE_TRANSITION_TYPED 512 transition:ui::PAGE_TRANSITION_TYPED
480 initiationType:web::NavigationInitiationType::USER_INITIATED]; 513 initiationType:web::NavigationInitiationType::USER_INITIATED
514 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
481 [session_controller_ commitPendingItem]; 515 [session_controller_ commitPendingItem];
482 [session_controller_ 516 [session_controller_
483 addPendingItem:GURL("http://www.url.com/3") 517 addPendingItem:GURL("http://www.url.com/3")
484 referrer:web::Referrer() 518 referrer:web::Referrer()
485 transition:ui::PAGE_TRANSITION_TYPED 519 transition:ui::PAGE_TRANSITION_TYPED
486 initiationType:web::NavigationInitiationType::USER_INITIATED]; 520 initiationType:web::NavigationInitiationType::USER_INITIATED
521 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
487 522
488 // Create source session controller with 1 committed item. 523 // Create source session controller with 1 committed item.
489 base::scoped_nsobject<CRWSessionController> other_session_controller( 524 base::scoped_nsobject<CRWSessionController> other_session_controller(
490 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]); 525 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]);
491 [other_session_controller 526 [other_session_controller
492 addPendingItem:GURL("http://www.url.com/0") 527 addPendingItem:GURL("http://www.url.com/0")
493 referrer:web::Referrer() 528 referrer:web::Referrer()
494 transition:ui::PAGE_TRANSITION_TYPED 529 transition:ui::PAGE_TRANSITION_TYPED
495 initiationType:web::NavigationInitiationType::USER_INITIATED]; 530 initiationType:web::NavigationInitiationType::USER_INITIATED
531 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
496 [other_session_controller commitPendingItem]; 532 [other_session_controller commitPendingItem];
497 [other_session_controller 533 [other_session_controller
498 addPendingItem:GURL("http://www.url.com/1") 534 addPendingItem:GURL("http://www.url.com/1")
499 referrer:web::Referrer() 535 referrer:web::Referrer()
500 transition:ui::PAGE_TRANSITION_TYPED 536 transition:ui::PAGE_TRANSITION_TYPED
501 initiationType:web::NavigationInitiationType::USER_INITIATED]; 537 initiationType:web::NavigationInitiationType::USER_INITIATED
538 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
502 539
503 // Insert and verify the state of target session controller. 540 // Insert and verify the state of target session controller.
504 EXPECT_TRUE([session_controller_ canPruneAllButLastCommittedItem]); 541 EXPECT_TRUE([session_controller_ canPruneAllButLastCommittedItem]);
505 [session_controller_ 542 [session_controller_
506 copyStateFromSessionControllerAndPrune:other_session_controller.get()]; 543 copyStateFromSessionControllerAndPrune:other_session_controller.get()];
507 544
508 EXPECT_EQ(2U, [session_controller_ items].size()); 545 EXPECT_EQ(2U, [session_controller_ items].size());
509 EXPECT_EQ(1, [session_controller_ lastCommittedItemIndex]); 546 EXPECT_EQ(1, [session_controller_ lastCommittedItemIndex]);
510 EXPECT_EQ(-1, [session_controller_ previousItemIndex]); 547 EXPECT_EQ(-1, [session_controller_ previousItemIndex]);
511 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 548 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
512 549
513 EXPECT_EQ(GURL("http://www.url.com/0"), 550 EXPECT_EQ(GURL("http://www.url.com/0"),
514 [session_controller_ URLForItemAtIndex:0]); 551 [session_controller_ URLForItemAtIndex:0]);
515 EXPECT_EQ(GURL("http://www.url.com/2"), 552 EXPECT_EQ(GURL("http://www.url.com/2"),
516 [session_controller_ URLForItemAtIndex:1]); 553 [session_controller_ URLForItemAtIndex:1]);
517 EXPECT_EQ(GURL("http://www.url.com/3"), 554 EXPECT_EQ(GURL("http://www.url.com/3"),
518 [session_controller_ pendingItem]->GetURL()); 555 [session_controller_ pendingItem]->GetURL());
519 } 556 }
520 557
521 // Tests inserting session controller state from empty session controller. 558 // Tests inserting session controller state from empty session controller.
522 TEST_F(CRWSessionControllerTest, CopyStateFromEmptySessionController) { 559 TEST_F(CRWSessionControllerTest, CopyStateFromEmptySessionController) {
523 // Add 2 committed items to target controller. 560 // Add 2 committed items to target controller.
524 [session_controller_ 561 [session_controller_
525 addPendingItem:GURL("http://www.url.com/0") 562 addPendingItem:GURL("http://www.url.com/0")
526 referrer:web::Referrer() 563 referrer:web::Referrer()
527 transition:ui::PAGE_TRANSITION_TYPED 564 transition:ui::PAGE_TRANSITION_TYPED
528 initiationType:web::NavigationInitiationType::USER_INITIATED]; 565 initiationType:web::NavigationInitiationType::USER_INITIATED
566 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
529 [session_controller_ commitPendingItem]; 567 [session_controller_ commitPendingItem];
530 [session_controller_ 568 [session_controller_
531 addPendingItem:GURL("http://www.url.com/1") 569 addPendingItem:GURL("http://www.url.com/1")
532 referrer:web::Referrer() 570 referrer:web::Referrer()
533 transition:ui::PAGE_TRANSITION_TYPED 571 transition:ui::PAGE_TRANSITION_TYPED
534 initiationType:web::NavigationInitiationType::USER_INITIATED]; 572 initiationType:web::NavigationInitiationType::USER_INITIATED
573 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
535 [session_controller_ commitPendingItem]; 574 [session_controller_ commitPendingItem];
536 575
537 // Create empty source session controller. 576 // Create empty source session controller.
538 base::scoped_nsobject<CRWSessionController> other_session_controller( 577 base::scoped_nsobject<CRWSessionController> other_session_controller(
539 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]); 578 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]);
540 579
541 // Insert and verify the state of target session controller. 580 // Insert and verify the state of target session controller.
542 EXPECT_TRUE([session_controller_ canPruneAllButLastCommittedItem]); 581 EXPECT_TRUE([session_controller_ canPruneAllButLastCommittedItem]);
543 [session_controller_ 582 [session_controller_
544 copyStateFromSessionControllerAndPrune:other_session_controller.get()]; 583 copyStateFromSessionControllerAndPrune:other_session_controller.get()];
(...skipping 10 matching lines...) Expand all
555 594
556 // Tests that |-copyStateFromSessionControllerAndPrune:| is a no-op when the 595 // Tests that |-copyStateFromSessionControllerAndPrune:| is a no-op when the
557 // receiver has no last committed item. 596 // receiver has no last committed item.
558 TEST_F(CRWSessionControllerTest, CopyStateToEmptySessionController) { 597 TEST_F(CRWSessionControllerTest, CopyStateToEmptySessionController) {
559 EXPECT_FALSE([session_controller_ canPruneAllButLastCommittedItem]); 598 EXPECT_FALSE([session_controller_ canPruneAllButLastCommittedItem]);
560 599
561 // Create source session controller with 1 committed item. 600 // Create source session controller with 1 committed item.
562 base::scoped_nsobject<CRWSessionController> other_session_controller( 601 base::scoped_nsobject<CRWSessionController> other_session_controller(
563 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]); 602 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]);
564 [other_session_controller 603 [other_session_controller
565 addPendingItem:GURL("http://www.url.com/0") 604 addPendingItem:GURL("http://www.url.com/0")
566 referrer:web::Referrer() 605 referrer:web::Referrer()
567 transition:ui::PAGE_TRANSITION_TYPED 606 transition:ui::PAGE_TRANSITION_TYPED
568 initiationType:web::NavigationInitiationType::USER_INITIATED]; 607 initiationType:web::NavigationInitiationType::USER_INITIATED
608 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
569 [other_session_controller commitPendingItem]; 609 [other_session_controller commitPendingItem];
570 [other_session_controller 610 [other_session_controller
571 addPendingItem:GURL("http://www.url.com/1") 611 addPendingItem:GURL("http://www.url.com/1")
572 referrer:web::Referrer() 612 referrer:web::Referrer()
573 transition:ui::PAGE_TRANSITION_TYPED 613 transition:ui::PAGE_TRANSITION_TYPED
574 initiationType:web::NavigationInitiationType::USER_INITIATED]; 614 initiationType:web::NavigationInitiationType::USER_INITIATED
615 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
575 616
576 // Attempt to copy |other_session_controller|'s state and verify that 617 // Attempt to copy |other_session_controller|'s state and verify that
577 // |session_controller_| is unchanged. 618 // |session_controller_| is unchanged.
578 [session_controller_ 619 [session_controller_
579 copyStateFromSessionControllerAndPrune:other_session_controller]; 620 copyStateFromSessionControllerAndPrune:other_session_controller];
580 EXPECT_TRUE([session_controller_ items].empty()); 621 EXPECT_TRUE([session_controller_ items].empty());
581 EXPECT_EQ(-1, [session_controller_ lastCommittedItemIndex]); 622 EXPECT_EQ(-1, [session_controller_ lastCommittedItemIndex]);
582 EXPECT_EQ(-1, [session_controller_ previousItemIndex]); 623 EXPECT_EQ(-1, [session_controller_ previousItemIndex]);
583 EXPECT_FALSE([session_controller_ currentItem]); 624 EXPECT_FALSE([session_controller_ currentItem]);
584 EXPECT_FALSE([session_controller_ pendingItem]); 625 EXPECT_FALSE([session_controller_ pendingItem]);
585 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 626 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
586 } 627 }
587 628
588 // Tests that |-copyStateFromSessionControllerAndPrune:| is a no-op during a 629 // Tests that |-copyStateFromSessionControllerAndPrune:| is a no-op during a
589 // pending history navigation. 630 // pending history navigation.
590 TEST_F(CRWSessionControllerTest, CopyStateDuringPendingHistoryNavigation) { 631 TEST_F(CRWSessionControllerTest, CopyStateDuringPendingHistoryNavigation) {
591 // Add 1 committed and 1 pending item to target controller. 632 // Add 1 committed and 1 pending item to target controller.
592 [session_controller_ 633 [session_controller_
593 addPendingItem:GURL("http://www.url.com/1") 634 addPendingItem:GURL("http://www.url.com/1")
594 referrer:web::Referrer() 635 referrer:web::Referrer()
595 transition:ui::PAGE_TRANSITION_TYPED 636 transition:ui::PAGE_TRANSITION_TYPED
596 initiationType:web::NavigationInitiationType::USER_INITIATED]; 637 initiationType:web::NavigationInitiationType::USER_INITIATED
638 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
597 [session_controller_ commitPendingItem]; 639 [session_controller_ commitPendingItem];
598 [session_controller_ 640 [session_controller_
599 addPendingItem:GURL("http://www.url.com/2") 641 addPendingItem:GURL("http://www.url.com/2")
600 referrer:web::Referrer() 642 referrer:web::Referrer()
601 transition:ui::PAGE_TRANSITION_TYPED 643 transition:ui::PAGE_TRANSITION_TYPED
602 initiationType:web::NavigationInitiationType::USER_INITIATED]; 644 initiationType:web::NavigationInitiationType::USER_INITIATED
645 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
603 [session_controller_ commitPendingItem]; 646 [session_controller_ commitPendingItem];
604 647
605 // Create source session controller with 1 committed item. 648 // Create source session controller with 1 committed item.
606 base::scoped_nsobject<CRWSessionController> other_session_controller( 649 base::scoped_nsobject<CRWSessionController> other_session_controller(
607 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]); 650 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]);
608 [other_session_controller 651 [other_session_controller
609 addPendingItem:GURL("http://www.url.com/0") 652 addPendingItem:GURL("http://www.url.com/0")
610 referrer:web::Referrer() 653 referrer:web::Referrer()
611 transition:ui::PAGE_TRANSITION_TYPED 654 transition:ui::PAGE_TRANSITION_TYPED
612 initiationType:web::NavigationInitiationType::USER_INITIATED]; 655 initiationType:web::NavigationInitiationType::USER_INITIATED
656 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
613 [other_session_controller commitPendingItem]; 657 [other_session_controller commitPendingItem];
614 [other_session_controller 658 [other_session_controller
615 addPendingItem:GURL("http://www.url.com/1") 659 addPendingItem:GURL("http://www.url.com/1")
616 referrer:web::Referrer() 660 referrer:web::Referrer()
617 transition:ui::PAGE_TRANSITION_TYPED 661 transition:ui::PAGE_TRANSITION_TYPED
618 initiationType:web::NavigationInitiationType::USER_INITIATED]; 662 initiationType:web::NavigationInitiationType::USER_INITIATED
663 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
619 664
620 // Set the pending item index to the first item. 665 // Set the pending item index to the first item.
621 [session_controller_ setPendingItemIndex:0]; 666 [session_controller_ setPendingItemIndex:0];
622 EXPECT_FALSE([session_controller_ canPruneAllButLastCommittedItem]); 667 EXPECT_FALSE([session_controller_ canPruneAllButLastCommittedItem]);
623 668
624 // Attempt to copy |other_session_controller|'s state and verify that 669 // Attempt to copy |other_session_controller|'s state and verify that
625 // |session_controller_| is unchanged. 670 // |session_controller_| is unchanged.
626 [session_controller_ 671 [session_controller_
627 copyStateFromSessionControllerAndPrune:other_session_controller]; 672 copyStateFromSessionControllerAndPrune:other_session_controller];
628 EXPECT_EQ(2U, [session_controller_ items].size()); 673 EXPECT_EQ(2U, [session_controller_ items].size());
629 EXPECT_EQ(1, [session_controller_ lastCommittedItemIndex]); 674 EXPECT_EQ(1, [session_controller_ lastCommittedItemIndex]);
630 EXPECT_EQ(0, [session_controller_ previousItemIndex]); 675 EXPECT_EQ(0, [session_controller_ previousItemIndex]);
631 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 676 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
632 EXPECT_TRUE([session_controller_ pendingItem]); 677 EXPECT_TRUE([session_controller_ pendingItem]);
633 EXPECT_EQ([session_controller_ previousItem], 678 EXPECT_EQ([session_controller_ previousItem],
634 [session_controller_ pendingItem]); 679 [session_controller_ pendingItem]);
635 } 680 }
636 681
637 // Tests that |-copyStateFromSessionControllerAndPrune:| is a when a transient 682 // Tests that |-copyStateFromSessionControllerAndPrune:| is a when a transient
638 // NavigationItem exists. 683 // NavigationItem exists.
639 TEST_F(CRWSessionControllerTest, CopyStateWithTransientItem) { 684 TEST_F(CRWSessionControllerTest, CopyStateWithTransientItem) {
640 // Add 1 committed and 1 pending item to target controller. 685 // Add 1 committed and 1 pending item to target controller.
641 [session_controller_ 686 [session_controller_
642 addPendingItem:GURL("http://www.url.com/1") 687 addPendingItem:GURL("http://www.url.com/1")
643 referrer:web::Referrer() 688 referrer:web::Referrer()
644 transition:ui::PAGE_TRANSITION_TYPED 689 transition:ui::PAGE_TRANSITION_TYPED
645 initiationType:web::NavigationInitiationType::USER_INITIATED]; 690 initiationType:web::NavigationInitiationType::USER_INITIATED
691 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
646 [session_controller_ commitPendingItem]; 692 [session_controller_ commitPendingItem];
647 GURL second_url = GURL("http://www.url.com/2"); 693 GURL second_url = GURL("http://www.url.com/2");
648 [session_controller_ 694 [session_controller_
649 addPendingItem:second_url 695 addPendingItem:second_url
650 referrer:web::Referrer() 696 referrer:web::Referrer()
651 transition:ui::PAGE_TRANSITION_TYPED 697 transition:ui::PAGE_TRANSITION_TYPED
652 initiationType:web::NavigationInitiationType::USER_INITIATED]; 698 initiationType:web::NavigationInitiationType::USER_INITIATED
699 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
653 [session_controller_ addTransientItemWithURL:second_url]; 700 [session_controller_ addTransientItemWithURL:second_url];
654 701
655 // Create source session controller with 1 committed item. 702 // Create source session controller with 1 committed item.
656 base::scoped_nsobject<CRWSessionController> other_session_controller( 703 base::scoped_nsobject<CRWSessionController> other_session_controller(
657 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]); 704 [[CRWSessionController alloc] initWithBrowserState:&browser_state_]);
658 [other_session_controller 705 [other_session_controller
659 addPendingItem:GURL("http://www.url.com/0") 706 addPendingItem:GURL("http://www.url.com/0")
660 referrer:web::Referrer() 707 referrer:web::Referrer()
661 transition:ui::PAGE_TRANSITION_TYPED 708 transition:ui::PAGE_TRANSITION_TYPED
662 initiationType:web::NavigationInitiationType::USER_INITIATED]; 709 initiationType:web::NavigationInitiationType::USER_INITIATED
710 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
663 [other_session_controller commitPendingItem]; 711 [other_session_controller commitPendingItem];
664 [other_session_controller 712 [other_session_controller
665 addPendingItem:GURL("http://www.url.com/1") 713 addPendingItem:GURL("http://www.url.com/1")
666 referrer:web::Referrer() 714 referrer:web::Referrer()
667 transition:ui::PAGE_TRANSITION_TYPED 715 transition:ui::PAGE_TRANSITION_TYPED
668 initiationType:web::NavigationInitiationType::USER_INITIATED]; 716 initiationType:web::NavigationInitiationType::USER_INITIATED
717 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
669 718
670 // Attempt to copy |other_session_controller|'s state and verify that 719 // Attempt to copy |other_session_controller|'s state and verify that
671 // |session_controller_| is unchanged. 720 // |session_controller_| is unchanged.
672 EXPECT_FALSE([session_controller_ canPruneAllButLastCommittedItem]); 721 EXPECT_FALSE([session_controller_ canPruneAllButLastCommittedItem]);
673 [session_controller_ 722 [session_controller_
674 copyStateFromSessionControllerAndPrune:other_session_controller]; 723 copyStateFromSessionControllerAndPrune:other_session_controller];
675 EXPECT_EQ(1U, [session_controller_ items].size()); 724 EXPECT_EQ(1U, [session_controller_ items].size());
676 EXPECT_EQ(0, [session_controller_ lastCommittedItemIndex]); 725 EXPECT_EQ(0, [session_controller_ lastCommittedItemIndex]);
677 EXPECT_EQ(-1, [session_controller_ previousItemIndex]); 726 EXPECT_EQ(-1, [session_controller_ previousItemIndex]);
678 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 727 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 EXPECT_EQ(controller.get().previousItemIndex, -1); 792 EXPECT_EQ(controller.get().previousItemIndex, -1);
744 // Sanity check the current item, the NavigationItem unit test will ensure 793 // Sanity check the current item, the NavigationItem unit test will ensure
745 // the entire object is created properly. 794 // the entire object is created properly.
746 EXPECT_EQ([controller currentItem]->GetURL(), GURL("http://www.yahoo.com")); 795 EXPECT_EQ([controller currentItem]->GetURL(), GURL("http://www.yahoo.com"));
747 } 796 }
748 797
749 // Tests index of previous navigation item. 798 // Tests index of previous navigation item.
750 TEST_F(CRWSessionControllerTest, PreviousNavigationItem) { 799 TEST_F(CRWSessionControllerTest, PreviousNavigationItem) {
751 EXPECT_EQ(session_controller_.get().previousItemIndex, -1); 800 EXPECT_EQ(session_controller_.get().previousItemIndex, -1);
752 [session_controller_ 801 [session_controller_
753 addPendingItem:GURL("http://www.url.com") 802 addPendingItem:GURL("http://www.url.com")
754 referrer:MakeReferrer("http://www.referer.com") 803 referrer:MakeReferrer("http://www.referer.com")
755 transition:ui::PAGE_TRANSITION_TYPED 804 transition:ui::PAGE_TRANSITION_TYPED
756 initiationType:web::NavigationInitiationType::USER_INITIATED]; 805 initiationType:web::NavigationInitiationType::USER_INITIATED
806 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
757 [session_controller_ commitPendingItem]; 807 [session_controller_ commitPendingItem];
758 EXPECT_EQ(session_controller_.get().previousItemIndex, -1); 808 EXPECT_EQ(session_controller_.get().previousItemIndex, -1);
759 [session_controller_ 809 [session_controller_
760 addPendingItem:GURL("http://www.url1.com") 810 addPendingItem:GURL("http://www.url1.com")
761 referrer:MakeReferrer("http://www.referer.com") 811 referrer:MakeReferrer("http://www.referer.com")
762 transition:ui::PAGE_TRANSITION_TYPED 812 transition:ui::PAGE_TRANSITION_TYPED
763 initiationType:web::NavigationInitiationType::USER_INITIATED]; 813 initiationType:web::NavigationInitiationType::USER_INITIATED
814 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
764 [session_controller_ commitPendingItem]; 815 [session_controller_ commitPendingItem];
765 EXPECT_EQ(session_controller_.get().previousItemIndex, 0); 816 EXPECT_EQ(session_controller_.get().previousItemIndex, 0);
766 [session_controller_ 817 [session_controller_
767 addPendingItem:GURL("http://www.url2.com") 818 addPendingItem:GURL("http://www.url2.com")
768 referrer:MakeReferrer("http://www.referer.com") 819 referrer:MakeReferrer("http://www.referer.com")
769 transition:ui::PAGE_TRANSITION_TYPED 820 transition:ui::PAGE_TRANSITION_TYPED
770 initiationType:web::NavigationInitiationType::USER_INITIATED]; 821 initiationType:web::NavigationInitiationType::USER_INITIATED
822 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
771 [session_controller_ commitPendingItem]; 823 [session_controller_ commitPendingItem];
772 824
773 EXPECT_EQ(session_controller_.get().previousItemIndex, 1); 825 EXPECT_EQ(session_controller_.get().previousItemIndex, 1);
774 826
775 [session_controller_ goToItemAtIndex:1]; 827 [session_controller_ goToItemAtIndex:1];
776 EXPECT_EQ(session_controller_.get().previousItemIndex, 2); 828 EXPECT_EQ(session_controller_.get().previousItemIndex, 2);
777 829
778 [session_controller_ goToItemAtIndex:0]; 830 [session_controller_ goToItemAtIndex:0];
779 EXPECT_EQ(session_controller_.get().previousItemIndex, 1); 831 EXPECT_EQ(session_controller_.get().previousItemIndex, 1);
780 832
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 replacedItem = [controller currentItem]; 958 replacedItem = [controller currentItem];
907 EXPECT_EQ(expectedCount, controller.get().items.size()); 959 EXPECT_EQ(expectedCount, controller.get().items.size());
908 EXPECT_EQ(replacePageGurl2, replacedItem->GetURL()); 960 EXPECT_EQ(replacePageGurl2, replacedItem->GetURL());
909 EXPECT_FALSE(replacedItem->IsCreatedFromPushState()); 961 EXPECT_FALSE(replacedItem->IsCreatedFromPushState());
910 EXPECT_NSEQ(nil, replacedItem->GetSerializedStateObject()); 962 EXPECT_NSEQ(nil, replacedItem->GetSerializedStateObject());
911 EXPECT_EQ(GURL("http://www.starturl.com/"), replacedItem->GetReferrer().url); 963 EXPECT_EQ(GURL("http://www.starturl.com/"), replacedItem->GetReferrer().url);
912 } 964 }
913 965
914 TEST_F(CRWSessionControllerTest, TestBackwardForwardItems) { 966 TEST_F(CRWSessionControllerTest, TestBackwardForwardItems) {
915 [session_controller_ 967 [session_controller_
916 addPendingItem:GURL("http://www.example.com/0") 968 addPendingItem:GURL("http://www.example.com/0")
917 referrer:MakeReferrer("http://www.example.com/a") 969 referrer:MakeReferrer("http://www.example.com/a")
918 transition:ui::PAGE_TRANSITION_LINK 970 transition:ui::PAGE_TRANSITION_LINK
919 initiationType:web::NavigationInitiationType::USER_INITIATED]; 971 initiationType:web::NavigationInitiationType::USER_INITIATED
972 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
920 [session_controller_ commitPendingItem]; 973 [session_controller_ commitPendingItem];
921 [session_controller_ 974 [session_controller_
922 addPendingItem:GURL("http://www.example.com/1") 975 addPendingItem:GURL("http://www.example.com/1")
923 referrer:MakeReferrer("http://www.example.com/b") 976 referrer:MakeReferrer("http://www.example.com/b")
924 transition:ui::PAGE_TRANSITION_LINK 977 transition:ui::PAGE_TRANSITION_LINK
925 initiationType:web::NavigationInitiationType::USER_INITIATED]; 978 initiationType:web::NavigationInitiationType::USER_INITIATED
979 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
926 [session_controller_ commitPendingItem]; 980 [session_controller_ commitPendingItem];
927 [session_controller_ 981 [session_controller_
928 addPendingItem:GURL("http://www.example.com/redirect") 982 addPendingItem:GURL("http://www.example.com/redirect")
929 referrer:MakeReferrer("http://www.example.com/r") 983 referrer:MakeReferrer("http://www.example.com/r")
930 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT 984 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT
931 initiationType:web::NavigationInitiationType::USER_INITIATED]; 985 initiationType:web::NavigationInitiationType::USER_INITIATED
986 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
932 [session_controller_ commitPendingItem]; 987 [session_controller_ commitPendingItem];
933 [session_controller_ 988 [session_controller_
934 addPendingItem:GURL("http://www.example.com/2") 989 addPendingItem:GURL("http://www.example.com/2")
935 referrer:MakeReferrer("http://www.example.com/c") 990 referrer:MakeReferrer("http://www.example.com/c")
936 transition:ui::PAGE_TRANSITION_LINK 991 transition:ui::PAGE_TRANSITION_LINK
937 initiationType:web::NavigationInitiationType::USER_INITIATED]; 992 initiationType:web::NavigationInitiationType::USER_INITIATED
993 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
938 [session_controller_ commitPendingItem]; 994 [session_controller_ commitPendingItem];
939 995
940 EXPECT_EQ(3, session_controller_.get().lastCommittedItemIndex); 996 EXPECT_EQ(3, session_controller_.get().lastCommittedItemIndex);
941 web::NavigationItemList backItems = [session_controller_ backwardItems]; 997 web::NavigationItemList backItems = [session_controller_ backwardItems];
942 EXPECT_EQ(2U, backItems.size()); 998 EXPECT_EQ(2U, backItems.size());
943 EXPECT_TRUE([session_controller_ forwardItems].empty()); 999 EXPECT_TRUE([session_controller_ forwardItems].empty());
944 EXPECT_EQ("http://www.example.com/redirect", backItems[0]->GetURL().spec()); 1000 EXPECT_EQ("http://www.example.com/redirect", backItems[0]->GetURL().spec());
945 1001
946 [session_controller_ goToItemAtIndex:1]; 1002 [session_controller_ goToItemAtIndex:1];
947 EXPECT_EQ(1U, [session_controller_ backwardItems].size()); 1003 EXPECT_EQ(1U, [session_controller_ backwardItems].size());
948 EXPECT_EQ(1U, [session_controller_ forwardItems].size()); 1004 EXPECT_EQ(1U, [session_controller_ forwardItems].size());
949 1005
950 [session_controller_ goToItemAtIndex:0]; 1006 [session_controller_ goToItemAtIndex:0];
951 web::NavigationItemList forwardItems = [session_controller_ forwardItems]; 1007 web::NavigationItemList forwardItems = [session_controller_ forwardItems];
952 EXPECT_EQ(0U, [session_controller_ backwardItems].size()); 1008 EXPECT_EQ(0U, [session_controller_ backwardItems].size());
953 EXPECT_EQ(2U, forwardItems.size()); 1009 EXPECT_EQ(2U, forwardItems.size());
954 EXPECT_EQ("http://www.example.com/2", forwardItems[1]->GetURL().spec()); 1010 EXPECT_EQ("http://www.example.com/2", forwardItems[1]->GetURL().spec());
955 } 1011 }
956 1012
957 // Tests going to items with existing and non-existing indices. 1013 // Tests going to items with existing and non-existing indices.
958 TEST_F(CRWSessionControllerTest, GoToItemAtIndex) { 1014 TEST_F(CRWSessionControllerTest, GoToItemAtIndex) {
959 [session_controller_ 1015 [session_controller_
960 addPendingItem:GURL("http://www.example.com/0") 1016 addPendingItem:GURL("http://www.example.com/0")
961 referrer:MakeReferrer("http://www.example.com/a") 1017 referrer:MakeReferrer("http://www.example.com/a")
962 transition:ui::PAGE_TRANSITION_LINK 1018 transition:ui::PAGE_TRANSITION_LINK
963 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1019 initiationType:web::NavigationInitiationType::USER_INITIATED
1020 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
964 [session_controller_ commitPendingItem]; 1021 [session_controller_ commitPendingItem];
965 [session_controller_ 1022 [session_controller_
966 addPendingItem:GURL("http://www.example.com/1") 1023 addPendingItem:GURL("http://www.example.com/1")
967 referrer:MakeReferrer("http://www.example.com/b") 1024 referrer:MakeReferrer("http://www.example.com/b")
968 transition:ui::PAGE_TRANSITION_LINK 1025 transition:ui::PAGE_TRANSITION_LINK
969 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1026 initiationType:web::NavigationInitiationType::USER_INITIATED
1027 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
970 [session_controller_ commitPendingItem]; 1028 [session_controller_ commitPendingItem];
971 [session_controller_ 1029 [session_controller_
972 addPendingItem:GURL("http://www.example.com/redirect") 1030 addPendingItem:GURL("http://www.example.com/redirect")
973 referrer:MakeReferrer("http://www.example.com/r") 1031 referrer:MakeReferrer("http://www.example.com/r")
974 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT 1032 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT
975 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1033 initiationType:web::NavigationInitiationType::USER_INITIATED
1034 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
976 [session_controller_ commitPendingItem]; 1035 [session_controller_ commitPendingItem];
977 [session_controller_ 1036 [session_controller_
978 addPendingItem:GURL("http://www.example.com/2") 1037 addPendingItem:GURL("http://www.example.com/2")
979 referrer:MakeReferrer("http://www.example.com/c") 1038 referrer:MakeReferrer("http://www.example.com/c")
980 transition:ui::PAGE_TRANSITION_LINK 1039 transition:ui::PAGE_TRANSITION_LINK
981 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1040 initiationType:web::NavigationInitiationType::USER_INITIATED
1041 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
982 [session_controller_ commitPendingItem]; 1042 [session_controller_ commitPendingItem];
983 [session_controller_ 1043 [session_controller_
984 addPendingItem:GURL("http://www.example.com/3") 1044 addPendingItem:GURL("http://www.example.com/3")
985 referrer:MakeReferrer("http://www.example.com/d") 1045 referrer:MakeReferrer("http://www.example.com/d")
986 transition:ui::PAGE_TRANSITION_LINK 1046 transition:ui::PAGE_TRANSITION_LINK
987 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1047 initiationType:web::NavigationInitiationType::USER_INITIATED
1048 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
988 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 1049 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
989 EXPECT_EQ(3, session_controller_.get().lastCommittedItemIndex); 1050 EXPECT_EQ(3, session_controller_.get().lastCommittedItemIndex);
990 EXPECT_EQ(2, session_controller_.get().previousItemIndex); 1051 EXPECT_EQ(2, session_controller_.get().previousItemIndex);
991 EXPECT_TRUE([session_controller_ pendingItem]); 1052 EXPECT_TRUE([session_controller_ pendingItem]);
992 EXPECT_TRUE([session_controller_ transientItem]); 1053 EXPECT_TRUE([session_controller_ transientItem]);
993 1054
994 // Going back should discard transient and pending items. 1055 // Going back should discard transient and pending items.
995 [session_controller_ goToItemAtIndex:1]; 1056 [session_controller_ goToItemAtIndex:1];
996 EXPECT_EQ(1, session_controller_.get().lastCommittedItemIndex); 1057 EXPECT_EQ(1, session_controller_.get().lastCommittedItemIndex);
997 EXPECT_EQ(3, session_controller_.get().previousItemIndex); 1058 EXPECT_EQ(3, session_controller_.get().previousItemIndex);
(...skipping 28 matching lines...) Expand all
1026 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 1087 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
1027 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1088 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1028 ASSERT_TRUE(visible_item); 1089 ASSERT_TRUE(visible_item);
1029 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); 1090 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec());
1030 } 1091 }
1031 1092
1032 // Tests that visible URL is the same as transient URL if there is a committed 1093 // Tests that visible URL is the same as transient URL if there is a committed
1033 // item. 1094 // item.
1034 TEST_F(CRWSessionControllerTest, VisibleItemWithCommittedAndTransientItems) { 1095 TEST_F(CRWSessionControllerTest, VisibleItemWithCommittedAndTransientItems) {
1035 [session_controller_ 1096 [session_controller_
1036 addPendingItem:GURL("http://www.example.com/0") 1097 addPendingItem:GURL("http://www.example.com/0")
1037 referrer:MakeReferrer("http://www.example.com/a") 1098 referrer:MakeReferrer("http://www.example.com/a")
1038 transition:ui::PAGE_TRANSITION_LINK 1099 transition:ui::PAGE_TRANSITION_LINK
1039 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1100 initiationType:web::NavigationInitiationType::USER_INITIATED
1101 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
1040 [session_controller_ commitPendingItem]; 1102 [session_controller_ commitPendingItem];
1041 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 1103 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
1042 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1104 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1043 ASSERT_TRUE(visible_item); 1105 ASSERT_TRUE(visible_item);
1044 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); 1106 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec());
1045 } 1107 }
1046 1108
1047 // Tests that visible URL is the same as pending URL if it was user-initiated. 1109 // Tests that visible URL is the same as pending URL if it was user-initiated.
1048 TEST_F(CRWSessionControllerTest, 1110 TEST_F(CRWSessionControllerTest,
1049 VisibleItemWithSingleUserInitiatedPendingItem) { 1111 VisibleItemWithSingleUserInitiatedPendingItem) {
1050 [session_controller_ 1112 [session_controller_
1051 addPendingItem:GURL("http://www.example.com/0") 1113 addPendingItem:GURL("http://www.example.com/0")
1052 referrer:MakeReferrer("http://www.example.com/a") 1114 referrer:MakeReferrer("http://www.example.com/a")
1053 transition:ui::PAGE_TRANSITION_LINK 1115 transition:ui::PAGE_TRANSITION_LINK
1054 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1116 initiationType:web::NavigationInitiationType::USER_INITIATED
1117 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
1055 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1118 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1056 ASSERT_TRUE(visible_item); 1119 ASSERT_TRUE(visible_item);
1057 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); 1120 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec());
1058 } 1121 }
1059 1122
1060 // Tests that visible URL is the same as pending URL if it was user-initiated 1123 // Tests that visible URL is the same as pending URL if it was user-initiated
1061 // and there is a committed item. 1124 // and there is a committed item.
1062 TEST_F(CRWSessionControllerTest, 1125 TEST_F(CRWSessionControllerTest,
1063 VisibleItemWithCommittedAndUserInitiatedPendingItem) { 1126 VisibleItemWithCommittedAndUserInitiatedPendingItem) {
1064 [session_controller_ 1127 [session_controller_
1065 addPendingItem:GURL("http://www.example.com") 1128 addPendingItem:GURL("http://www.example.com")
1066 referrer:MakeReferrer("http://www.example.com/a") 1129 referrer:MakeReferrer("http://www.example.com/a")
1067 transition:ui::PAGE_TRANSITION_LINK 1130 transition:ui::PAGE_TRANSITION_LINK
1068 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1131 initiationType:web::NavigationInitiationType::USER_INITIATED
1132 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
1069 [session_controller_ commitPendingItem]; 1133 [session_controller_ commitPendingItem];
1070 [session_controller_ 1134 [session_controller_
1071 addPendingItem:GURL("http://www.example.com/0") 1135 addPendingItem:GURL("http://www.example.com/0")
1072 referrer:MakeReferrer("http://www.example.com/b") 1136 referrer:MakeReferrer("http://www.example.com/b")
1073 transition:ui::PAGE_TRANSITION_LINK 1137 transition:ui::PAGE_TRANSITION_LINK
1074 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1138 initiationType:web::NavigationInitiationType::USER_INITIATED
1139 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
1075 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1140 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1076 ASSERT_TRUE(visible_item); 1141 ASSERT_TRUE(visible_item);
1077 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); 1142 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec());
1078 } 1143 }
1079 1144
1080 // Tests that visible URL is not the same as pending URL if it was 1145 // Tests that visible URL is not the same as pending URL if it was
1081 // renderer-initiated. 1146 // renderer-initiated.
1082 TEST_F(CRWSessionControllerTest, 1147 TEST_F(CRWSessionControllerTest,
1083 VisibleItemWithSingleRendererInitiatedPendingItem) { 1148 VisibleItemWithSingleRendererInitiatedPendingItem) {
1084 [session_controller_ 1149 [session_controller_
1085 addPendingItem:GURL("http://www.example.com/0") 1150 addPendingItem:GURL("http://www.example.com/0")
1086 referrer:MakeReferrer("http://www.example.com/a") 1151 referrer:MakeReferrer("http://www.example.com/a")
1087 transition:ui::PAGE_TRANSITION_LINK 1152 transition:ui::PAGE_TRANSITION_LINK
1088 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1153 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
1154 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
1089 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1155 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1090 ASSERT_FALSE(visible_item); 1156 ASSERT_FALSE(visible_item);
1091 } 1157 }
1092 1158
1093 // Tests that visible URL is not the same as pending URL if it was 1159 // Tests that visible URL is not the same as pending URL if it was
1094 // renderer-initiated and there is a committed item. 1160 // renderer-initiated and there is a committed item.
1095 TEST_F(CRWSessionControllerTest, 1161 TEST_F(CRWSessionControllerTest,
1096 VisibleItemWithCommittedAndRendererInitiatedPendingItem) { 1162 VisibleItemWithCommittedAndRendererInitiatedPendingItem) {
1097 [session_controller_ 1163 [session_controller_
1098 addPendingItem:GURL("http://www.example.com") 1164 addPendingItem:GURL("http://www.example.com")
1099 referrer:MakeReferrer("http://www.example.com/a") 1165 referrer:MakeReferrer("http://www.example.com/a")
1100 transition:ui::PAGE_TRANSITION_LINK 1166 transition:ui::PAGE_TRANSITION_LINK
1101 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1167 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
1168 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
1102 [session_controller_ commitPendingItem]; 1169 [session_controller_ commitPendingItem];
1103 [session_controller_ 1170 [session_controller_
1104 addPendingItem:GURL("http://www.example.com/0") 1171 addPendingItem:GURL("http://www.example.com/0")
1105 referrer:MakeReferrer("http://www.example.com/b") 1172 referrer:MakeReferrer("http://www.example.com/b")
1106 transition:ui::PAGE_TRANSITION_LINK 1173 transition:ui::PAGE_TRANSITION_LINK
1107 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1174 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
1175 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
1108 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1176 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1109 ASSERT_TRUE(visible_item); 1177 ASSERT_TRUE(visible_item);
1110 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); 1178 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec());
1111 } 1179 }
1112 1180
1113 // Tests that visible URL is not the same as pending URL created via pending 1181 // Tests that visible URL is not the same as pending URL created via pending
1114 // navigation index. 1182 // navigation index.
1115 TEST_F(CRWSessionControllerTest, VisibleItemWithPendingNavigationIndex) { 1183 TEST_F(CRWSessionControllerTest, VisibleItemWithPendingNavigationIndex) {
1116 [session_controller_ 1184 [session_controller_
1117 addPendingItem:GURL("http://www.example.com") 1185 addPendingItem:GURL("http://www.example.com")
1118 referrer:MakeReferrer("http://www.example.com/a") 1186 referrer:MakeReferrer("http://www.example.com/a")
1119 transition:ui::PAGE_TRANSITION_LINK 1187 transition:ui::PAGE_TRANSITION_LINK
1120 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1188 initiationType:web::NavigationInitiationType::USER_INITIATED
1189 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
1121 [session_controller_ commitPendingItem]; 1190 [session_controller_ commitPendingItem];
1122 [session_controller_ 1191 [session_controller_
1123 addPendingItem:GURL("http://www.example.com/0") 1192 addPendingItem:GURL("http://www.example.com/0")
1124 referrer:MakeReferrer("http://www.example.com/b") 1193 referrer:MakeReferrer("http://www.example.com/b")
1125 transition:ui::PAGE_TRANSITION_LINK 1194 transition:ui::PAGE_TRANSITION_LINK
1126 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1195 initiationType:web::NavigationInitiationType::USER_INITIATED
1196 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
1127 [session_controller_ commitPendingItem]; 1197 [session_controller_ commitPendingItem];
1128 1198
1129 [session_controller_ setPendingItemIndex:0]; 1199 [session_controller_ setPendingItemIndex:0];
1130 1200
1131 web::NavigationItem* visible_item = [session_controller_ visibleItem]; 1201 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1132 ASSERT_TRUE(visible_item); 1202 ASSERT_TRUE(visible_item);
1133 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); 1203 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec());
1134 } 1204 }
1135 1205
1136 // Tests that |-backwardItems| is empty if all preceding items are 1206 // Tests that |-backwardItems| is empty if all preceding items are
1137 // redirects. 1207 // redirects.
1138 TEST_F(CRWSessionControllerTest, BackwardItemsForAllRedirects) { 1208 TEST_F(CRWSessionControllerTest, BackwardItemsForAllRedirects) {
1139 [session_controller_ 1209 [session_controller_
1140 addPendingItem:GURL("http://www.example.com") 1210 addPendingItem:GURL("http://www.example.com")
1141 referrer:MakeReferrer("http://www.example.com/a") 1211 referrer:MakeReferrer("http://www.example.com/a")
1142 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT 1212 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT
1143 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1213 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
1214 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
1144 [session_controller_ commitPendingItem]; 1215 [session_controller_ commitPendingItem];
1145 [session_controller_ 1216 [session_controller_
1146 addPendingItem:GURL("http://www.example.com/0") 1217 addPendingItem:GURL("http://www.example.com/0")
1147 referrer:MakeReferrer("http://www.example.com/b") 1218 referrer:MakeReferrer("http://www.example.com/b")
1148 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT 1219 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT
1149 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1220 initiationType:web::NavigationInitiationType::RENDERER_INITIATED
1221 userAgentOverrideOption:UserAgentOverrideOption::INHERIT];
1150 [session_controller_ commitPendingItem]; 1222 [session_controller_ commitPendingItem];
1151 EXPECT_EQ(0U, [session_controller_ backwardItems].size()); 1223 EXPECT_EQ(0U, [session_controller_ backwardItems].size());
1152 } 1224 }
1153 1225
1154 } // anonymous namespace 1226 } // anonymous namespace
OLDNEW
« no previous file with comments | « ios/web/navigation/crw_session_controller.mm ('k') | ios/web/navigation/navigation_manager_impl.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698