| 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);
|
| -}
|
|
|