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

Side by Side Diff: ios/chrome/browser/sessions/session_window_unittest.mm

Issue 2655253002: Revert of Moved NavigationManagerImpl serialization out of CRWSessionController. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 3 years, 10 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/chrome/browser/sessions/session_window.mm ('k') | ios/chrome/browser/tabs/tab_model.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/chrome/browser/sessions/session_window.h" 5 #import "ios/chrome/browser/sessions/session_window.h"
6 6
7 #import <Foundation/Foundation.h> 7 #import <Foundation/Foundation.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
11 11
12 #include "base/mac/scoped_nsobject.h" 12 #include "base/mac/scoped_nsobject.h"
13 #include "base/strings/sys_string_conversions.h" 13 #include "base/strings/sys_string_conversions.h"
14 #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" 14 #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
15 #import "ios/chrome/browser/sessions/session_service.h" 15 #import "ios/chrome/browser/sessions/session_service.h"
16 #import "ios/web/navigation/crw_session_controller.h" 16 #import "ios/web/navigation/crw_session_controller.h"
17 #import "ios/web/public/crw_navigation_manager_storage.h"
18 #include "ios/web/public/test/test_web_thread_bundle.h" 17 #include "ios/web/public/test/test_web_thread_bundle.h"
19 #import "ios/web/public/web_state/web_state.h"
20 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
21 #include "testing/gtest_mac.h" 19 #include "testing/gtest_mac.h"
22 #include "testing/platform_test.h" 20 #include "testing/platform_test.h"
23 #import "third_party/ocmock/OCMock/OCMock.h" 21 #import "third_party/ocmock/OCMock/OCMock.h"
24 22
25 using web::WebStateImpl; 23 using web::WebStateImpl;
26 24
27 @interface SessionWindowIOS (Testing) 25 @interface SessionWindowIOS (Testing)
28 26
29 - (void)clearSessions; 27 - (void)clearSessions;
(...skipping 29 matching lines...) Expand all
59 base::scoped_nsobject<SessionWindowIOS> sessionWindow( 57 base::scoped_nsobject<SessionWindowIOS> sessionWindow(
60 [[SessionWindowIOS alloc] init]); 58 [[SessionWindowIOS alloc] init]);
61 EXPECT_TRUE(sessionWindow.get() != nil); 59 EXPECT_TRUE(sessionWindow.get() != nil);
62 } 60 }
63 61
64 TEST_F(SessionWindowIOSTest, InitAddingSessions) { 62 TEST_F(SessionWindowIOSTest, InitAddingSessions) {
65 std::unique_ptr<WebStateImpl> webState1(CreateWebState(@"window1", nil, NO)); 63 std::unique_ptr<WebStateImpl> webState1(CreateWebState(@"window1", nil, NO));
66 std::unique_ptr<WebStateImpl> webState2(CreateWebState(@"window2", nil, NO)); 64 std::unique_ptr<WebStateImpl> webState2(CreateWebState(@"window2", nil, NO));
67 base::scoped_nsobject<SessionWindowIOS> sessionWindow( 65 base::scoped_nsobject<SessionWindowIOS> sessionWindow(
68 [[SessionWindowIOS alloc] init]); 66 [[SessionWindowIOS alloc] init]);
69 [sessionWindow 67 [sessionWindow addSession:std::move(webState1)];
70 addSerializedSession:webState1->BuildSerializedNavigationManager()]; 68 [sessionWindow addSession:std::move(webState2)];
71 [sessionWindow
72 addSerializedSession:webState2->BuildSerializedNavigationManager()];
73 [sessionWindow setSelectedIndex:1]; 69 [sessionWindow setSelectedIndex:1];
74 70
75 EXPECT_TRUE(sessionWindow.get() != nil); 71 EXPECT_TRUE(sessionWindow.get() != nil);
76 EXPECT_EQ(2U, sessionWindow.get().sessions.count); 72 EXPECT_EQ(2U, sessionWindow.get().unclaimedSessions);
77 [sessionWindow clearSessions]; 73 [sessionWindow clearSessions];
78 EXPECT_EQ(0U, sessionWindow.get().sessions.count); 74 EXPECT_EQ(0U, sessionWindow.get().unclaimedSessions);
79 } 75 }
80 76
81 TEST_F(SessionWindowIOSTest, CodingEncoding) { 77 TEST_F(SessionWindowIOSTest, CodingEncoding) {
82 NSString* windowName1 = @"window1"; 78 NSString* windowName1 = @"window1";
83 NSString* windowName2 = @"window2"; 79 NSString* windowName2 = @"window2";
84 base::scoped_nsobject<SessionWindowIOS> sessionWindow( 80 base::scoped_nsobject<SessionWindowIOS> sessionWindow(
85 [[SessionWindowIOS alloc] init]); 81 [[SessionWindowIOS alloc] init]);
86 82
87 std::unique_ptr<WebStateImpl> webState1( 83 std::unique_ptr<WebStateImpl> webState1(
88 CreateWebState(windowName1, nil, YES)); 84 CreateWebState(windowName1, nil, YES));
89 NSString* openerId1 = 85 NSString* openerId1 =
90 webState1->GetNavigationManagerImpl().GetSessionController().openerId; 86 webState1->GetNavigationManagerImpl().GetSessionController().openerId;
91 std::unique_ptr<WebStateImpl> webState2(CreateWebState(windowName2, nil, NO)); 87 std::unique_ptr<WebStateImpl> webState2(CreateWebState(windowName2, nil, NO));
92 NSString* openerId2 = 88 NSString* openerId2 =
93 webState2->GetNavigationManagerImpl().GetSessionController().openerId; 89 webState2->GetNavigationManagerImpl().GetSessionController().openerId;
94 [sessionWindow 90 [sessionWindow addSession:std::move(webState1)];
95 addSerializedSession:webState1->BuildSerializedNavigationManager()]; 91 [sessionWindow addSession:std::move(webState2)];
96 [sessionWindow
97 addSerializedSession:webState2->BuildSerializedNavigationManager()];
98 92
99 [sessionWindow setSelectedIndex:1]; 93 [sessionWindow setSelectedIndex:1];
100 94
101 NSData* data = [NSKeyedArchiver archivedDataWithRootObject:sessionWindow]; 95 NSData* data = [NSKeyedArchiver archivedDataWithRootObject:sessionWindow];
102 EXPECT_TRUE(data != nil); 96 EXPECT_TRUE(data != nil);
103 base::scoped_nsobject<SessionWindowUnarchiver> unarchiver( 97 base::scoped_nsobject<SessionWindowUnarchiver> unarchiver(
104 [[SessionWindowUnarchiver alloc] 98 [[SessionWindowUnarchiver alloc]
105 initForReadingWithData:data 99 initForReadingWithData:data
106 browserState:chrome_browser_state_.get()]); 100 browserState:chrome_browser_state_.get()]);
107 SessionWindowIOS* unarchivedObj = [unarchiver decodeObjectForKey:@"root"]; 101 SessionWindowIOS* unarchivedObj = [unarchiver decodeObjectForKey:@"root"];
108 EXPECT_TRUE(unarchivedObj != nil); 102 EXPECT_TRUE(unarchivedObj != nil);
109 EXPECT_EQ(unarchivedObj.selectedIndex, sessionWindow.get().selectedIndex); 103 EXPECT_EQ(unarchivedObj.selectedIndex, sessionWindow.get().selectedIndex);
110 NSArray* sessions = unarchivedObj.sessions; 104 EXPECT_EQ(2U, unarchivedObj.unclaimedSessions);
111 ASSERT_EQ(2U, sessions.count); 105 std::unique_ptr<WebStateImpl> unarchivedWebState1 =
112 CRWNavigationManagerStorage* unarchivedSession1 = sessions[0]; 106 [unarchivedObj nextSession];
107 EXPECT_EQ(1U, unarchivedObj.unclaimedSessions);
108 CRWSessionController* unarchivedSession1 =
109 unarchivedWebState1->GetNavigationManagerImpl().GetSessionController();
113 EXPECT_NSEQ(windowName1, unarchivedSession1.windowName); 110 EXPECT_NSEQ(windowName1, unarchivedSession1.windowName);
114 EXPECT_NSEQ(openerId1, unarchivedSession1.openerID); 111 EXPECT_NSEQ(openerId1, unarchivedSession1.openerId);
115 EXPECT_TRUE(unarchivedSession1.openedByDOM); 112 EXPECT_TRUE(unarchivedSession1.openedByDOM);
116 113
117 CRWNavigationManagerStorage* unarchivedSession2 = sessions[1]; 114 std::unique_ptr<WebStateImpl> unarchivedWebState2 =
115 [unarchivedObj nextSession];
116 EXPECT_EQ(0U, unarchivedObj.unclaimedSessions);
117
118 CRWSessionController* unarchivedSession2 =
119 unarchivedWebState2->GetNavigationManagerImpl().GetSessionController();
118 EXPECT_NSEQ(windowName2, unarchivedSession2.windowName); 120 EXPECT_NSEQ(windowName2, unarchivedSession2.windowName);
119 EXPECT_NSEQ(openerId2, unarchivedSession2.openerID); 121 EXPECT_NSEQ(openerId2, unarchivedSession2.openerId);
120 EXPECT_FALSE(unarchivedSession2.openedByDOM); 122 EXPECT_FALSE(unarchivedSession2.openedByDOM);
121 } 123 }
122 124
123 } // anonymous namespace 125 } // anonymous namespace
OLDNEW
« no previous file with comments | « ios/chrome/browser/sessions/session_window.mm ('k') | ios/chrome/browser/tabs/tab_model.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698