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

Unified Diff: ios/chrome/browser/web_state_list/web_state_list_serialization_unittest.mm

Issue 2812623002: Revert of [ios] Move WebStateList to ios/chrome/browser/web_state_list. (Closed)
Patch Set: Created 3 years, 8 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/chrome/browser/web_state_list/web_state_list_serialization_unittest.mm
diff --git a/ios/chrome/browser/web_state_list/web_state_list_serialization_unittest.mm b/ios/chrome/browser/web_state_list/web_state_list_serialization_unittest.mm
deleted file mode 100644
index 7fc9b37199cdb611de8c76af177c5a14ae828b6c..0000000000000000000000000000000000000000
--- a/ios/chrome/browser/web_state_list/web_state_list_serialization_unittest.mm
+++ /dev/null
@@ -1,134 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "ios/chrome/browser/web_state_list/web_state_list_serialization.h"
-
-#include <memory>
-
-#include "base/bind.h"
-#include "base/memory/ptr_util.h"
-#import "ios/chrome/browser/web_state_list/fake_web_state_list_delegate.h"
-#import "ios/chrome/browser/web_state_list/web_state_list.h"
-#import "ios/chrome/browser/web_state_list/web_state_opener.h"
-#import "ios/web/public/crw_session_storage.h"
-#import "ios/web/public/serializable_user_data_manager.h"
-#import "ios/web/public/test/fakes/test_web_state.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/platform_test.h"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-namespace {
-
-// Serializable sub-class of TestWebState.
-class SerializableTestWebState : public web::TestWebState {
- public:
- static std::unique_ptr<web::WebState> Create() {
- return base::MakeUnique<SerializableTestWebState>();
- }
-
- static std::unique_ptr<web::WebState> CreateWithSessionStorage(
- CRWSessionStorage* session_storage) {
- std::unique_ptr<web::WebState> web_state = Create();
- web::SerializableUserDataManager::FromWebState(web_state.get())
- ->AddSerializableUserData(session_storage.userData);
- return web_state;
- }
-
- private:
- // web::TestWebState implementation.
- CRWSessionStorage* BuildSessionStorage() override {
- std::unique_ptr<web::SerializableUserData> serializable_user_data =
- web::SerializableUserDataManager::FromWebState(this)
- ->CreateSerializableUserData();
-
- CRWSessionStorage* session_storage = [[CRWSessionStorage alloc] init];
- [session_storage setSerializableUserData:std::move(serializable_user_data)];
- return session_storage;
- }
-};
-
-// Compares whether both WebStateList |original| and |restored| have the same
-// opener-opened relationship. The |restored| WebStateList may have additional
-// WebState, so only indices from |restored_index| to |count()| are compared.
-void ExpectRelationshipIdenticalFrom(int restored_index,
- WebStateList* original,
- WebStateList* restored) {
- ASSERT_GE(restored_index, 0);
- EXPECT_EQ(original->count(), restored->count() - restored_index);
-
- for (int index = 0; index < original->count(); ++index) {
- WebStateOpener original_opener = original->GetOpenerOfWebStateAt(index);
- WebStateOpener restored_opener =
- restored->GetOpenerOfWebStateAt(index + restored_index);
-
- int restored_opener_index =
- restored_opener.opener
- ? restored->GetIndexOfWebState(restored_opener.opener) -
- restored_index
- : WebStateList::kInvalidIndex;
-
- EXPECT_EQ(original->GetIndexOfWebState(original_opener.opener),
- restored_opener_index);
- EXPECT_EQ(original_opener.navigation_index,
- restored_opener.navigation_index);
- }
-}
-
-} // namespace
-
-class WebStateListSerializationTest : public PlatformTest {
- public:
- WebStateListSerializationTest() = default;
-
- WebStateListDelegate* web_state_list_delegate() {
- return &web_state_list_delegate_;
- }
-
- private:
- FakeWebStateListDelegate web_state_list_delegate_;
-
- DISALLOW_COPY_AND_ASSIGN(WebStateListSerializationTest);
-};
-
-TEST_F(WebStateListSerializationTest, SerializationEmpty) {
- WebStateList original_web_state_list(web_state_list_delegate());
- NSArray<CRWSessionStorage*>* sessions =
- SerializeWebStateList(&original_web_state_list);
-
- EXPECT_EQ(0u, [sessions count]);
-}
-
-TEST_F(WebStateListSerializationTest, SerializationRoundTrip) {
- WebStateList original_web_state_list(web_state_list_delegate());
- original_web_state_list.InsertWebState(0, SerializableTestWebState::Create());
- original_web_state_list.InsertWebState(1, SerializableTestWebState::Create());
- original_web_state_list.InsertWebState(2, SerializableTestWebState::Create());
- original_web_state_list.InsertWebState(3, SerializableTestWebState::Create());
- original_web_state_list.SetOpenerOfWebStateAt(
- 1, WebStateOpener(original_web_state_list.GetWebStateAt(0), 3));
- original_web_state_list.SetOpenerOfWebStateAt(
- 2, WebStateOpener(original_web_state_list.GetWebStateAt(0), 2));
- original_web_state_list.SetOpenerOfWebStateAt(
- 3, WebStateOpener(original_web_state_list.GetWebStateAt(1), 1));
-
- NSArray<CRWSessionStorage*>* sessions =
- SerializeWebStateList(&original_web_state_list);
-
- EXPECT_EQ(4u, [sessions count]);
-
- WebStateList restored_web_state_list(web_state_list_delegate());
- restored_web_state_list.InsertWebState(0, SerializableTestWebState::Create());
- ASSERT_EQ(1, restored_web_state_list.count());
-
- DeserializeWebStateList(
- &restored_web_state_list, sessions,
- base::BindRepeating(&SerializableTestWebState::CreateWithSessionStorage));
-
- EXPECT_EQ(5, restored_web_state_list.count());
- ExpectRelationshipIdenticalFrom(1, &original_web_state_list,
- &restored_web_state_list);
-}

Powered by Google App Engine
This is Rietveld 408576698