| 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 |