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

Side by Side Diff: ios/shared/chrome/browser/tabs/web_state_list_unittest.mm

Issue 2710183003: Fix WebStateListObserver::WebStateDetachedAt() parameter lifetime. (Closed)
Patch Set: Fix typos. 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 | « ios/shared/chrome/browser/tabs/web_state_list.mm ('k') | 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 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
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
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 }
OLDNEW
« no previous file with comments | « ios/shared/chrome/browser/tabs/web_state_list.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698