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

Unified Diff: ios/shared/chrome/browser/tabs/web_state_list_unittest.mm

Issue 2775623002: [ios] WebStateList owns all WebState it manages. (Closed)
Patch Set: Remove Tab -willClose method (Tab implements CRWWebControllerObserver protocol). 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 side-by-side diff with in-line comments
Download patch
Index: ios/shared/chrome/browser/tabs/web_state_list_unittest.mm
diff --git a/ios/shared/chrome/browser/tabs/web_state_list_unittest.mm b/ios/shared/chrome/browser/tabs/web_state_list_unittest.mm
index d7d0e020ea0fcb4cec73682b1d572fdbc39d62d8..a786270f700803b1e8b7da895dec4de410eb4e05 100644
--- a/ios/shared/chrome/browser/tabs/web_state_list_unittest.mm
+++ b/ios/shared/chrome/browser/tabs/web_state_list_unittest.mm
@@ -23,25 +23,6 @@ namespace {
const char kURL0[] = "https://chromium.org/0";
const char kURL1[] = "https://chromium.org/1";
const char kURL2[] = "https://chromium.org/2";
-const char kSupportsUserDataDeathGuardKey = '\0';
-
-// A base::SupportsUserData::Data that tracks whether a base::SupportsUserData
-// has been deleted (the fact is recorded in a provided pointer as part of the
-// object destruction).
-class SupportsUserDataDeathGuard : public base::SupportsUserData::Data {
- public:
- explicit SupportsUserDataDeathGuard(bool* object_was_destroyed)
- : object_was_destroyed_(object_was_destroyed) {
- *object_was_destroyed_ = false;
- }
-
- ~SupportsUserDataDeathGuard() override { *object_was_destroyed_ = true; }
-
- private:
- bool* object_was_destroyed_;
-
- DISALLOW_COPY_AND_ASSIGN(SupportsUserDataDeathGuard);
-};
// WebStateList observer that records which events have been called by the
// WebStateList.
@@ -143,9 +124,7 @@ class FakeNavigationManager : public web::TestNavigationManager {
class WebStateListTest : public PlatformTest {
public:
- WebStateListTest()
- : web_state_list_(&web_state_list_delegate_,
- WebStateList::WebStateOwned) {
+ WebStateListTest() : web_state_list_(&web_state_list_delegate_) {
web_state_list_.AddObserver(&observer_);
}
@@ -156,15 +135,13 @@ class WebStateListTest : public PlatformTest {
WebStateList web_state_list_;
WebStateListTestObserver observer_;
- // This method should return std::unique_ptr<> however, due to the complex
- // ownership of Tab, WebStateList currently uses raw pointers. Change this
- // once Tab ownership is sane, see http://crbug.com/546222 for progress.
- web::WebState* CreateWebState(const char* url) {
+ std::unique_ptr<web::WebState> CreateWebState(const char* url) {
auto test_web_state = base::MakeUnique<web::TestWebState>();
test_web_state->SetCurrentURL(GURL(url));
test_web_state->SetNavigationManager(
base::MakeUnique<FakeNavigationManager>());
- return test_web_state.release();
+ // TODO(crbug.com/703565): remove std::move() once Xcode 9.0+ is required.
+ return std::move(test_web_state);
}
private:
@@ -339,8 +316,7 @@ TEST_F(WebStateListTest, DetachWebStateAtIndexBegining) {
EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(2)->GetVisibleURL().spec());
observer_.ResetStatistics();
- std::unique_ptr<web::WebState> old_web_state(
- web_state_list_.DetachWebStateAt(0));
+ web_state_list_.DetachWebStateAt(0);
EXPECT_TRUE(observer_.web_state_detached_called());
EXPECT_EQ(2, web_state_list_.count());
@@ -360,8 +336,7 @@ TEST_F(WebStateListTest, DetachWebStateAtIndexMiddle) {
EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(2)->GetVisibleURL().spec());
observer_.ResetStatistics();
- std::unique_ptr<web::WebState> old_web_state(
- web_state_list_.DetachWebStateAt(1));
+ web_state_list_.DetachWebStateAt(1);
EXPECT_TRUE(observer_.web_state_detached_called());
EXPECT_EQ(2, web_state_list_.count());
@@ -381,8 +356,7 @@ TEST_F(WebStateListTest, DetachWebStateAtIndexLast) {
EXPECT_EQ(kURL2, web_state_list_.GetWebStateAt(2)->GetVisibleURL().spec());
observer_.ResetStatistics();
- std::unique_ptr<web::WebState> old_web_state(
- web_state_list_.DetachWebStateAt(2));
+ web_state_list_.DetachWebStateAt(2);
EXPECT_TRUE(observer_.web_state_detached_called());
EXPECT_EQ(2, web_state_list_.count());
@@ -390,40 +364,6 @@ TEST_F(WebStateListTest, DetachWebStateAtIndexLast) {
EXPECT_EQ(kURL1, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec());
}
-TEST_F(WebStateListTest, OwnershipBorrowed) {
- bool web_state_was_killed = false;
- auto test_web_state = base::MakeUnique<web::TestWebState>();
- test_web_state->SetUserData(
- &kSupportsUserDataDeathGuardKey,
- base::MakeUnique<SupportsUserDataDeathGuard>(&web_state_was_killed));
-
- FakeWebStateListDelegate web_state_list_delegate;
- auto web_state_list = base::MakeUnique<WebStateList>(
- &web_state_list_delegate, WebStateList::WebStateBorrowed);
- web_state_list->InsertWebState(0, test_web_state.get());
- EXPECT_FALSE(web_state_was_killed);
-
- web_state_list.reset();
- EXPECT_FALSE(web_state_was_killed);
-}
-
-TEST_F(WebStateListTest, OwnershipOwned) {
- bool web_state_was_killed = false;
- auto test_web_state = base::MakeUnique<web::TestWebState>();
- test_web_state->SetUserData(
- &kSupportsUserDataDeathGuardKey,
- base::MakeUnique<SupportsUserDataDeathGuard>(&web_state_was_killed));
-
- FakeWebStateListDelegate web_state_list_delegate;
- auto web_state_list = base::MakeUnique<WebStateList>(
- &web_state_list_delegate, WebStateList::WebStateOwned);
- web_state_list->InsertWebState(0, test_web_state.release());
- EXPECT_FALSE(web_state_was_killed);
-
- web_state_list.reset();
- EXPECT_TRUE(web_state_was_killed);
-}
-
TEST_F(WebStateListTest, OpenersEmptyList) {
EXPECT_TRUE(web_state_list_.empty());

Powered by Google App Engine
This is Rietveld 408576698