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

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

Issue 2699243002: Remove CRWSessionEntry from CRWSessionController's unittests. (Closed)
Patch Set: used EmptyGURL() Created 3 years, 9 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/crw_session_entry.h"
17 #import "ios/web/navigation/navigation_item_impl.h" 16 #import "ios/web/navigation/navigation_item_impl.h"
18 #import "ios/web/navigation/navigation_manager_impl.h" 17 #import "ios/web/navigation/navigation_manager_impl.h"
19 #include "ios/web/public/referrer.h" 18 #include "ios/web/public/referrer.h"
20 #include "ios/web/public/test/fakes/test_browser_state.h" 19 #include "ios/web/public/test/fakes/test_browser_state.h"
21 #include "ios/web/public/test/test_web_thread_bundle.h" 20 #include "ios/web/public/test/test_web_thread_bundle.h"
22 #import "net/base/mac/url_conversions.h" 21 #import "net/base/mac/url_conversions.h"
23 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
24 #import "testing/gtest_mac.h" 23 #import "testing/gtest_mac.h"
25 #include "testing/platform_test.h" 24 #include "testing/platform_test.h"
26 25
27 @interface CRWSessionController (Testing) 26 @interface CRWSessionController (Testing)
28 - (const GURL&)URLForSessionAtIndex:(NSUInteger)index; 27 - (const GURL&)URLForItemAtIndex:(size_t)index;
29 - (const GURL&)currentURL; 28 - (const GURL&)currentURL;
30 @end 29 @end
31 30
32 @implementation CRWSessionController (Testing) 31 @implementation CRWSessionController (Testing)
33 - (const GURL&)URLForSessionAtIndex:(NSUInteger)index { 32 - (const GURL&)URLForItemAtIndex:(size_t)index {
34 CRWSessionEntry* entry = 33 web::NavigationItemList items = self.items;
35 static_cast<CRWSessionEntry*>([self.entries objectAtIndex:index]); 34 if (index < items.size())
36 return entry.navigationItem->GetURL(); 35 return items[index]->GetURL();
36 return GURL::EmptyGURL();
37 } 37 }
38 38
39 - (const GURL&)currentURL { 39 - (const GURL&)currentURL {
40 DCHECK([self currentEntry]); 40 return self.currentItem ? self.currentItem->GetURL() : GURL::EmptyGURL();
41 return [self currentEntry].navigationItem->GetURL();
42 } 41 }
43 @end 42 @end
44 43
45 namespace { 44 namespace {
46 45
47 class CRWSessionControllerTest : public PlatformTest { 46 class CRWSessionControllerTest : public PlatformTest {
48 protected: 47 protected:
49 void SetUp() override { 48 void SetUp() override {
50 session_controller_.reset([[CRWSessionController alloc] 49 session_controller_.reset([[CRWSessionController alloc]
51 initWithBrowserState:&browser_state_ 50 initWithBrowserState:&browser_state_
52 openedByDOM:NO]); 51 openedByDOM:NO]);
53 } 52 }
54 53
55 web::Referrer MakeReferrer(const std::string& url) { 54 web::Referrer MakeReferrer(const std::string& url) {
56 return web::Referrer(GURL(url), web::ReferrerPolicyDefault); 55 return web::Referrer(GURL(url), web::ReferrerPolicyDefault);
57 } 56 }
58 57
59 web::TestWebThreadBundle thread_bundle_; 58 web::TestWebThreadBundle thread_bundle_;
60 web::TestBrowserState browser_state_; 59 web::TestBrowserState browser_state_;
61 base::scoped_nsobject<CRWSessionController> session_controller_; 60 base::scoped_nsobject<CRWSessionController> session_controller_;
62 }; 61 };
63 62
64 TEST_F(CRWSessionControllerTest, Init) { 63 TEST_F(CRWSessionControllerTest, Init) {
65 EXPECT_FALSE([session_controller_ isOpenedByDOM]); 64 EXPECT_FALSE([session_controller_ isOpenedByDOM]);
66 EXPECT_EQ(0U, [[session_controller_ entries] count]); 65 EXPECT_TRUE([session_controller_ items].empty());
67 EXPECT_EQ(nil, [session_controller_ currentEntry]); 66 EXPECT_FALSE([session_controller_ currentItem]);
68 } 67 }
69 68
70 // Tests session controller state after setting a pending index. 69 // Tests session controller state after setting a pending index.
71 TEST_F(CRWSessionControllerTest, SetPendingIndex) { 70 TEST_F(CRWSessionControllerTest, SetPendingIndex) {
72 [session_controller_ 71 [session_controller_
73 addPendingItem:GURL("http://www.example.com") 72 addPendingItem:GURL("http://www.example.com")
74 referrer:web::Referrer() 73 referrer:web::Referrer()
75 transition:ui::PAGE_TRANSITION_TYPED 74 transition:ui::PAGE_TRANSITION_TYPED
76 initiationType:web::NavigationInitiationType::USER_INITIATED]; 75 initiationType:web::NavigationInitiationType::USER_INITIATED];
77 [session_controller_ commitPendingItem]; 76 [session_controller_ commitPendingItem];
78 77
79 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 78 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
80 [session_controller_ setPendingItemIndex:0]; 79 [session_controller_ setPendingItemIndex:0];
81 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 80 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
82 EXPECT_EQ([[session_controller_ entries] lastObject], 81 EXPECT_EQ([session_controller_ items].back(),
83 [session_controller_ pendingEntry]); 82 [session_controller_ pendingItem]);
84 } 83 }
85 84
86 TEST_F(CRWSessionControllerTest, addPendingItem) { 85 TEST_F(CRWSessionControllerTest, addPendingItem) {
87 [session_controller_ 86 [session_controller_
88 addPendingItem:GURL("http://www.url.com") 87 addPendingItem:GURL("http://www.url.com")
89 referrer:MakeReferrer("http://www.referer.com") 88 referrer:MakeReferrer("http://www.referer.com")
90 transition:ui::PAGE_TRANSITION_TYPED 89 transition:ui::PAGE_TRANSITION_TYPED
91 initiationType:web::NavigationInitiationType::USER_INITIATED]; 90 initiationType:web::NavigationInitiationType::USER_INITIATED];
92 91
93 EXPECT_EQ(0U, [[session_controller_ entries] count]); 92 EXPECT_TRUE([session_controller_ items].empty());
94 EXPECT_EQ( 93 EXPECT_EQ(
95 GURL("http://www.url.com/"), 94 GURL("http://www.url.com/"),
96 [session_controller_ currentURL]); 95 [session_controller_ currentURL]);
97 } 96 }
98 97
99 TEST_F(CRWSessionControllerTest, addPendingItemWithCommittedEntries) { 98 TEST_F(CRWSessionControllerTest, addPendingItemWithCommittedItems) {
100 [session_controller_ 99 [session_controller_
101 addPendingItem:GURL("http://www.committed.url.com") 100 addPendingItem:GURL("http://www.committed.url.com")
102 referrer:MakeReferrer("http://www.referer.com") 101 referrer:MakeReferrer("http://www.referer.com")
103 transition:ui::PAGE_TRANSITION_TYPED 102 transition:ui::PAGE_TRANSITION_TYPED
104 initiationType:web::NavigationInitiationType::USER_INITIATED]; 103 initiationType:web::NavigationInitiationType::USER_INITIATED];
105 [session_controller_ commitPendingItem]; 104 [session_controller_ commitPendingItem];
106 105
107 [session_controller_ 106 [session_controller_
108 addPendingItem:GURL("http://www.url.com") 107 addPendingItem:GURL("http://www.url.com")
109 referrer:MakeReferrer("http://www.referer.com") 108 referrer:MakeReferrer("http://www.referer.com")
110 transition:ui::PAGE_TRANSITION_TYPED 109 transition:ui::PAGE_TRANSITION_TYPED
111 initiationType:web::NavigationInitiationType::USER_INITIATED]; 110 initiationType:web::NavigationInitiationType::USER_INITIATED];
112 111
113 EXPECT_EQ(1U, [[session_controller_ entries] count]); 112 EXPECT_EQ(1U, [session_controller_ items].size());
114 EXPECT_EQ( 113 EXPECT_EQ(GURL("http://www.committed.url.com/"),
115 GURL("http://www.committed.url.com/"), 114 [session_controller_ URLForItemAtIndex:0U]);
116 [session_controller_ URLForSessionAtIndex:0U]);
117 EXPECT_EQ( 115 EXPECT_EQ(
118 GURL("http://www.url.com/"), 116 GURL("http://www.url.com/"),
119 [session_controller_ currentURL]); 117 [session_controller_ currentURL]);
120 } 118 }
121 119
122 // Tests that adding a pending entry resets pending entry index. 120 // Tests that adding a pending item resets pending item index.
123 TEST_F(CRWSessionControllerTest, addPendingItemWithExisingPendingEntryIndex) { 121 TEST_F(CRWSessionControllerTest, addPendingItemWithExistingPendingItemIndex) {
124 [session_controller_ 122 [session_controller_
125 addPendingItem:GURL("http://www.example.com") 123 addPendingItem:GURL("http://www.example.com")
126 referrer:web::Referrer() 124 referrer:web::Referrer()
127 transition:ui::PAGE_TRANSITION_TYPED 125 transition:ui::PAGE_TRANSITION_TYPED
128 initiationType:web::NavigationInitiationType::USER_INITIATED]; 126 initiationType:web::NavigationInitiationType::USER_INITIATED];
129 [session_controller_ commitPendingItem]; 127 [session_controller_ commitPendingItem];
130 [session_controller_ 128 [session_controller_
131 addPendingItem:GURL("http://www.example.com/0") 129 addPendingItem:GURL("http://www.example.com/0")
132 referrer:web::Referrer() 130 referrer:web::Referrer()
133 transition:ui::PAGE_TRANSITION_TYPED 131 transition:ui::PAGE_TRANSITION_TYPED
134 initiationType:web::NavigationInitiationType::USER_INITIATED]; 132 initiationType:web::NavigationInitiationType::USER_INITIATED];
135 [session_controller_ commitPendingItem]; 133 [session_controller_ commitPendingItem];
136 134
137 // Set 0 as pending entry index. 135 // Set 0 as pending item index.
138 [session_controller_ setPendingItemIndex:0]; 136 [session_controller_ setPendingItemIndex:0];
139 EXPECT_EQ(GURL("http://www.example.com/"), 137 EXPECT_EQ(GURL("http://www.example.com/"),
140 [[session_controller_ pendingEntry] navigationItem]->GetURL()); 138 [session_controller_ pendingItem]->GetURL());
141 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 139 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
142 140
143 // Add a pending entry, which should drop pending navigation index. 141 // Add a pending item, which should drop pending navigation index.
144 [session_controller_ 142 [session_controller_
145 addPendingItem:GURL("http://www.example.com/1") 143 addPendingItem:GURL("http://www.example.com/1")
146 referrer:web::Referrer() 144 referrer:web::Referrer()
147 transition:ui::PAGE_TRANSITION_TYPED 145 transition:ui::PAGE_TRANSITION_TYPED
148 initiationType:web::NavigationInitiationType::USER_INITIATED]; 146 initiationType:web::NavigationInitiationType::USER_INITIATED];
149 EXPECT_EQ(GURL("http://www.example.com/1"), 147 EXPECT_EQ(GURL("http://www.example.com/1"),
150 [[session_controller_ pendingEntry] navigationItem]->GetURL()); 148 [session_controller_ pendingItem]->GetURL());
151 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 149 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
152 } 150 }
153 151
154 TEST_F(CRWSessionControllerTest, addPendingItemOverriding) { 152 TEST_F(CRWSessionControllerTest, addPendingItemOverriding) {
155 [session_controller_ 153 [session_controller_
156 addPendingItem:GURL("http://www.url.com") 154 addPendingItem:GURL("http://www.url.com")
157 referrer:MakeReferrer("http://www.referer.com") 155 referrer:MakeReferrer("http://www.referer.com")
158 transition:ui::PAGE_TRANSITION_TYPED 156 transition:ui::PAGE_TRANSITION_TYPED
159 initiationType:web::NavigationInitiationType::USER_INITIATED]; 157 initiationType:web::NavigationInitiationType::USER_INITIATED];
160 [session_controller_ 158 [session_controller_
161 addPendingItem:GURL("http://www.another.url.com") 159 addPendingItem:GURL("http://www.another.url.com")
162 referrer:MakeReferrer("http://www.another.referer.com") 160 referrer:MakeReferrer("http://www.another.referer.com")
163 transition:ui::PAGE_TRANSITION_TYPED 161 transition:ui::PAGE_TRANSITION_TYPED
164 initiationType:web::NavigationInitiationType::USER_INITIATED]; 162 initiationType:web::NavigationInitiationType::USER_INITIATED];
165 163
166 EXPECT_EQ(0U, [[session_controller_ entries] count]); 164 EXPECT_TRUE([session_controller_ items].empty());
167 EXPECT_EQ( 165 EXPECT_EQ(
168 GURL("http://www.another.url.com/"), 166 GURL("http://www.another.url.com/"),
169 [session_controller_ currentURL]); 167 [session_controller_ currentURL]);
170 } 168 }
171 169
172 TEST_F(CRWSessionControllerTest, addPendingItemAndCommit) { 170 TEST_F(CRWSessionControllerTest, addPendingItemAndCommit) {
173 [session_controller_ 171 [session_controller_
174 addPendingItem:GURL("http://www.url.com") 172 addPendingItem:GURL("http://www.url.com")
175 referrer:MakeReferrer("http://www.referer.com") 173 referrer:MakeReferrer("http://www.referer.com")
176 transition:ui::PAGE_TRANSITION_TYPED 174 transition:ui::PAGE_TRANSITION_TYPED
177 initiationType:web::NavigationInitiationType::USER_INITIATED]; 175 initiationType:web::NavigationInitiationType::USER_INITIATED];
178 [session_controller_ commitPendingItem]; 176 [session_controller_ commitPendingItem];
179 177
180 EXPECT_EQ(1U, [[session_controller_ entries] count]); 178 EXPECT_EQ(1U, [session_controller_ items].size());
181 EXPECT_EQ( 179 EXPECT_EQ(GURL("http://www.url.com/"),
182 GURL("http://www.url.com/"), 180 [session_controller_ URLForItemAtIndex:0U]);
183 [session_controller_ URLForSessionAtIndex:0U]); 181 EXPECT_EQ([session_controller_ items].front(),
184 EXPECT_EQ( 182 [session_controller_ currentItem]);
185 [[session_controller_ entries] objectAtIndex:0U],
186 [session_controller_ currentEntry]);
187 } 183 }
188 184
189 TEST_F(CRWSessionControllerTest, addPendingItemOverridingAndCommit) { 185 TEST_F(CRWSessionControllerTest, addPendingItemOverridingAndCommit) {
190 [session_controller_ 186 [session_controller_
191 addPendingItem:GURL("http://www.url.com") 187 addPendingItem:GURL("http://www.url.com")
192 referrer:MakeReferrer("http://www.referer.com") 188 referrer:MakeReferrer("http://www.referer.com")
193 transition:ui::PAGE_TRANSITION_TYPED 189 transition:ui::PAGE_TRANSITION_TYPED
194 initiationType:web::NavigationInitiationType::USER_INITIATED]; 190 initiationType:web::NavigationInitiationType::USER_INITIATED];
195 [session_controller_ 191 [session_controller_
196 addPendingItem:GURL("http://www.another.url.com") 192 addPendingItem:GURL("http://www.another.url.com")
197 referrer:MakeReferrer("http://www.another.referer.com") 193 referrer:MakeReferrer("http://www.another.referer.com")
198 transition:ui::PAGE_TRANSITION_TYPED 194 transition:ui::PAGE_TRANSITION_TYPED
199 initiationType:web::NavigationInitiationType::USER_INITIATED]; 195 initiationType:web::NavigationInitiationType::USER_INITIATED];
200 [session_controller_ commitPendingItem]; 196 [session_controller_ commitPendingItem];
201 197
202 EXPECT_EQ(1U, [[session_controller_ entries] count]); 198 EXPECT_EQ(1U, [session_controller_ items].size());
203 EXPECT_EQ( 199 EXPECT_EQ(GURL("http://www.another.url.com/"),
204 GURL("http://www.another.url.com/"), 200 [session_controller_ URLForItemAtIndex:0U]);
205 [session_controller_ URLForSessionAtIndex:0U]); 201 EXPECT_EQ([session_controller_ items].front(),
206 EXPECT_EQ( 202 [session_controller_ currentItem]);
207 [[session_controller_ entries] objectAtIndex:0U],
208 [session_controller_ currentEntry]);
209 } 203 }
210 204
211 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitMultiple) { 205 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitMultiple) {
212 [session_controller_ 206 [session_controller_
213 addPendingItem:GURL("http://www.url.com") 207 addPendingItem:GURL("http://www.url.com")
214 referrer:MakeReferrer("http://www.referer.com") 208 referrer:MakeReferrer("http://www.referer.com")
215 transition:ui::PAGE_TRANSITION_TYPED 209 transition:ui::PAGE_TRANSITION_TYPED
216 initiationType:web::NavigationInitiationType::USER_INITIATED]; 210 initiationType:web::NavigationInitiationType::USER_INITIATED];
217 [session_controller_ commitPendingItem]; 211 [session_controller_ commitPendingItem];
218 212
219 [session_controller_ 213 [session_controller_
220 addPendingItem:GURL("http://www.another.url.com") 214 addPendingItem:GURL("http://www.another.url.com")
221 referrer:MakeReferrer("http://www.another.referer.com") 215 referrer:MakeReferrer("http://www.another.referer.com")
222 transition:ui::PAGE_TRANSITION_TYPED 216 transition:ui::PAGE_TRANSITION_TYPED
223 initiationType:web::NavigationInitiationType::USER_INITIATED]; 217 initiationType:web::NavigationInitiationType::USER_INITIATED];
224 [session_controller_ commitPendingItem]; 218 [session_controller_ commitPendingItem];
225 219
226 EXPECT_EQ(2U, [[session_controller_ entries] count]); 220 EXPECT_EQ(2U, [session_controller_ items].size());
227 EXPECT_EQ( 221 EXPECT_EQ(GURL("http://www.url.com/"),
228 GURL("http://www.url.com/"), 222 [session_controller_ URLForItemAtIndex:0U]);
229 [session_controller_ URLForSessionAtIndex:0U]); 223 EXPECT_EQ(GURL("http://www.another.url.com/"),
230 EXPECT_EQ( 224 [session_controller_ URLForItemAtIndex:1U]);
231 GURL("http://www.another.url.com/"), 225 EXPECT_EQ([session_controller_ items][1U], [session_controller_ currentItem]);
232 [session_controller_ URLForSessionAtIndex:1U]);
233 EXPECT_EQ(
234 [[session_controller_ entries] objectAtIndex:1U],
235 [session_controller_ currentEntry]);
236 } 226 }
237 227
238 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscard) { 228 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscard) {
239 [session_controller_ 229 [session_controller_
240 addPendingItem:GURL("http://www.url.com") 230 addPendingItem:GURL("http://www.url.com")
241 referrer:MakeReferrer("http://www.referer.com") 231 referrer:MakeReferrer("http://www.referer.com")
242 transition:ui::PAGE_TRANSITION_TYPED 232 transition:ui::PAGE_TRANSITION_TYPED
243 initiationType:web::NavigationInitiationType::USER_INITIATED]; 233 initiationType:web::NavigationInitiationType::USER_INITIATED];
244 [session_controller_ discardNonCommittedItems]; 234 [session_controller_ discardNonCommittedItems];
245 235
246 EXPECT_EQ(0U, [[session_controller_ entries] count]); 236 EXPECT_TRUE([session_controller_ items].empty());
247 EXPECT_EQ(nil, [session_controller_ currentEntry]); 237 EXPECT_FALSE([session_controller_ currentItem]);
248 } 238 }
249 239
250 // Tests discarding pending entry added via |setPendingItemIndex:| call. 240 // Tests discarding pending item added via |setPendingItemIndex:| call.
251 TEST_F(CRWSessionControllerTest, setPendingItemIndexAndDiscard) { 241 TEST_F(CRWSessionControllerTest, setPendingItemIndexAndDiscard) {
252 [session_controller_ 242 [session_controller_
253 addPendingItem:GURL("http://www.example.com") 243 addPendingItem:GURL("http://www.example.com")
254 referrer:web::Referrer() 244 referrer:web::Referrer()
255 transition:ui::PAGE_TRANSITION_TYPED 245 transition:ui::PAGE_TRANSITION_TYPED
256 initiationType:web::NavigationInitiationType::USER_INITIATED]; 246 initiationType:web::NavigationInitiationType::USER_INITIATED];
257 [session_controller_ commitPendingItem]; 247 [session_controller_ commitPendingItem];
258 248
259 [session_controller_ setPendingItemIndex:0]; 249 [session_controller_ setPendingItemIndex:0];
260 EXPECT_TRUE([session_controller_ pendingEntry]); 250 EXPECT_TRUE([session_controller_ pendingItem]);
261 EXPECT_EQ(0, [session_controller_ pendingItemIndex]); 251 EXPECT_EQ(0, [session_controller_ pendingItemIndex]);
262 252
263 [session_controller_ discardNonCommittedItems]; 253 [session_controller_ discardNonCommittedItems];
264 EXPECT_FALSE([session_controller_ pendingEntry]); 254 EXPECT_FALSE([session_controller_ pendingItem]);
265 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 255 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
266 } 256 }
267 257
268 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscardAndAddAndCommit) { 258 TEST_F(CRWSessionControllerTest, addPendingItemAndDiscardAndAddAndCommit) {
269 [session_controller_ 259 [session_controller_
270 addPendingItem:GURL("http://www.url.com") 260 addPendingItem:GURL("http://www.url.com")
271 referrer:MakeReferrer("http://www.referer.com") 261 referrer:MakeReferrer("http://www.referer.com")
272 transition:ui::PAGE_TRANSITION_TYPED 262 transition:ui::PAGE_TRANSITION_TYPED
273 initiationType:web::NavigationInitiationType::USER_INITIATED]; 263 initiationType:web::NavigationInitiationType::USER_INITIATED];
274 [session_controller_ discardNonCommittedItems]; 264 [session_controller_ discardNonCommittedItems];
275 265
276 [session_controller_ 266 [session_controller_
277 addPendingItem:GURL("http://www.another.url.com") 267 addPendingItem:GURL("http://www.another.url.com")
278 referrer:MakeReferrer("http://www.referer.com") 268 referrer:MakeReferrer("http://www.referer.com")
279 transition:ui::PAGE_TRANSITION_TYPED 269 transition:ui::PAGE_TRANSITION_TYPED
280 initiationType:web::NavigationInitiationType::USER_INITIATED]; 270 initiationType:web::NavigationInitiationType::USER_INITIATED];
281 [session_controller_ commitPendingItem]; 271 [session_controller_ commitPendingItem];
282 272
283 EXPECT_EQ(1U, [[session_controller_ entries] count]); 273 EXPECT_EQ(1U, [session_controller_ items].size());
284 EXPECT_EQ( 274 EXPECT_EQ(GURL("http://www.another.url.com/"),
285 GURL("http://www.another.url.com/"), 275 [session_controller_ URLForItemAtIndex:0U]);
286 [session_controller_ URLForSessionAtIndex:0U]); 276 EXPECT_EQ([session_controller_ items].front(),
287 EXPECT_EQ( 277 [session_controller_ currentItem]);
288 [[session_controller_ entries] objectAtIndex:0U],
289 [session_controller_ currentEntry]);
290 } 278 }
291 279
292 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitAndAddAndDiscard) { 280 TEST_F(CRWSessionControllerTest, addPendingItemAndCommitAndAddAndDiscard) {
293 [session_controller_ 281 [session_controller_
294 addPendingItem:GURL("http://www.url.com") 282 addPendingItem:GURL("http://www.url.com")
295 referrer:MakeReferrer("http://www.referer.com") 283 referrer:MakeReferrer("http://www.referer.com")
296 transition:ui::PAGE_TRANSITION_TYPED 284 transition:ui::PAGE_TRANSITION_TYPED
297 initiationType:web::NavigationInitiationType::USER_INITIATED]; 285 initiationType:web::NavigationInitiationType::USER_INITIATED];
298 [session_controller_ commitPendingItem]; 286 [session_controller_ commitPendingItem];
299 287
300 [session_controller_ 288 [session_controller_
301 addPendingItem:GURL("http://www.another.url.com") 289 addPendingItem:GURL("http://www.another.url.com")
302 referrer:MakeReferrer("http://www.referer.com") 290 referrer:MakeReferrer("http://www.referer.com")
303 transition:ui::PAGE_TRANSITION_TYPED 291 transition:ui::PAGE_TRANSITION_TYPED
304 initiationType:web::NavigationInitiationType::USER_INITIATED]; 292 initiationType:web::NavigationInitiationType::USER_INITIATED];
305 [session_controller_ discardNonCommittedItems]; 293 [session_controller_ discardNonCommittedItems];
306 294
307 EXPECT_EQ(1U, [[session_controller_ entries] count]); 295 EXPECT_EQ(1U, [session_controller_ items].size());
308 EXPECT_EQ( 296 EXPECT_EQ(GURL("http://www.url.com/"),
309 GURL("http://www.url.com/"), 297 [session_controller_ URLForItemAtIndex:0U]);
310 [session_controller_ URLForSessionAtIndex:0U]); 298 EXPECT_EQ([session_controller_ items].front(),
311 EXPECT_EQ( 299 [session_controller_ currentItem]);
312 [[session_controller_ entries] objectAtIndex:0U],
313 [session_controller_ currentEntry]);
314 } 300 }
315 301
316 TEST_F(CRWSessionControllerTest, 302 TEST_F(CRWSessionControllerTest,
317 commitPendingItemWithoutPendingOrCommittedEntry) { 303 commitPendingItemWithoutPendingOrCommittedItem) {
318 [session_controller_ commitPendingItem]; 304 [session_controller_ commitPendingItem];
319 305
320 EXPECT_EQ(0U, [[session_controller_ entries] count]); 306 EXPECT_TRUE([session_controller_ items].empty());
321 EXPECT_EQ(nil, [session_controller_ currentEntry]); 307 EXPECT_FALSE([session_controller_ currentItem]);
322 } 308 }
323 309
324 TEST_F(CRWSessionControllerTest, 310 TEST_F(CRWSessionControllerTest,
325 commitPendingItemWithoutPendingEntryWithCommittedEntry) { 311 commitPendingItemWithoutPendingItemWithCommittedItem) {
326 // Setup committed entry 312 // Setup committed item.
327 [session_controller_ 313 [session_controller_
328 addPendingItem:GURL("http://www.url.com") 314 addPendingItem:GURL("http://www.url.com")
329 referrer:MakeReferrer("http://www.referer.com") 315 referrer:MakeReferrer("http://www.referer.com")
330 transition:ui::PAGE_TRANSITION_TYPED 316 transition:ui::PAGE_TRANSITION_TYPED
331 initiationType:web::NavigationInitiationType::USER_INITIATED]; 317 initiationType:web::NavigationInitiationType::USER_INITIATED];
332 [session_controller_ commitPendingItem]; 318 [session_controller_ commitPendingItem];
333 319
334 // Commit pending entry when there is no such one 320 // Commit pending item when there is no such one
335 [session_controller_ commitPendingItem]; 321 [session_controller_ commitPendingItem];
336 322
337 EXPECT_EQ(1U, [[session_controller_ entries] count]); 323 EXPECT_EQ(1U, [session_controller_ items].size());
338 EXPECT_EQ( 324 EXPECT_EQ([session_controller_ items].front(),
339 [[session_controller_ entries] objectAtIndex:0U], 325 [session_controller_ currentItem]);
340 [session_controller_ currentEntry]);
341 } 326 }
342 327
343 // Tests that forward entries are discarded after navigation entry is committed. 328 // Tests that forward entries are discarded after navigation item is committed.
344 TEST_F(CRWSessionControllerTest, commitPendingItemWithExistingForwardEntries) { 329 TEST_F(CRWSessionControllerTest, commitPendingItemWithExistingForwardItems) {
345 // Make 3 entries. 330 // Make 3 entries.
346 [session_controller_ 331 [session_controller_
347 addPendingItem:GURL("http://www.example.com/0") 332 addPendingItem:GURL("http://www.example.com/0")
348 referrer:MakeReferrer("http://www.example.com/a") 333 referrer:MakeReferrer("http://www.example.com/a")
349 transition:ui::PAGE_TRANSITION_LINK 334 transition:ui::PAGE_TRANSITION_LINK
350 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 335 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
351 [session_controller_ commitPendingItem]; 336 [session_controller_ commitPendingItem];
352 [session_controller_ 337 [session_controller_
353 addPendingItem:GURL("http://www.example.com/1") 338 addPendingItem:GURL("http://www.example.com/1")
354 referrer:MakeReferrer("http://www.example.com/b") 339 referrer:MakeReferrer("http://www.example.com/b")
355 transition:ui::PAGE_TRANSITION_LINK 340 transition:ui::PAGE_TRANSITION_LINK
356 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 341 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
357 [session_controller_ commitPendingItem]; 342 [session_controller_ commitPendingItem];
358 [session_controller_ 343 [session_controller_
359 addPendingItem:GURL("http://www.example.com/2") 344 addPendingItem:GURL("http://www.example.com/2")
360 referrer:MakeReferrer("http://www.example.com/c") 345 referrer:MakeReferrer("http://www.example.com/c")
361 transition:ui::PAGE_TRANSITION_LINK 346 transition:ui::PAGE_TRANSITION_LINK
362 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 347 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
363 [session_controller_ commitPendingItem]; 348 [session_controller_ commitPendingItem];
364 349
365 // Go back to the first entry. 350 // Go back to the first item.
366 [session_controller_ goToItemAtIndex:0]; 351 [session_controller_ goToItemAtIndex:0];
367 352
368 // Create and commit a new pending entry. 353 // Create and commit a new pending item.
369 [session_controller_ 354 [session_controller_
370 addPendingItem:GURL("http://www.example.com/2") 355 addPendingItem:GURL("http://www.example.com/2")
371 referrer:MakeReferrer("http://www.example.com/c") 356 referrer:MakeReferrer("http://www.example.com/c")
372 transition:ui::PAGE_TRANSITION_LINK 357 transition:ui::PAGE_TRANSITION_LINK
373 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 358 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
374 [session_controller_ commitPendingItem]; 359 [session_controller_ commitPendingItem];
375 360
376 // All forward entries should go away. 361 // All forward entries should go away.
377 EXPECT_EQ(2U, [[session_controller_ entries] count]); 362 EXPECT_EQ(2U, [session_controller_ items].size());
378 EXPECT_EQ(0U, [[session_controller_ forwardEntries] count]); 363 EXPECT_EQ(0U, [session_controller_ forwardItems].size());
379 ASSERT_EQ(1, [session_controller_ currentNavigationIndex]); 364 ASSERT_EQ(1, [session_controller_ currentNavigationIndex]);
380 ASSERT_EQ(0, [session_controller_ previousNavigationIndex]); 365 ASSERT_EQ(0, [session_controller_ previousNavigationIndex]);
381 } 366 }
382 367
383 // Tests committing pending entry index from the middle. 368 // Tests committing pending item index from the middle.
384 TEST_F(CRWSessionControllerTest, commitPendingItemIndex) { 369 TEST_F(CRWSessionControllerTest, commitPendingItemIndex) {
385 [session_controller_ 370 [session_controller_
386 addPendingItem:GURL("http://www.example.com/0") 371 addPendingItem:GURL("http://www.example.com/0")
387 referrer:web::Referrer() 372 referrer:web::Referrer()
388 transition:ui::PAGE_TRANSITION_TYPED 373 transition:ui::PAGE_TRANSITION_TYPED
389 initiationType:web::NavigationInitiationType::USER_INITIATED]; 374 initiationType:web::NavigationInitiationType::USER_INITIATED];
390 [session_controller_ commitPendingItem]; 375 [session_controller_ commitPendingItem];
391 [session_controller_ 376 [session_controller_
392 addPendingItem:GURL("http://www.example.com/1") 377 addPendingItem:GURL("http://www.example.com/1")
393 referrer:web::Referrer() 378 referrer:web::Referrer()
394 transition:ui::PAGE_TRANSITION_TYPED 379 transition:ui::PAGE_TRANSITION_TYPED
395 initiationType:web::NavigationInitiationType::USER_INITIATED]; 380 initiationType:web::NavigationInitiationType::USER_INITIATED];
396 [session_controller_ commitPendingItem]; 381 [session_controller_ commitPendingItem];
397 [session_controller_ 382 [session_controller_
398 addPendingItem:GURL("http://www.example.com/2") 383 addPendingItem:GURL("http://www.example.com/2")
399 referrer:web::Referrer() 384 referrer:web::Referrer()
400 transition:ui::PAGE_TRANSITION_TYPED 385 transition:ui::PAGE_TRANSITION_TYPED
401 initiationType:web::NavigationInitiationType::USER_INITIATED]; 386 initiationType:web::NavigationInitiationType::USER_INITIATED];
402 [session_controller_ commitPendingItem]; 387 [session_controller_ commitPendingItem];
403 ASSERT_EQ(3U, [[session_controller_ entries] count]); 388 ASSERT_EQ(3U, [session_controller_ items].size());
404 389
405 // Go to the middle, and commit first pending entry index. 390 // Go to the middle, and commit first pending item index.
406 [session_controller_ goToItemAtIndex:1]; 391 [session_controller_ goToItemAtIndex:1];
407 [session_controller_ setPendingItemIndex:0]; 392 [session_controller_ setPendingItemIndex:0];
408 ASSERT_EQ(0, [session_controller_ pendingItemIndex]); 393 ASSERT_EQ(0, [session_controller_ pendingItemIndex]);
409 base::scoped_nsobject<CRWSessionEntry> pendingEntry( 394 web::NavigationItem* pendingItem = [session_controller_ pendingItem];
410 [[session_controller_ pendingEntry] retain]); 395 ASSERT_TRUE(pendingItem);
411 ASSERT_TRUE(pendingEntry);
412 ASSERT_EQ(1, [session_controller_ currentNavigationIndex]); 396 ASSERT_EQ(1, [session_controller_ currentNavigationIndex]);
413 EXPECT_EQ(2, [session_controller_ previousNavigationIndex]); 397 EXPECT_EQ(2, [session_controller_ previousNavigationIndex]);
414 [session_controller_ commitPendingItem]; 398 [session_controller_ commitPendingItem];
415 399
416 // Verify that pending entry has been committed and current and previous entry 400 // Verify that pending item has been committed and current and previous item
417 // indices updated. 401 // indices updated.
418 EXPECT_EQ(pendingEntry, [session_controller_ lastCommittedEntry]); 402 EXPECT_EQ([session_controller_ lastCommittedItem], pendingItem);
419 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 403 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
420 EXPECT_FALSE([session_controller_ pendingEntry]); 404 EXPECT_FALSE([session_controller_ pendingItem]);
421 EXPECT_EQ(0, [session_controller_ currentNavigationIndex]); 405 EXPECT_EQ(0, [session_controller_ currentNavigationIndex]);
422 EXPECT_EQ(1, [session_controller_ previousNavigationIndex]); 406 EXPECT_EQ(1, [session_controller_ previousNavigationIndex]);
423 EXPECT_EQ(3U, [[session_controller_ entries] count]); 407 EXPECT_EQ(3U, [session_controller_ items].size());
424 } 408 }
425 409
426 TEST_F(CRWSessionControllerTest, 410 TEST_F(CRWSessionControllerTest,
427 DiscardPendingEntryWithoutPendingOrCommittedEntry) { 411 DiscardPendingItemWithoutPendingOrCommittedItem) {
428 [session_controller_ discardNonCommittedItems]; 412 [session_controller_ discardNonCommittedItems];
429 413
430 EXPECT_EQ(0U, [[session_controller_ entries] count]); 414 EXPECT_TRUE([session_controller_ items].empty());
431 EXPECT_EQ(nil, [session_controller_ currentEntry]); 415 EXPECT_FALSE([session_controller_ currentItem]);
432 } 416 }
433 417
434 TEST_F(CRWSessionControllerTest, 418 TEST_F(CRWSessionControllerTest,
435 DiscardPendingEntryWithoutPendingEntryWithCommittedEntry) { 419 DiscardPendingItemWithoutPendingItemWithCommittedItem) {
436 // Setup committed entry 420 // Setup committed item
437 [session_controller_ 421 [session_controller_
438 addPendingItem:GURL("http://www.url.com") 422 addPendingItem:GURL("http://www.url.com")
439 referrer:MakeReferrer("http://www.referer.com") 423 referrer:MakeReferrer("http://www.referer.com")
440 transition:ui::PAGE_TRANSITION_TYPED 424 transition:ui::PAGE_TRANSITION_TYPED
441 initiationType:web::NavigationInitiationType::USER_INITIATED]; 425 initiationType:web::NavigationInitiationType::USER_INITIATED];
442 [session_controller_ commitPendingItem]; 426 [session_controller_ commitPendingItem];
443 427
444 // Discard noncommitted entries when there is no such one 428 // Discard noncommitted entries when there is no such one
445 [session_controller_ discardNonCommittedItems]; 429 [session_controller_ discardNonCommittedItems];
446 430
447 EXPECT_EQ(1U, [[session_controller_ entries] count]); 431 EXPECT_EQ(1U, [session_controller_ items].size());
448 EXPECT_EQ( 432 EXPECT_EQ([session_controller_ items].front(),
449 [[session_controller_ entries] objectAtIndex:0U], 433 [session_controller_ currentItem]);
450 [session_controller_ currentEntry]);
451 } 434 }
452 435
453 TEST_F(CRWSessionControllerTest, updatePendingItemWithoutPendingEntry) { 436 TEST_F(CRWSessionControllerTest, updatePendingItemWithoutPendingItem) {
454 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; 437 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")];
455 [session_controller_ commitPendingItem]; 438 [session_controller_ commitPendingItem];
456 439
457 EXPECT_EQ(0U, [[session_controller_ entries] count]); 440 EXPECT_TRUE([session_controller_ items].empty());
458 EXPECT_EQ(nil, [session_controller_ currentEntry]); 441 EXPECT_FALSE([session_controller_ currentItem]);
459 } 442 }
460 443
461 TEST_F(CRWSessionControllerTest, updatePendingItemWithPendingEntry) { 444 TEST_F(CRWSessionControllerTest, updatePendingItemWithPendingItem) {
462 [session_controller_ 445 [session_controller_
463 addPendingItem:GURL("http://www.url.com") 446 addPendingItem:GURL("http://www.url.com")
464 referrer:MakeReferrer("http://www.referer.com") 447 referrer:MakeReferrer("http://www.referer.com")
465 transition:ui::PAGE_TRANSITION_TYPED 448 transition:ui::PAGE_TRANSITION_TYPED
466 initiationType:web::NavigationInitiationType::USER_INITIATED]; 449 initiationType:web::NavigationInitiationType::USER_INITIATED];
467 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; 450 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")];
468 451
469 EXPECT_EQ( 452 EXPECT_EQ(
470 GURL("http://www.another.url.com/"), 453 GURL("http://www.another.url.com/"),
471 [session_controller_ currentURL]); 454 [session_controller_ currentURL]);
472 } 455 }
473 456
474 TEST_F(CRWSessionControllerTest, 457 TEST_F(CRWSessionControllerTest,
475 updatePendingItemWithPendingEntryAlreadyCommited) { 458 updatePendingItemWithPendingItemAlreadyCommited) {
476 [session_controller_ 459 [session_controller_
477 addPendingItem:GURL("http://www.url.com") 460 addPendingItem:GURL("http://www.url.com")
478 referrer:MakeReferrer("http://www.referer.com") 461 referrer:MakeReferrer("http://www.referer.com")
479 transition:ui::PAGE_TRANSITION_TYPED 462 transition:ui::PAGE_TRANSITION_TYPED
480 initiationType:web::NavigationInitiationType::USER_INITIATED]; 463 initiationType:web::NavigationInitiationType::USER_INITIATED];
481 [session_controller_ commitPendingItem]; 464 [session_controller_ commitPendingItem];
482 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")]; 465 [session_controller_ updatePendingItem:GURL("http://www.another.url.com")];
483 [session_controller_ commitPendingItem]; 466 [session_controller_ commitPendingItem];
484 467
485 EXPECT_EQ(1U, [[session_controller_ entries] count]); 468 EXPECT_EQ(1U, [session_controller_ items].size());
486 EXPECT_EQ( 469 EXPECT_EQ(GURL("http://www.url.com/"),
487 GURL("http://www.url.com/"), 470 [session_controller_ URLForItemAtIndex:0U]);
488 [session_controller_ URLForSessionAtIndex:0U]); 471 EXPECT_EQ([session_controller_ items].front(),
489 EXPECT_EQ( 472 [session_controller_ currentItem]);
490 [[session_controller_ entries] objectAtIndex:0U],
491 [session_controller_ currentEntry]);
492 } 473 }
493 474
494 // Tests inserting session controller state. 475 // Tests inserting session controller state.
495 TEST_F(CRWSessionControllerTest, InsertState) { 476 TEST_F(CRWSessionControllerTest, InsertState) {
496 // Add 1 committed and 1 pending entry to target controller. 477 // Add 1 committed and 1 pending item to target controller.
497 [session_controller_ 478 [session_controller_
498 addPendingItem:GURL("http://www.url.com/2") 479 addPendingItem:GURL("http://www.url.com/2")
499 referrer:web::Referrer() 480 referrer:web::Referrer()
500 transition:ui::PAGE_TRANSITION_TYPED 481 transition:ui::PAGE_TRANSITION_TYPED
501 initiationType:web::NavigationInitiationType::USER_INITIATED]; 482 initiationType:web::NavigationInitiationType::USER_INITIATED];
502 [session_controller_ commitPendingItem]; 483 [session_controller_ commitPendingItem];
503 [session_controller_ 484 [session_controller_
504 addPendingItem:GURL("http://www.url.com/3") 485 addPendingItem:GURL("http://www.url.com/3")
505 referrer:web::Referrer() 486 referrer:web::Referrer()
506 transition:ui::PAGE_TRANSITION_TYPED 487 transition:ui::PAGE_TRANSITION_TYPED
507 initiationType:web::NavigationInitiationType::USER_INITIATED]; 488 initiationType:web::NavigationInitiationType::USER_INITIATED];
508 489
509 // Create source session controller with 1 committed entry. 490 // Create source session controller with 1 committed item.
510 base::scoped_nsobject<CRWSessionController> other_session_controller( 491 base::scoped_nsobject<CRWSessionController> other_session_controller(
511 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ 492 [[CRWSessionController alloc] initWithBrowserState:&browser_state_
512 openedByDOM:NO]); 493 openedByDOM:NO]);
513 [other_session_controller 494 [other_session_controller
514 addPendingItem:GURL("http://www.url.com/0") 495 addPendingItem:GURL("http://www.url.com/0")
515 referrer:web::Referrer() 496 referrer:web::Referrer()
516 transition:ui::PAGE_TRANSITION_TYPED 497 transition:ui::PAGE_TRANSITION_TYPED
517 initiationType:web::NavigationInitiationType::USER_INITIATED]; 498 initiationType:web::NavigationInitiationType::USER_INITIATED];
518 [other_session_controller commitPendingItem]; 499 [other_session_controller commitPendingItem];
519 [other_session_controller 500 [other_session_controller
520 addPendingItem:GURL("http://www.url.com/1") 501 addPendingItem:GURL("http://www.url.com/1")
521 referrer:web::Referrer() 502 referrer:web::Referrer()
522 transition:ui::PAGE_TRANSITION_TYPED 503 transition:ui::PAGE_TRANSITION_TYPED
523 initiationType:web::NavigationInitiationType::USER_INITIATED]; 504 initiationType:web::NavigationInitiationType::USER_INITIATED];
524 505
525 // Insert and verify the state of target session controller. 506 // Insert and verify the state of target session controller.
526 [session_controller_ 507 [session_controller_
527 insertStateFromSessionController:other_session_controller.get()]; 508 insertStateFromSessionController:other_session_controller.get()];
528 509
529 EXPECT_EQ(2U, [[session_controller_ entries] count]); 510 EXPECT_EQ(2U, [session_controller_ items].size());
530 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]); 511 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]);
531 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); 512 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]);
532 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 513 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
533 514
534 EXPECT_EQ(GURL("http://www.url.com/0"), 515 EXPECT_EQ(GURL("http://www.url.com/0"),
535 [session_controller_ URLForSessionAtIndex:0]); 516 [session_controller_ URLForItemAtIndex:0]);
536 EXPECT_EQ(GURL("http://www.url.com/2"), 517 EXPECT_EQ(GURL("http://www.url.com/2"),
537 [session_controller_ URLForSessionAtIndex:1]); 518 [session_controller_ URLForItemAtIndex:1]);
538 EXPECT_EQ(GURL("http://www.url.com/3"), 519 EXPECT_EQ(GURL("http://www.url.com/3"),
539 [[session_controller_ pendingEntry] navigationItem]->GetURL()); 520 [session_controller_ pendingItem]->GetURL());
540 } 521 }
541 522
542 // Tests inserting session controller state from empty session controller. 523 // Tests inserting session controller state from empty session controller.
543 TEST_F(CRWSessionControllerTest, InsertStateFromEmptySessionController) { 524 TEST_F(CRWSessionControllerTest, InsertStateFromEmptySessionController) {
544 // Add 2 committed entries to target controller. 525 // Add 2 committed entries to target controller.
545 [session_controller_ 526 [session_controller_
546 addPendingItem:GURL("http://www.url.com/0") 527 addPendingItem:GURL("http://www.url.com/0")
547 referrer:web::Referrer() 528 referrer:web::Referrer()
548 transition:ui::PAGE_TRANSITION_TYPED 529 transition:ui::PAGE_TRANSITION_TYPED
549 initiationType:web::NavigationInitiationType::USER_INITIATED]; 530 initiationType:web::NavigationInitiationType::USER_INITIATED];
550 [session_controller_ commitPendingItem]; 531 [session_controller_ commitPendingItem];
551 [session_controller_ 532 [session_controller_
552 addPendingItem:GURL("http://www.url.com/1") 533 addPendingItem:GURL("http://www.url.com/1")
553 referrer:web::Referrer() 534 referrer:web::Referrer()
554 transition:ui::PAGE_TRANSITION_TYPED 535 transition:ui::PAGE_TRANSITION_TYPED
555 initiationType:web::NavigationInitiationType::USER_INITIATED]; 536 initiationType:web::NavigationInitiationType::USER_INITIATED];
556 [session_controller_ commitPendingItem]; 537 [session_controller_ commitPendingItem];
557 538
558 // Create empty source session controller. 539 // Create empty source session controller.
559 base::scoped_nsobject<CRWSessionController> other_session_controller( 540 base::scoped_nsobject<CRWSessionController> other_session_controller(
560 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ 541 [[CRWSessionController alloc] initWithBrowserState:&browser_state_
561 openedByDOM:NO]); 542 openedByDOM:NO]);
562 543
563 // Insert and verify the state of target session controller. 544 // Insert and verify the state of target session controller.
564 [session_controller_ 545 [session_controller_
565 insertStateFromSessionController:other_session_controller.get()]; 546 insertStateFromSessionController:other_session_controller.get()];
566 EXPECT_EQ(2U, [[session_controller_ entries] count]); 547 EXPECT_EQ(2U, [session_controller_ items].size());
567 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]); 548 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]);
568 EXPECT_EQ(0, [session_controller_ previousNavigationIndex]); 549 EXPECT_EQ(0, [session_controller_ previousNavigationIndex]);
569 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 550 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
570 EXPECT_FALSE([session_controller_ pendingEntry]); 551 EXPECT_FALSE([session_controller_ pendingItem]);
571 EXPECT_EQ(GURL("http://www.url.com/0"), 552 EXPECT_EQ(GURL("http://www.url.com/0"),
572 [session_controller_ URLForSessionAtIndex:0]); 553 [session_controller_ URLForItemAtIndex:0]);
573 EXPECT_EQ(GURL("http://www.url.com/1"), 554 EXPECT_EQ(GURL("http://www.url.com/1"),
574 [session_controller_ URLForSessionAtIndex:1]); 555 [session_controller_ URLForItemAtIndex:1]);
575 } 556 }
576 557
577 // Tests inserting session controller state to empty session controller. 558 // Tests inserting session controller state to empty session controller.
578 TEST_F(CRWSessionControllerTest, InsertStateToEmptySessionController) { 559 TEST_F(CRWSessionControllerTest, InsertStateToEmptySessionController) {
579 // Create source session controller with 2 committed entries and one 560 // Create source session controller with 2 committed entries and one
580 // pending entry. 561 // pending item.
581 base::scoped_nsobject<CRWSessionController> other_session_controller( 562 base::scoped_nsobject<CRWSessionController> other_session_controller(
582 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ 563 [[CRWSessionController alloc] initWithBrowserState:&browser_state_
583 openedByDOM:NO]); 564 openedByDOM:NO]);
584 [other_session_controller 565 [other_session_controller
585 addPendingItem:GURL("http://www.url.com/0") 566 addPendingItem:GURL("http://www.url.com/0")
586 referrer:web::Referrer() 567 referrer:web::Referrer()
587 transition:ui::PAGE_TRANSITION_TYPED 568 transition:ui::PAGE_TRANSITION_TYPED
588 initiationType:web::NavigationInitiationType::USER_INITIATED]; 569 initiationType:web::NavigationInitiationType::USER_INITIATED];
589 [other_session_controller commitPendingItem]; 570 [other_session_controller commitPendingItem];
590 [other_session_controller 571 [other_session_controller
591 addPendingItem:GURL("http://www.url.com/1") 572 addPendingItem:GURL("http://www.url.com/1")
592 referrer:web::Referrer() 573 referrer:web::Referrer()
593 transition:ui::PAGE_TRANSITION_TYPED 574 transition:ui::PAGE_TRANSITION_TYPED
594 initiationType:web::NavigationInitiationType::USER_INITIATED]; 575 initiationType:web::NavigationInitiationType::USER_INITIATED];
595 [other_session_controller commitPendingItem]; 576 [other_session_controller commitPendingItem];
596 [other_session_controller 577 [other_session_controller
597 addPendingItem:GURL("http://www.url.com/2") 578 addPendingItem:GURL("http://www.url.com/2")
598 referrer:web::Referrer() 579 referrer:web::Referrer()
599 transition:ui::PAGE_TRANSITION_TYPED 580 transition:ui::PAGE_TRANSITION_TYPED
600 initiationType:web::NavigationInitiationType::USER_INITIATED]; 581 initiationType:web::NavigationInitiationType::USER_INITIATED];
601 582
602 // Insert and verify the state of target session controller. 583 // Insert and verify the state of target session controller.
603 [session_controller_ 584 [session_controller_
604 insertStateFromSessionController:other_session_controller.get()]; 585 insertStateFromSessionController:other_session_controller.get()];
605 586
606 EXPECT_EQ(2U, [[session_controller_ entries] count]); 587 EXPECT_EQ(2U, [session_controller_ items].size());
607 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]); 588 EXPECT_EQ(1, [session_controller_ currentNavigationIndex]);
608 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); 589 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]);
609 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 590 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
610 EXPECT_FALSE([session_controller_ pendingEntry]); 591 EXPECT_FALSE([session_controller_ pendingItem]);
611 EXPECT_EQ(GURL("http://www.url.com/0"), 592 EXPECT_EQ(GURL("http://www.url.com/0"),
612 [session_controller_ URLForSessionAtIndex:0]); 593 [session_controller_ URLForItemAtIndex:0]);
613 EXPECT_EQ(GURL("http://www.url.com/1"), 594 EXPECT_EQ(GURL("http://www.url.com/1"),
614 [session_controller_ URLForSessionAtIndex:1]); 595 [session_controller_ URLForItemAtIndex:1]);
615 } 596 }
616 597
617 // Tests inserting session controller state. Verifies that pending entry index 598 // Tests inserting session controller state. Verifies that pending item index
618 // remains valid. 599 // remains valid.
619 TEST_F(CRWSessionControllerTest, 600 TEST_F(CRWSessionControllerTest,
620 InsertStateWithPendingEntryIndexInTargetController) { 601 InsertStateWithPendingItemIndexInTargetController) {
621 // Add 2 committed entries and make the first entry pending. 602 // Add 2 committed entries and make the first item pending.
622 [session_controller_ 603 [session_controller_
623 addPendingItem:GURL("http://www.url.com/2") 604 addPendingItem:GURL("http://www.url.com/2")
624 referrer:web::Referrer() 605 referrer:web::Referrer()
625 transition:ui::PAGE_TRANSITION_TYPED 606 transition:ui::PAGE_TRANSITION_TYPED
626 initiationType:web::NavigationInitiationType::USER_INITIATED]; 607 initiationType:web::NavigationInitiationType::USER_INITIATED];
627 [session_controller_ commitPendingItem]; 608 [session_controller_ commitPendingItem];
628 [session_controller_ 609 [session_controller_
629 addPendingItem:GURL("http://www.url.com/3") 610 addPendingItem:GURL("http://www.url.com/3")
630 referrer:web::Referrer() 611 referrer:web::Referrer()
631 transition:ui::PAGE_TRANSITION_TYPED 612 transition:ui::PAGE_TRANSITION_TYPED
632 initiationType:web::NavigationInitiationType::USER_INITIATED]; 613 initiationType:web::NavigationInitiationType::USER_INITIATED];
633 [session_controller_ commitPendingItem]; 614 [session_controller_ commitPendingItem];
634 [session_controller_ setPendingItemIndex:0]; 615 [session_controller_ setPendingItemIndex:0];
635 616
636 // Create source session controller with 1 committed entry. 617 // Create source session controller with 1 committed item.
637 base::scoped_nsobject<CRWSessionController> other_session_controller( 618 base::scoped_nsobject<CRWSessionController> other_session_controller(
638 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ 619 [[CRWSessionController alloc] initWithBrowserState:&browser_state_
639 openedByDOM:NO]); 620 openedByDOM:NO]);
640 [other_session_controller 621 [other_session_controller
641 addPendingItem:GURL("http://www.url.com/0") 622 addPendingItem:GURL("http://www.url.com/0")
642 referrer:web::Referrer() 623 referrer:web::Referrer()
643 transition:ui::PAGE_TRANSITION_TYPED 624 transition:ui::PAGE_TRANSITION_TYPED
644 initiationType:web::NavigationInitiationType::USER_INITIATED]; 625 initiationType:web::NavigationInitiationType::USER_INITIATED];
645 [other_session_controller commitPendingItem]; 626 [other_session_controller commitPendingItem];
646 627
647 // Insert and verify the state of target session controller. 628 // Insert and verify the state of target session controller.
648 [session_controller_ 629 [session_controller_
649 insertStateFromSessionController:other_session_controller.get()]; 630 insertStateFromSessionController:other_session_controller.get()];
650 631
651 EXPECT_EQ(3U, [[session_controller_ entries] count]); 632 EXPECT_EQ(3U, [session_controller_ items].size());
652 EXPECT_EQ(2, [session_controller_ currentNavigationIndex]); 633 EXPECT_EQ(2, [session_controller_ currentNavigationIndex]);
653 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); 634 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]);
654 EXPECT_EQ(1, [session_controller_ pendingItemIndex]); 635 EXPECT_EQ(1, [session_controller_ pendingItemIndex]);
655 EXPECT_EQ(GURL("http://www.url.com/0"), 636 EXPECT_EQ(GURL("http://www.url.com/0"),
656 [session_controller_ URLForSessionAtIndex:0]); 637 [session_controller_ URLForItemAtIndex:0]);
657 EXPECT_EQ(GURL("http://www.url.com/2"), 638 EXPECT_EQ(GURL("http://www.url.com/2"),
658 [session_controller_ URLForSessionAtIndex:1]); 639 [session_controller_ URLForItemAtIndex:1]);
659 EXPECT_EQ(GURL("http://www.url.com/2"), 640 EXPECT_EQ(GURL("http://www.url.com/2"),
660 [[session_controller_ pendingEntry] navigationItem]->GetURL()); 641 [session_controller_ pendingItem]->GetURL());
661 } 642 }
662 643
663 // Tests state of an empty session controller. 644 // Tests state of an empty session controller.
664 TEST_F(CRWSessionControllerTest, EmptyController) { 645 TEST_F(CRWSessionControllerTest, EmptyController) {
665 EXPECT_EQ(0U, [[session_controller_ entries] count]); 646 EXPECT_TRUE([session_controller_ items].empty());
666 EXPECT_EQ(-1, [session_controller_ currentNavigationIndex]); 647 EXPECT_EQ(-1, [session_controller_ currentNavigationIndex]);
667 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]); 648 EXPECT_EQ(-1, [session_controller_ previousNavigationIndex]);
668 EXPECT_FALSE([session_controller_ currentEntry]); 649 EXPECT_FALSE([session_controller_ currentItem]);
669 EXPECT_FALSE([session_controller_ pendingEntry]); 650 EXPECT_FALSE([session_controller_ pendingItem]);
670 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]); 651 EXPECT_EQ(-1, [session_controller_ pendingItemIndex]);
671 } 652 }
672 653
673 // Helper to create a NavigationItem. 654 // Helper to create a NavigationItem.
674 std::unique_ptr<web::NavigationItemImpl> CreateNavigationItem( 655 std::unique_ptr<web::NavigationItemImpl> CreateNavigationItem(
675 const std::string& url, 656 const std::string& url,
676 const std::string& referrer, 657 const std::string& referrer,
677 NSString* title) { 658 NSString* title) {
678 web::Referrer referrer_object(GURL(referrer), 659 web::Referrer referrer_object(GURL(referrer),
679 web::ReferrerPolicyDefault); 660 web::ReferrerPolicyDefault);
680 std::unique_ptr<web::NavigationItemImpl> navigation_item = 661 std::unique_ptr<web::NavigationItemImpl> navigation_item =
681 base::MakeUnique<web::NavigationItemImpl>(); 662 base::MakeUnique<web::NavigationItemImpl>();
682 navigation_item->SetURL(GURL(url)); 663 navigation_item->SetURL(GURL(url));
683 navigation_item->SetReferrer(referrer_object); 664 navigation_item->SetReferrer(referrer_object);
684 navigation_item->SetTitle(base::SysNSStringToUTF16(title)); 665 navigation_item->SetTitle(base::SysNSStringToUTF16(title));
685 navigation_item->SetTransitionType(ui::PAGE_TRANSITION_TYPED); 666 navigation_item->SetTransitionType(ui::PAGE_TRANSITION_TYPED);
686 667
687 return navigation_item; 668 return navigation_item;
688 } 669 }
689 670
690 TEST_F(CRWSessionControllerTest, CreateWithEmptyNavigations) { 671 TEST_F(CRWSessionControllerTest, CreateWithEmptyNavigations) {
691 std::vector<std::unique_ptr<web::NavigationItem>> items; 672 std::vector<std::unique_ptr<web::NavigationItem>> items;
692 base::scoped_nsobject<CRWSessionController> controller( 673 base::scoped_nsobject<CRWSessionController> controller(
693 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ 674 [[CRWSessionController alloc] initWithBrowserState:&browser_state_
694 navigationItems:std::move(items) 675 navigationItems:std::move(items)
695 currentIndex:0]); 676 currentIndex:0]);
696 EXPECT_EQ(controller.get().entries.count, 0U); 677 EXPECT_TRUE(controller.get().items.empty());
697 EXPECT_EQ(controller.get().currentNavigationIndex, -1); 678 EXPECT_EQ(controller.get().currentNavigationIndex, -1);
698 EXPECT_EQ(controller.get().previousNavigationIndex, -1); 679 EXPECT_EQ(controller.get().previousNavigationIndex, -1);
699 EXPECT_FALSE(controller.get().currentEntry); 680 EXPECT_FALSE(controller.get().currentItem);
700 } 681 }
701 682
702 TEST_F(CRWSessionControllerTest, CreateWithNavList) { 683 TEST_F(CRWSessionControllerTest, CreateWithNavList) {
703 std::vector<std::unique_ptr<web::NavigationItem>> items; 684 std::vector<std::unique_ptr<web::NavigationItem>> items;
704 items.push_back(CreateNavigationItem("http://www.google.com", 685 items.push_back(CreateNavigationItem("http://www.google.com",
705 "http://www.referrer.com", @"Google")); 686 "http://www.referrer.com", @"Google"));
706 items.push_back(CreateNavigationItem("http://www.yahoo.com", 687 items.push_back(CreateNavigationItem("http://www.yahoo.com",
707 "http://www.google.com", @"Yahoo")); 688 "http://www.google.com", @"Yahoo"));
708 items.push_back(CreateNavigationItem("http://www.espn.com", 689 items.push_back(CreateNavigationItem("http://www.espn.com",
709 "http://www.nothing.com", @"ESPN")); 690 "http://www.nothing.com", @"ESPN"));
710 base::scoped_nsobject<CRWSessionController> controller( 691 base::scoped_nsobject<CRWSessionController> controller(
711 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ 692 [[CRWSessionController alloc] initWithBrowserState:&browser_state_
712 navigationItems:std::move(items) 693 navigationItems:std::move(items)
713 currentIndex:1]); 694 currentIndex:1]);
714 695
715 EXPECT_EQ(controller.get().entries.count, 3U); 696 EXPECT_EQ(controller.get().items.size(), 3U);
716 EXPECT_EQ(controller.get().currentNavigationIndex, 1); 697 EXPECT_EQ(controller.get().currentNavigationIndex, 1);
717 EXPECT_EQ(controller.get().previousNavigationIndex, -1); 698 EXPECT_EQ(controller.get().previousNavigationIndex, -1);
718 // Sanity check the current entry, the CRWSessionEntry unit test will ensure 699 // Sanity check the current item, the CRWSessionItem unit test will ensure
719 // the entire object is created properly. 700 // the entire object is created properly.
720 CRWSessionEntry* current_entry = controller.get().currentEntry; 701 EXPECT_EQ(controller.get().currentItem->GetURL(),
721 EXPECT_EQ(current_entry.navigationItem->GetURL(),
722 GURL("http://www.yahoo.com")); 702 GURL("http://www.yahoo.com"));
723 } 703 }
724 704
725 // Tests index of previous navigation entry. 705 // Tests index of previous navigation item.
726 TEST_F(CRWSessionControllerTest, PreviousNavigationEntry) { 706 TEST_F(CRWSessionControllerTest, PreviousNavigationItem) {
727 EXPECT_EQ(session_controller_.get().previousNavigationIndex, -1); 707 EXPECT_EQ(session_controller_.get().previousNavigationIndex, -1);
728 [session_controller_ 708 [session_controller_
729 addPendingItem:GURL("http://www.url.com") 709 addPendingItem:GURL("http://www.url.com")
730 referrer:MakeReferrer("http://www.referer.com") 710 referrer:MakeReferrer("http://www.referer.com")
731 transition:ui::PAGE_TRANSITION_TYPED 711 transition:ui::PAGE_TRANSITION_TYPED
732 initiationType:web::NavigationInitiationType::USER_INITIATED]; 712 initiationType:web::NavigationInitiationType::USER_INITIATED];
733 [session_controller_ commitPendingItem]; 713 [session_controller_ commitPendingItem];
734 EXPECT_EQ(session_controller_.get().previousNavigationIndex, -1); 714 EXPECT_EQ(session_controller_.get().previousNavigationIndex, -1);
735 [session_controller_ 715 [session_controller_
736 addPendingItem:GURL("http://www.url1.com") 716 addPendingItem:GURL("http://www.url1.com")
(...skipping 17 matching lines...) Expand all
754 [session_controller_ goToItemAtIndex:0]; 734 [session_controller_ goToItemAtIndex:0];
755 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 1); 735 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 1);
756 736
757 [session_controller_ goToItemAtIndex:1]; 737 [session_controller_ goToItemAtIndex:1];
758 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 0); 738 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 0);
759 739
760 [session_controller_ goToItemAtIndex:2]; 740 [session_controller_ goToItemAtIndex:2];
761 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 1); 741 EXPECT_EQ(session_controller_.get().previousNavigationIndex, 1);
762 } 742 }
763 743
764 TEST_F(CRWSessionControllerTest, PushNewEntry) { 744 TEST_F(CRWSessionControllerTest, PushNewItem) {
765 std::vector<std::unique_ptr<web::NavigationItem>> items; 745 std::vector<std::unique_ptr<web::NavigationItem>> items;
766 items.push_back(CreateNavigationItem("http://www.firstpage.com", 746 items.push_back(CreateNavigationItem("http://www.firstpage.com",
767 "http://www.starturl.com", @"First")); 747 "http://www.starturl.com", @"First"));
768 items.push_back(CreateNavigationItem("http://www.secondpage.com", 748 items.push_back(CreateNavigationItem("http://www.secondpage.com",
769 "http://www.firstpage.com", @"Second")); 749 "http://www.firstpage.com", @"Second"));
770 items.push_back(CreateNavigationItem("http://www.thirdpage.com", 750 items.push_back(CreateNavigationItem("http://www.thirdpage.com",
771 "http://www.secondpage.com", @"Third")); 751 "http://www.secondpage.com", @"Third"));
772 base::scoped_nsobject<CRWSessionController> controller( 752 base::scoped_nsobject<CRWSessionController> controller(
773 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ 753 [[CRWSessionController alloc] initWithBrowserState:&browser_state_
774 navigationItems:std::move(items) 754 navigationItems:std::move(items)
775 currentIndex:0]); 755 currentIndex:0]);
776 756
777 GURL pushPageGurl1("http://www.firstpage.com/#push1"); 757 GURL pushPageGurl1("http://www.firstpage.com/#push1");
778 NSString* stateObject1 = @"{'foo': 1}"; 758 NSString* stateObject1 = @"{'foo': 1}";
779 [controller pushNewItemWithURL:pushPageGurl1 759 [controller pushNewItemWithURL:pushPageGurl1
780 stateObject:stateObject1 760 stateObject:stateObject1
781 transition:ui::PAGE_TRANSITION_LINK]; 761 transition:ui::PAGE_TRANSITION_LINK];
782 CRWSessionEntry* pushedEntry = [controller currentEntry]; 762 web::NavigationItemImpl* pushedItem = [controller currentItem];
783 web::NavigationItemImpl* pushedItem = pushedEntry.navigationItemImpl;
784 NSUInteger expectedCount = 2; 763 NSUInteger expectedCount = 2;
785 EXPECT_EQ(expectedCount, controller.get().entries.count); 764 EXPECT_EQ(expectedCount, controller.get().items.size());
786 EXPECT_EQ(pushPageGurl1, pushedEntry.navigationItem->GetURL()); 765 EXPECT_EQ(pushPageGurl1, pushedItem->GetURL());
787 EXPECT_TRUE(pushedItem->IsCreatedFromPushState()); 766 EXPECT_TRUE(pushedItem->IsCreatedFromPushState());
788 EXPECT_NSEQ(stateObject1, pushedItem->GetSerializedStateObject()); 767 EXPECT_NSEQ(stateObject1, pushedItem->GetSerializedStateObject());
789 EXPECT_EQ(GURL("http://www.firstpage.com/"), 768 EXPECT_EQ(GURL("http://www.firstpage.com/"), pushedItem->GetReferrer().url);
790 pushedEntry.navigationItem->GetReferrer().url);
791 769
792 // Add another new entry and check size and fields again. 770 // Add another new item and check size and fields again.
793 GURL pushPageGurl2("http://www.firstpage.com/push2"); 771 GURL pushPageGurl2("http://www.firstpage.com/push2");
794 [controller pushNewItemWithURL:pushPageGurl2 772 [controller pushNewItemWithURL:pushPageGurl2
795 stateObject:nil 773 stateObject:nil
796 transition:ui::PAGE_TRANSITION_LINK]; 774 transition:ui::PAGE_TRANSITION_LINK];
797 pushedEntry = [controller currentEntry]; 775 pushedItem = [controller currentItem];
798 pushedItem = pushedEntry.navigationItemImpl;
799 expectedCount = 3; 776 expectedCount = 3;
800 EXPECT_EQ(expectedCount, controller.get().entries.count); 777 EXPECT_EQ(expectedCount, controller.get().items.size());
801 EXPECT_EQ(pushPageGurl2, pushedEntry.navigationItem->GetURL()); 778 EXPECT_EQ(pushPageGurl2, pushedItem->GetURL());
802 EXPECT_TRUE(pushedItem->IsCreatedFromPushState()); 779 EXPECT_TRUE(pushedItem->IsCreatedFromPushState());
803 EXPECT_EQ(nil, pushedItem->GetSerializedStateObject()); 780 EXPECT_EQ(nil, pushedItem->GetSerializedStateObject());
804 EXPECT_EQ(pushPageGurl1, pushedEntry.navigationItem->GetReferrer().url); 781 EXPECT_EQ(pushPageGurl1, pushedItem->GetReferrer().url);
805 } 782 }
806 783
807 TEST_F(CRWSessionControllerTest, IsSameDocumentNavigation) { 784 TEST_F(CRWSessionControllerTest, IsSameDocumentNavigation) {
808 std::vector<std::unique_ptr<web::NavigationItem>> items; 785 std::vector<std::unique_ptr<web::NavigationItem>> items;
809 items.push_back( 786 items.push_back(
810 CreateNavigationItem("http://foo.com", "http://google.com", @"First")); 787 CreateNavigationItem("http://foo.com", "http://google.com", @"First"));
811 // Push state navigation. 788 // Push state navigation.
812 items.push_back( 789 items.push_back(
813 CreateNavigationItem("http://foo.com#bar", "http://foo.com", @"Second")); 790 CreateNavigationItem("http://foo.com#bar", "http://foo.com", @"Second"));
814 items.push_back(CreateNavigationItem("http://google.com", 791 items.push_back(CreateNavigationItem("http://google.com",
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 EXPECT_TRUE( 827 EXPECT_TRUE(
851 [controller isSameDocumentNavigationBetweenItem:item4 andItem:item3]); 828 [controller isSameDocumentNavigationBetweenItem:item4 andItem:item3]);
852 EXPECT_FALSE( 829 EXPECT_FALSE(
853 [controller isSameDocumentNavigationBetweenItem:item1 andItem:item2]); 830 [controller isSameDocumentNavigationBetweenItem:item1 andItem:item2]);
854 EXPECT_FALSE( 831 EXPECT_FALSE(
855 [controller isSameDocumentNavigationBetweenItem:item0 andItem:item5]); 832 [controller isSameDocumentNavigationBetweenItem:item0 andItem:item5]);
856 EXPECT_FALSE( 833 EXPECT_FALSE(
857 [controller isSameDocumentNavigationBetweenItem:item2 andItem:item4]); 834 [controller isSameDocumentNavigationBetweenItem:item2 andItem:item4]);
858 } 835 }
859 836
860 TEST_F(CRWSessionControllerTest, UpdateCurrentEntry) { 837 TEST_F(CRWSessionControllerTest, UpdateCurrentItem) {
861 std::vector<std::unique_ptr<web::NavigationItem>> items; 838 std::vector<std::unique_ptr<web::NavigationItem>> items;
862 items.push_back(CreateNavigationItem("http://www.firstpage.com", 839 items.push_back(CreateNavigationItem("http://www.firstpage.com",
863 "http://www.starturl.com", @"First")); 840 "http://www.starturl.com", @"First"));
864 items.push_back(CreateNavigationItem("http://www.secondpage.com", 841 items.push_back(CreateNavigationItem("http://www.secondpage.com",
865 "http://www.firstpage.com", @"Second")); 842 "http://www.firstpage.com", @"Second"));
866 items.push_back(CreateNavigationItem("http://www.thirdpage.com", 843 items.push_back(CreateNavigationItem("http://www.thirdpage.com",
867 "http://www.secondpage.com", @"Third")); 844 "http://www.secondpage.com", @"Third"));
868 base::scoped_nsobject<CRWSessionController> controller( 845 base::scoped_nsobject<CRWSessionController> controller(
869 [[CRWSessionController alloc] initWithBrowserState:&browser_state_ 846 [[CRWSessionController alloc] initWithBrowserState:&browser_state_
870 navigationItems:std::move(items) 847 navigationItems:std::move(items)
871 currentIndex:0]); 848 currentIndex:0]);
872 849
873 GURL replacePageGurl1("http://www.firstpage.com/#replace1"); 850 GURL replacePageGurl1("http://www.firstpage.com/#replace1");
874 NSString* stateObject1 = @"{'foo': 1}"; 851 NSString* stateObject1 = @"{'foo': 1}";
875 852
876 // Replace current entry and check the size of history and fields of the 853 // Replace current item and check the size of history and fields of the
877 // modified entry. 854 // modified item.
878 [controller updateCurrentItemWithURL:replacePageGurl1 855 [controller updateCurrentItemWithURL:replacePageGurl1
879 stateObject:stateObject1]; 856 stateObject:stateObject1];
880 CRWSessionEntry* replacedEntry = [controller currentEntry]; 857 web::NavigationItemImpl* replacedItem = [controller currentItem];
881 web::NavigationItemImpl* replacedItem = replacedEntry.navigationItemImpl;
882 NSUInteger expectedCount = 3; 858 NSUInteger expectedCount = 3;
883 EXPECT_EQ(expectedCount, controller.get().entries.count); 859 EXPECT_EQ(expectedCount, controller.get().items.size());
884 EXPECT_EQ(replacePageGurl1, replacedEntry.navigationItem->GetURL()); 860 EXPECT_EQ(replacePageGurl1, replacedItem->GetURL());
885 EXPECT_FALSE(replacedItem->IsCreatedFromPushState()); 861 EXPECT_FALSE(replacedItem->IsCreatedFromPushState());
886 EXPECT_NSEQ(stateObject1, replacedItem->GetSerializedStateObject()); 862 EXPECT_NSEQ(stateObject1, replacedItem->GetSerializedStateObject());
887 EXPECT_EQ(GURL("http://www.starturl.com/"), 863 EXPECT_EQ(GURL("http://www.starturl.com/"), replacedItem->GetReferrer().url);
888 replacedEntry.navigationItem->GetReferrer().url);
889 864
890 // Replace current entry and check size and fields again. 865 // Replace current item and check size and fields again.
891 GURL replacePageGurl2("http://www.firstpage.com/#replace2"); 866 GURL replacePageGurl2("http://www.firstpage.com/#replace2");
892 [controller.get() updateCurrentItemWithURL:replacePageGurl2 stateObject:nil]; 867 [controller.get() updateCurrentItemWithURL:replacePageGurl2 stateObject:nil];
893 replacedEntry = [controller currentEntry]; 868 replacedItem = [controller currentItem];
894 replacedItem = replacedEntry.navigationItemImpl; 869 EXPECT_EQ(expectedCount, controller.get().items.size());
895 EXPECT_EQ(expectedCount, controller.get().entries.count); 870 EXPECT_EQ(replacePageGurl2, replacedItem->GetURL());
896 EXPECT_EQ(replacePageGurl2, replacedEntry.navigationItem->GetURL());
897 EXPECT_FALSE(replacedItem->IsCreatedFromPushState()); 871 EXPECT_FALSE(replacedItem->IsCreatedFromPushState());
898 EXPECT_NSEQ(nil, replacedItem->GetSerializedStateObject()); 872 EXPECT_NSEQ(nil, replacedItem->GetSerializedStateObject());
899 EXPECT_EQ(GURL("http://www.starturl.com/"), 873 EXPECT_EQ(GURL("http://www.starturl.com/"), replacedItem->GetReferrer().url);
900 replacedEntry.navigationItem->GetReferrer().url);
901 } 874 }
902 875
903 TEST_F(CRWSessionControllerTest, TestBackwardForwardEntries) { 876 TEST_F(CRWSessionControllerTest, TestBackwardForwardItems) {
904 [session_controller_ 877 [session_controller_
905 addPendingItem:GURL("http://www.example.com/0") 878 addPendingItem:GURL("http://www.example.com/0")
906 referrer:MakeReferrer("http://www.example.com/a") 879 referrer:MakeReferrer("http://www.example.com/a")
907 transition:ui::PAGE_TRANSITION_LINK 880 transition:ui::PAGE_TRANSITION_LINK
908 initiationType:web::NavigationInitiationType::USER_INITIATED]; 881 initiationType:web::NavigationInitiationType::USER_INITIATED];
909 [session_controller_ commitPendingItem]; 882 [session_controller_ commitPendingItem];
910 [session_controller_ 883 [session_controller_
911 addPendingItem:GURL("http://www.example.com/1") 884 addPendingItem:GURL("http://www.example.com/1")
912 referrer:MakeReferrer("http://www.example.com/b") 885 referrer:MakeReferrer("http://www.example.com/b")
913 transition:ui::PAGE_TRANSITION_LINK 886 transition:ui::PAGE_TRANSITION_LINK
914 initiationType:web::NavigationInitiationType::USER_INITIATED]; 887 initiationType:web::NavigationInitiationType::USER_INITIATED];
915 [session_controller_ commitPendingItem]; 888 [session_controller_ commitPendingItem];
916 [session_controller_ 889 [session_controller_
917 addPendingItem:GURL("http://www.example.com/redirect") 890 addPendingItem:GURL("http://www.example.com/redirect")
918 referrer:MakeReferrer("http://www.example.com/r") 891 referrer:MakeReferrer("http://www.example.com/r")
919 transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK 892 transition:ui::PAGE_TRANSITION_IS_REDIRECT_MASK
920 initiationType:web::NavigationInitiationType::USER_INITIATED]; 893 initiationType:web::NavigationInitiationType::USER_INITIATED];
921 [session_controller_ commitPendingItem]; 894 [session_controller_ commitPendingItem];
922 [session_controller_ 895 [session_controller_
923 addPendingItem:GURL("http://www.example.com/2") 896 addPendingItem:GURL("http://www.example.com/2")
924 referrer:MakeReferrer("http://www.example.com/c") 897 referrer:MakeReferrer("http://www.example.com/c")
925 transition:ui::PAGE_TRANSITION_LINK 898 transition:ui::PAGE_TRANSITION_LINK
926 initiationType:web::NavigationInitiationType::USER_INITIATED]; 899 initiationType:web::NavigationInitiationType::USER_INITIATED];
927 [session_controller_ commitPendingItem]; 900 [session_controller_ commitPendingItem];
928 901
929 EXPECT_EQ(3, session_controller_.get().currentNavigationIndex); 902 EXPECT_EQ(3, session_controller_.get().currentNavigationIndex);
930 NSArray* backEntries = [session_controller_ backwardEntries]; 903 web::NavigationItemList backItems = [session_controller_ backwardItems];
931 EXPECT_EQ(2U, [backEntries count]); 904 EXPECT_EQ(2U, backItems.size());
932 EXPECT_EQ(0U, [[session_controller_ forwardEntries] count]); 905 EXPECT_TRUE([session_controller_ forwardItems].empty());
933 EXPECT_EQ("http://www.example.com/redirect", 906 EXPECT_EQ("http://www.example.com/redirect", backItems[0]->GetURL().spec());
934 [[backEntries objectAtIndex:0] navigationItem]->GetURL().spec());
935 907
936 [session_controller_ goToItemAtIndex:1]; 908 [session_controller_ goToItemAtIndex:1];
937 EXPECT_EQ(1U, [[session_controller_ backwardEntries] count]); 909 EXPECT_EQ(1U, [session_controller_ backwardItems].size());
938 EXPECT_EQ(1U, [[session_controller_ forwardEntries] count]); 910 EXPECT_EQ(1U, [session_controller_ forwardItems].size());
939 911
940 [session_controller_ goToItemAtIndex:0]; 912 [session_controller_ goToItemAtIndex:0];
941 NSArray* forwardEntries = [session_controller_ forwardEntries]; 913 web::NavigationItemList forwardItems = [session_controller_ forwardItems];
942 EXPECT_EQ(0U, [[session_controller_ backwardEntries] count]); 914 EXPECT_EQ(0U, [session_controller_ backwardItems].size());
943 EXPECT_EQ(2U, [forwardEntries count]); 915 EXPECT_EQ(2U, forwardItems.size());
944 EXPECT_EQ("http://www.example.com/2", 916 EXPECT_EQ("http://www.example.com/2", forwardItems[1]->GetURL().spec());
945 [[forwardEntries objectAtIndex:1] navigationItem]->GetURL().spec());
946 } 917 }
947 918
948 // Tests going to entries with existing and non-existing indices. 919 // Tests going to entries with existing and non-existing indices.
949 TEST_F(CRWSessionControllerTest, GoToEntryAtIndex) { 920 TEST_F(CRWSessionControllerTest, GoToItemAtIndex) {
950 [session_controller_ 921 [session_controller_
951 addPendingItem:GURL("http://www.example.com/0") 922 addPendingItem:GURL("http://www.example.com/0")
952 referrer:MakeReferrer("http://www.example.com/a") 923 referrer:MakeReferrer("http://www.example.com/a")
953 transition:ui::PAGE_TRANSITION_LINK 924 transition:ui::PAGE_TRANSITION_LINK
954 initiationType:web::NavigationInitiationType::USER_INITIATED]; 925 initiationType:web::NavigationInitiationType::USER_INITIATED];
955 [session_controller_ commitPendingItem]; 926 [session_controller_ commitPendingItem];
956 [session_controller_ 927 [session_controller_
957 addPendingItem:GURL("http://www.example.com/1") 928 addPendingItem:GURL("http://www.example.com/1")
958 referrer:MakeReferrer("http://www.example.com/b") 929 referrer:MakeReferrer("http://www.example.com/b")
959 transition:ui::PAGE_TRANSITION_LINK 930 transition:ui::PAGE_TRANSITION_LINK
(...skipping 12 matching lines...) Expand all
972 initiationType:web::NavigationInitiationType::USER_INITIATED]; 943 initiationType:web::NavigationInitiationType::USER_INITIATED];
973 [session_controller_ commitPendingItem]; 944 [session_controller_ commitPendingItem];
974 [session_controller_ 945 [session_controller_
975 addPendingItem:GURL("http://www.example.com/3") 946 addPendingItem:GURL("http://www.example.com/3")
976 referrer:MakeReferrer("http://www.example.com/d") 947 referrer:MakeReferrer("http://www.example.com/d")
977 transition:ui::PAGE_TRANSITION_LINK 948 transition:ui::PAGE_TRANSITION_LINK
978 initiationType:web::NavigationInitiationType::USER_INITIATED]; 949 initiationType:web::NavigationInitiationType::USER_INITIATED];
979 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 950 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
980 EXPECT_EQ(3, session_controller_.get().currentNavigationIndex); 951 EXPECT_EQ(3, session_controller_.get().currentNavigationIndex);
981 EXPECT_EQ(2, session_controller_.get().previousNavigationIndex); 952 EXPECT_EQ(2, session_controller_.get().previousNavigationIndex);
982 EXPECT_TRUE(session_controller_.get().pendingEntry); 953 EXPECT_TRUE([session_controller_ pendingItem]);
983 EXPECT_TRUE(session_controller_.get().transientEntry); 954 EXPECT_TRUE([session_controller_ transientItem]);
984 955
985 // Going back should discard transient and pending entries. 956 // Going back should discard transient and pending entries.
986 [session_controller_ goToItemAtIndex:1]; 957 [session_controller_ goToItemAtIndex:1];
987 EXPECT_EQ(1, session_controller_.get().currentNavigationIndex); 958 EXPECT_EQ(1, session_controller_.get().currentNavigationIndex);
988 EXPECT_EQ(3, session_controller_.get().previousNavigationIndex); 959 EXPECT_EQ(3, session_controller_.get().previousNavigationIndex);
989 EXPECT_FALSE(session_controller_.get().pendingEntry); 960 EXPECT_FALSE([session_controller_ pendingItem]);
990 EXPECT_FALSE(session_controller_.get().transientEntry); 961 EXPECT_FALSE([session_controller_ transientItem]);
991 962
992 // Going forward should discard transient entry. 963 // Going forward should discard transient item.
993 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 964 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
994 EXPECT_TRUE(session_controller_.get().transientEntry); 965 EXPECT_TRUE([session_controller_ transientItem]);
995 [session_controller_ goToItemAtIndex:2]; 966 [session_controller_ goToItemAtIndex:2];
996 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex); 967 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex);
997 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex); 968 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex);
998 EXPECT_FALSE(session_controller_.get().transientEntry); 969 EXPECT_FALSE([session_controller_ transientItem]);
999 970
1000 // Out of bounds navigations should be no-op. 971 // Out of bounds navigations should be no-op.
1001 [session_controller_ goToItemAtIndex:-1]; 972 [session_controller_ goToItemAtIndex:-1];
1002 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex); 973 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex);
1003 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex); 974 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex);
1004 [session_controller_ goToItemAtIndex:NSIntegerMax]; 975 [session_controller_ goToItemAtIndex:NSIntegerMax];
1005 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex); 976 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex);
1006 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex); 977 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex);
1007 978
1008 // Going to current index should not change the previous index. 979 // Going to current index should not change the previous index.
1009 [session_controller_ goToItemAtIndex:2]; 980 [session_controller_ goToItemAtIndex:2];
1010 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex); 981 EXPECT_EQ(2, session_controller_.get().currentNavigationIndex);
1011 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex); 982 EXPECT_EQ(1, session_controller_.get().previousNavigationIndex);
1012 } 983 }
1013 984
1014 // Tests that visible URL is the same as transient URL if there are no committed 985 // Tests that visible URL is the same as transient URL if there are no committed
1015 // entries. 986 // entries.
1016 TEST_F(CRWSessionControllerTest, VisibleEntryWithSingleTransientEntry) { 987 TEST_F(CRWSessionControllerTest, VisibleItemWithSingleTransientItem) {
1017 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 988 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
1018 web::NavigationItem* visible_item = 989 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1019 [[session_controller_ visibleEntry] navigationItem];
1020 ASSERT_TRUE(visible_item); 990 ASSERT_TRUE(visible_item);
1021 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); 991 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec());
1022 } 992 }
1023 993
1024 // Tests that visible URL is the same as transient URL if there is a committed 994 // Tests that visible URL is the same as transient URL if there is a committed
1025 // entry. 995 // item.
1026 TEST_F(CRWSessionControllerTest, VisibleEntryWithCommittedAndTransientEntries) { 996 TEST_F(CRWSessionControllerTest, VisibleItemWithCommittedAndTransientItems) {
1027 [session_controller_ 997 [session_controller_
1028 addPendingItem:GURL("http://www.example.com/0") 998 addPendingItem:GURL("http://www.example.com/0")
1029 referrer:MakeReferrer("http://www.example.com/a") 999 referrer:MakeReferrer("http://www.example.com/a")
1030 transition:ui::PAGE_TRANSITION_LINK 1000 transition:ui::PAGE_TRANSITION_LINK
1031 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1001 initiationType:web::NavigationInitiationType::USER_INITIATED];
1032 [session_controller_ commitPendingItem]; 1002 [session_controller_ commitPendingItem];
1033 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")]; 1003 [session_controller_ addTransientItemWithURL:GURL("http://www.example.com")];
1034 web::NavigationItem* visible_item = 1004 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1035 [[session_controller_ visibleEntry] navigationItem];
1036 ASSERT_TRUE(visible_item); 1005 ASSERT_TRUE(visible_item);
1037 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); 1006 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec());
1038 } 1007 }
1039 1008
1040 // Tests that visible URL is the same as pending URL if it was user-initiated. 1009 // Tests that visible URL is the same as pending URL if it was user-initiated.
1041 TEST_F(CRWSessionControllerTest, 1010 TEST_F(CRWSessionControllerTest,
1042 VisibleEntryWithSingleUserInitiatedPendingEntry) { 1011 VisibleItemWithSingleUserInitiatedPendingItem) {
1043 [session_controller_ 1012 [session_controller_
1044 addPendingItem:GURL("http://www.example.com/0") 1013 addPendingItem:GURL("http://www.example.com/0")
1045 referrer:MakeReferrer("http://www.example.com/a") 1014 referrer:MakeReferrer("http://www.example.com/a")
1046 transition:ui::PAGE_TRANSITION_LINK 1015 transition:ui::PAGE_TRANSITION_LINK
1047 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1016 initiationType:web::NavigationInitiationType::USER_INITIATED];
1048 web::NavigationItem* visible_item = 1017 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1049 [[session_controller_ visibleEntry] navigationItem];
1050 ASSERT_TRUE(visible_item); 1018 ASSERT_TRUE(visible_item);
1051 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); 1019 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec());
1052 } 1020 }
1053 1021
1054 // Tests that visible URL is the same as pending URL if it was user-initiated 1022 // Tests that visible URL is the same as pending URL if it was user-initiated
1055 // and there is a committed entry. 1023 // and there is a committed item.
1056 TEST_F(CRWSessionControllerTest, 1024 TEST_F(CRWSessionControllerTest,
1057 VisibleEntryWithCommittedAndUserInitiatedPendingEntry) { 1025 VisibleItemWithCommittedAndUserInitiatedPendingItem) {
1058 [session_controller_ 1026 [session_controller_
1059 addPendingItem:GURL("http://www.example.com") 1027 addPendingItem:GURL("http://www.example.com")
1060 referrer:MakeReferrer("http://www.example.com/a") 1028 referrer:MakeReferrer("http://www.example.com/a")
1061 transition:ui::PAGE_TRANSITION_LINK 1029 transition:ui::PAGE_TRANSITION_LINK
1062 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1030 initiationType:web::NavigationInitiationType::USER_INITIATED];
1063 [session_controller_ commitPendingItem]; 1031 [session_controller_ commitPendingItem];
1064 [session_controller_ 1032 [session_controller_
1065 addPendingItem:GURL("http://www.example.com/0") 1033 addPendingItem:GURL("http://www.example.com/0")
1066 referrer:MakeReferrer("http://www.example.com/b") 1034 referrer:MakeReferrer("http://www.example.com/b")
1067 transition:ui::PAGE_TRANSITION_LINK 1035 transition:ui::PAGE_TRANSITION_LINK
1068 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1036 initiationType:web::NavigationInitiationType::USER_INITIATED];
1069 web::NavigationItem* visible_item = 1037 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1070 [[session_controller_ visibleEntry] navigationItem];
1071 ASSERT_TRUE(visible_item); 1038 ASSERT_TRUE(visible_item);
1072 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); 1039 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec());
1073 } 1040 }
1074 1041
1075 // Tests that visible URL is not the same as pending URL if it was 1042 // Tests that visible URL is not the same as pending URL if it was
1076 // renderer-initiated. 1043 // renderer-initiated.
1077 TEST_F(CRWSessionControllerTest, 1044 TEST_F(CRWSessionControllerTest,
1078 VisibleEntryWithSingleRendererInitiatedPendingEntry) { 1045 VisibleItemWithSingleRendererInitiatedPendingItem) {
1079 [session_controller_ 1046 [session_controller_
1080 addPendingItem:GURL("http://www.example.com/0") 1047 addPendingItem:GURL("http://www.example.com/0")
1081 referrer:MakeReferrer("http://www.example.com/a") 1048 referrer:MakeReferrer("http://www.example.com/a")
1082 transition:ui::PAGE_TRANSITION_LINK 1049 transition:ui::PAGE_TRANSITION_LINK
1083 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1050 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
1084 web::NavigationItem* visible_item = 1051 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1085 [[session_controller_ visibleEntry] navigationItem];
1086 ASSERT_FALSE(visible_item); 1052 ASSERT_FALSE(visible_item);
1087 } 1053 }
1088 1054
1089 // Tests that visible URL is not the same as pending URL if it was 1055 // Tests that visible URL is not the same as pending URL if it was
1090 // renderer-initiated and there is a committed entry. 1056 // renderer-initiated and there is a committed item.
1091 TEST_F(CRWSessionControllerTest, 1057 TEST_F(CRWSessionControllerTest,
1092 VisibleEntryWithCommittedAndRendererInitiatedPendingEntry) { 1058 VisibleItemWithCommittedAndRendererInitiatedPendingItem) {
1093 [session_controller_ 1059 [session_controller_
1094 addPendingItem:GURL("http://www.example.com") 1060 addPendingItem:GURL("http://www.example.com")
1095 referrer:MakeReferrer("http://www.example.com/a") 1061 referrer:MakeReferrer("http://www.example.com/a")
1096 transition:ui::PAGE_TRANSITION_LINK 1062 transition:ui::PAGE_TRANSITION_LINK
1097 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1063 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
1098 [session_controller_ commitPendingItem]; 1064 [session_controller_ commitPendingItem];
1099 [session_controller_ 1065 [session_controller_
1100 addPendingItem:GURL("http://www.example.com/0") 1066 addPendingItem:GURL("http://www.example.com/0")
1101 referrer:MakeReferrer("http://www.example.com/b") 1067 referrer:MakeReferrer("http://www.example.com/b")
1102 transition:ui::PAGE_TRANSITION_LINK 1068 transition:ui::PAGE_TRANSITION_LINK
1103 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1069 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
1104 web::NavigationItem* visible_item = 1070 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1105 [[session_controller_ visibleEntry] navigationItem];
1106 ASSERT_TRUE(visible_item); 1071 ASSERT_TRUE(visible_item);
1107 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec()); 1072 EXPECT_EQ("http://www.example.com/", visible_item->GetURL().spec());
1108 } 1073 }
1109 1074
1110 // Tests that visible URL is not the same as pending URL created via pending 1075 // Tests that visible URL is not the same as pending URL created via pending
1111 // navigation index. 1076 // navigation index.
1112 TEST_F(CRWSessionControllerTest, VisibleEntryWithPendingNavigationIndex) { 1077 TEST_F(CRWSessionControllerTest, VisibleItemWithPendingNavigationIndex) {
1113 [session_controller_ 1078 [session_controller_
1114 addPendingItem:GURL("http://www.example.com") 1079 addPendingItem:GURL("http://www.example.com")
1115 referrer:MakeReferrer("http://www.example.com/a") 1080 referrer:MakeReferrer("http://www.example.com/a")
1116 transition:ui::PAGE_TRANSITION_LINK 1081 transition:ui::PAGE_TRANSITION_LINK
1117 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1082 initiationType:web::NavigationInitiationType::USER_INITIATED];
1118 [session_controller_ commitPendingItem]; 1083 [session_controller_ commitPendingItem];
1119 [session_controller_ 1084 [session_controller_
1120 addPendingItem:GURL("http://www.example.com/0") 1085 addPendingItem:GURL("http://www.example.com/0")
1121 referrer:MakeReferrer("http://www.example.com/b") 1086 referrer:MakeReferrer("http://www.example.com/b")
1122 transition:ui::PAGE_TRANSITION_LINK 1087 transition:ui::PAGE_TRANSITION_LINK
1123 initiationType:web::NavigationInitiationType::USER_INITIATED]; 1088 initiationType:web::NavigationInitiationType::USER_INITIATED];
1124 [session_controller_ commitPendingItem]; 1089 [session_controller_ commitPendingItem];
1125 1090
1126 [session_controller_ setPendingItemIndex:0]; 1091 [session_controller_ setPendingItemIndex:0];
1127 1092
1128 web::NavigationItem* visible_item = 1093 web::NavigationItem* visible_item = [session_controller_ visibleItem];
1129 [[session_controller_ visibleEntry] navigationItem];
1130 ASSERT_TRUE(visible_item); 1094 ASSERT_TRUE(visible_item);
1131 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec()); 1095 EXPECT_EQ("http://www.example.com/0", visible_item->GetURL().spec());
1132 } 1096 }
1133 1097
1134 // Tests that |-backwardEntries| is empty if all preceding entries are 1098 // Tests that |-backwardItems| is empty if all preceding entries are
1135 // redirects. 1099 // redirects.
1136 TEST_F(CRWSessionControllerTest, BackwardEntriesForAllRedirects) { 1100 TEST_F(CRWSessionControllerTest, BackwardItemsForAllRedirects) {
1137 [session_controller_ 1101 [session_controller_
1138 addPendingItem:GURL("http://www.example.com") 1102 addPendingItem:GURL("http://www.example.com")
1139 referrer:MakeReferrer("http://www.example.com/a") 1103 referrer:MakeReferrer("http://www.example.com/a")
1140 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT 1104 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT
1141 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1105 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
1142 [session_controller_ commitPendingItem]; 1106 [session_controller_ commitPendingItem];
1143 [session_controller_ 1107 [session_controller_
1144 addPendingItem:GURL("http://www.example.com/0") 1108 addPendingItem:GURL("http://www.example.com/0")
1145 referrer:MakeReferrer("http://www.example.com/b") 1109 referrer:MakeReferrer("http://www.example.com/b")
1146 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT 1110 transition:ui::PAGE_TRANSITION_CLIENT_REDIRECT
1147 initiationType:web::NavigationInitiationType::RENDERER_INITIATED]; 1111 initiationType:web::NavigationInitiationType::RENDERER_INITIATED];
1148 [session_controller_ commitPendingItem]; 1112 [session_controller_ commitPendingItem];
1149 EXPECT_EQ(0U, [session_controller_ backwardEntries].count); 1113 EXPECT_EQ(0U, [session_controller_ backwardItems].size());
1150 } 1114 }
1151 1115
1152 } // anonymous namespace 1116 } // anonymous namespace
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698