OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/shared/chrome/browser/tabs/web_state_list.h" | 5 #import "ios/shared/chrome/browser/tabs/web_state_list.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "base/supports_user_data.h" | 9 #include "base/supports_user_data.h" |
10 #import "ios/shared/chrome/browser/tabs/web_state_list_observer.h" | 10 #import "ios/shared/chrome/browser/tabs/web_state_list_observer.h" |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 web_state_list_.InsertWebState(1, CreateWebState(kURL1), nullptr); | 321 web_state_list_.InsertWebState(1, CreateWebState(kURL1), nullptr); |
322 web_state_list_.InsertWebState(2, CreateWebState(kURL2), nullptr); | 322 web_state_list_.InsertWebState(2, CreateWebState(kURL2), nullptr); |
323 | 323 |
324 // Sanity check before closing WebState. | 324 // Sanity check before closing WebState. |
325 EXPECT_EQ(3, web_state_list_.count()); | 325 EXPECT_EQ(3, web_state_list_.count()); |
326 EXPECT_EQ(kURL0, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); | 326 EXPECT_EQ(kURL0, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); |
327 EXPECT_EQ(kURL1, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); | 327 EXPECT_EQ(kURL1, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); |
328 EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(2)->GetVisibleURL().spec()); | 328 EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(2)->GetVisibleURL().spec()); |
329 | 329 |
330 observer_.ResetStatistics(); | 330 observer_.ResetStatistics(); |
331 web_state_list_.DetachWebStateAt(0); | 331 std::unique_ptr<web::WebState> old_web_state( |
| 332 web_state_list_.DetachWebStateAt(0)); |
332 | 333 |
333 EXPECT_TRUE(observer_.web_state_detached_called()); | 334 EXPECT_TRUE(observer_.web_state_detached_called()); |
334 EXPECT_EQ(2, web_state_list_.count()); | 335 EXPECT_EQ(2, web_state_list_.count()); |
335 EXPECT_EQ(kURL1, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); | 336 EXPECT_EQ(kURL1, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); |
336 EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); | 337 EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); |
337 } | 338 } |
338 | 339 |
339 TEST_F(WebStateListTest, DetachWebStateAtIndexMiddle) { | 340 TEST_F(WebStateListTest, DetachWebStateAtIndexMiddle) { |
340 web_state_list_.InsertWebState(0, CreateWebState(kURL0), nullptr); | 341 web_state_list_.InsertWebState(0, CreateWebState(kURL0), nullptr); |
341 web_state_list_.InsertWebState(1, CreateWebState(kURL1), nullptr); | 342 web_state_list_.InsertWebState(1, CreateWebState(kURL1), nullptr); |
342 web_state_list_.InsertWebState(2, CreateWebState(kURL2), nullptr); | 343 web_state_list_.InsertWebState(2, CreateWebState(kURL2), nullptr); |
343 | 344 |
344 // Sanity check before closing WebState. | 345 // Sanity check before closing WebState. |
345 EXPECT_EQ(3, web_state_list_.count()); | 346 EXPECT_EQ(3, web_state_list_.count()); |
346 EXPECT_EQ(kURL0, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); | 347 EXPECT_EQ(kURL0, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); |
347 EXPECT_EQ(kURL1, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); | 348 EXPECT_EQ(kURL1, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); |
348 EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(2)->GetVisibleURL().spec()); | 349 EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(2)->GetVisibleURL().spec()); |
349 | 350 |
350 observer_.ResetStatistics(); | 351 observer_.ResetStatistics(); |
351 web_state_list_.DetachWebStateAt(1); | 352 std::unique_ptr<web::WebState> old_web_state( |
| 353 web_state_list_.DetachWebStateAt(1)); |
352 | 354 |
353 EXPECT_TRUE(observer_.web_state_detached_called()); | 355 EXPECT_TRUE(observer_.web_state_detached_called()); |
354 EXPECT_EQ(2, web_state_list_.count()); | 356 EXPECT_EQ(2, web_state_list_.count()); |
355 EXPECT_EQ(kURL0, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); | 357 EXPECT_EQ(kURL0, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); |
356 EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); | 358 EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); |
357 } | 359 } |
358 | 360 |
359 TEST_F(WebStateListTest, DetachWebStateAtIndexLast) { | 361 TEST_F(WebStateListTest, DetachWebStateAtIndexLast) { |
360 web_state_list_.InsertWebState(0, CreateWebState(kURL0), nullptr); | 362 web_state_list_.InsertWebState(0, CreateWebState(kURL0), nullptr); |
361 web_state_list_.InsertWebState(1, CreateWebState(kURL1), nullptr); | 363 web_state_list_.InsertWebState(1, CreateWebState(kURL1), nullptr); |
362 web_state_list_.InsertWebState(2, CreateWebState(kURL2), nullptr); | 364 web_state_list_.InsertWebState(2, CreateWebState(kURL2), nullptr); |
363 | 365 |
364 // Sanity check before closing WebState. | 366 // Sanity check before closing WebState. |
365 EXPECT_EQ(3, web_state_list_.count()); | 367 EXPECT_EQ(3, web_state_list_.count()); |
366 EXPECT_EQ(kURL0, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); | 368 EXPECT_EQ(kURL0, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); |
367 EXPECT_EQ(kURL1, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); | 369 EXPECT_EQ(kURL1, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); |
368 EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(2)->GetVisibleURL().spec()); | 370 EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(2)->GetVisibleURL().spec()); |
369 | 371 |
370 observer_.ResetStatistics(); | 372 observer_.ResetStatistics(); |
371 web_state_list_.DetachWebStateAt(2); | 373 std::unique_ptr<web::WebState> old_web_state( |
| 374 web_state_list_.DetachWebStateAt(2)); |
372 | 375 |
373 EXPECT_TRUE(observer_.web_state_detached_called()); | 376 EXPECT_TRUE(observer_.web_state_detached_called()); |
374 EXPECT_EQ(2, web_state_list_.count()); | 377 EXPECT_EQ(2, web_state_list_.count()); |
375 EXPECT_EQ(kURL0, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); | 378 EXPECT_EQ(kURL0, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); |
376 EXPECT_EQ(kURL1, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); | 379 EXPECT_EQ(kURL1, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); |
377 } | 380 } |
378 | 381 |
379 TEST_F(WebStateListTest, OwnershipBorrowed) { | 382 TEST_F(WebStateListTest, OwnershipBorrowed) { |
380 bool web_state_was_killed = false; | 383 bool web_state_was_killed = false; |
381 auto test_web_state = base::MakeUnique<web::TestWebState>(); | 384 auto test_web_state = base::MakeUnique<web::TestWebState>(); |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 web_state_list_.GetIndexOfLastWebStateOpenedBy(opener, start_index, | 527 web_state_list_.GetIndexOfLastWebStateOpenedBy(opener, start_index, |
525 false)); | 528 false)); |
526 | 529 |
527 EXPECT_EQ(WebStateList::kInvalidIndex, | 530 EXPECT_EQ(WebStateList::kInvalidIndex, |
528 web_state_list_.GetIndexOfNextWebStateOpenedBy(opener, start_index, | 531 web_state_list_.GetIndexOfNextWebStateOpenedBy(opener, start_index, |
529 true)); | 532 true)); |
530 EXPECT_EQ(WebStateList::kInvalidIndex, | 533 EXPECT_EQ(WebStateList::kInvalidIndex, |
531 web_state_list_.GetIndexOfLastWebStateOpenedBy(opener, start_index, | 534 web_state_list_.GetIndexOfLastWebStateOpenedBy(opener, start_index, |
532 true)); | 535 true)); |
533 } | 536 } |
OLD | NEW |