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

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

Issue 2687353003: Created SerializableUserDataManager. (Closed)
Patch Set: Eugene's comments 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" 17 #import "ios/web/public/crw_session_storage.h"
18 #include "ios/web/public/test/test_web_thread_bundle.h" 18 #include "ios/web/public/test/test_web_thread_bundle.h"
19 #import "ios/web/public/web_state/web_state.h" 19 #import "ios/web/public/web_state/web_state.h"
20 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
21 #include "testing/gtest_mac.h" 21 #include "testing/gtest_mac.h"
22 #include "testing/platform_test.h" 22 #include "testing/platform_test.h"
23 #import "third_party/ocmock/OCMock/OCMock.h" 23 #import "third_party/ocmock/OCMock/OCMock.h"
24 24
25 using web::WebStateImpl; 25 using web::WebStateImpl;
26 26
27 @interface SessionWindowIOS (Testing) 27 @interface SessionWindowIOS (Testing)
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 base::scoped_nsobject<SessionWindowIOS> sessionWindow( 59 base::scoped_nsobject<SessionWindowIOS> sessionWindow(
60 [[SessionWindowIOS alloc] init]); 60 [[SessionWindowIOS alloc] init]);
61 EXPECT_TRUE(sessionWindow.get() != nil); 61 EXPECT_TRUE(sessionWindow.get() != nil);
62 } 62 }
63 63
64 TEST_F(SessionWindowIOSTest, InitAddingSessions) { 64 TEST_F(SessionWindowIOSTest, InitAddingSessions) {
65 std::unique_ptr<WebStateImpl> webState1(CreateWebState(@"window1", nil, NO)); 65 std::unique_ptr<WebStateImpl> webState1(CreateWebState(@"window1", nil, NO));
66 std::unique_ptr<WebStateImpl> webState2(CreateWebState(@"window2", nil, NO)); 66 std::unique_ptr<WebStateImpl> webState2(CreateWebState(@"window2", nil, NO));
67 base::scoped_nsobject<SessionWindowIOS> sessionWindow( 67 base::scoped_nsobject<SessionWindowIOS> sessionWindow(
68 [[SessionWindowIOS alloc] init]); 68 [[SessionWindowIOS alloc] init]);
69 [sessionWindow 69 [sessionWindow addSerializedSessionStorage:webState1->BuildSessionStorage()];
70 addSerializedSession:webState1->BuildSerializedNavigationManager()]; 70 [sessionWindow addSerializedSessionStorage:webState2->BuildSessionStorage()];
71 [sessionWindow
72 addSerializedSession:webState2->BuildSerializedNavigationManager()];
73 [sessionWindow setSelectedIndex:1]; 71 [sessionWindow setSelectedIndex:1];
74 72
75 EXPECT_TRUE(sessionWindow.get() != nil); 73 EXPECT_TRUE(sessionWindow.get() != nil);
76 EXPECT_EQ(2U, sessionWindow.get().sessions.count); 74 EXPECT_EQ(2U, sessionWindow.get().sessions.count);
77 [sessionWindow clearSessions]; 75 [sessionWindow clearSessions];
78 EXPECT_EQ(0U, sessionWindow.get().sessions.count); 76 EXPECT_EQ(0U, sessionWindow.get().sessions.count);
79 } 77 }
80 78
81 TEST_F(SessionWindowIOSTest, CodingEncoding) { 79 TEST_F(SessionWindowIOSTest, CodingEncoding) {
82 NSString* windowName1 = @"window1"; 80 NSString* windowName1 = @"window1";
83 NSString* windowName2 = @"window2"; 81 NSString* windowName2 = @"window2";
84 base::scoped_nsobject<SessionWindowIOS> sessionWindow( 82 base::scoped_nsobject<SessionWindowIOS> sessionWindow(
85 [[SessionWindowIOS alloc] init]); 83 [[SessionWindowIOS alloc] init]);
86 84
87 std::unique_ptr<WebStateImpl> webState1( 85 std::unique_ptr<WebStateImpl> webState1(
88 CreateWebState(windowName1, nil, YES)); 86 CreateWebState(windowName1, nil, YES));
89 NSString* openerId1 = 87 NSString* openerId1 =
90 webState1->GetNavigationManagerImpl().GetSessionController().openerId; 88 webState1->GetNavigationManagerImpl().GetSessionController().openerId;
91 std::unique_ptr<WebStateImpl> webState2(CreateWebState(windowName2, nil, NO)); 89 std::unique_ptr<WebStateImpl> webState2(CreateWebState(windowName2, nil, NO));
92 NSString* openerId2 = 90 NSString* openerId2 =
93 webState2->GetNavigationManagerImpl().GetSessionController().openerId; 91 webState2->GetNavigationManagerImpl().GetSessionController().openerId;
94 [sessionWindow 92 [sessionWindow addSerializedSessionStorage:webState1->BuildSessionStorage()];
95 addSerializedSession:webState1->BuildSerializedNavigationManager()]; 93 [sessionWindow addSerializedSessionStorage:webState2->BuildSessionStorage()];
96 [sessionWindow
97 addSerializedSession:webState2->BuildSerializedNavigationManager()];
98 94
99 [sessionWindow setSelectedIndex:1]; 95 [sessionWindow setSelectedIndex:1];
100 96
101 NSData* data = [NSKeyedArchiver archivedDataWithRootObject:sessionWindow]; 97 NSData* data = [NSKeyedArchiver archivedDataWithRootObject:sessionWindow];
102 EXPECT_TRUE(data != nil); 98 EXPECT_TRUE(data != nil);
103 base::scoped_nsobject<SessionWindowUnarchiver> unarchiver( 99 base::scoped_nsobject<SessionWindowUnarchiver> unarchiver(
104 [[SessionWindowUnarchiver alloc] 100 [[SessionWindowUnarchiver alloc]
105 initForReadingWithData:data 101 initForReadingWithData:data
106 browserState:chrome_browser_state_.get()]); 102 browserState:chrome_browser_state_.get()]);
107 SessionWindowIOS* unarchivedObj = [unarchiver decodeObjectForKey:@"root"]; 103 SessionWindowIOS* unarchivedObj = [unarchiver decodeObjectForKey:@"root"];
108 EXPECT_TRUE(unarchivedObj != nil); 104 EXPECT_TRUE(unarchivedObj != nil);
109 EXPECT_EQ(unarchivedObj.selectedIndex, sessionWindow.get().selectedIndex); 105 EXPECT_EQ(unarchivedObj.selectedIndex, sessionWindow.get().selectedIndex);
110 NSArray* sessions = unarchivedObj.sessions; 106 NSArray* sessions = unarchivedObj.sessions;
111 ASSERT_EQ(2U, sessions.count); 107 ASSERT_EQ(2U, sessions.count);
112 CRWNavigationManagerStorage* unarchivedSession1 = sessions[0]; 108 CRWSessionStorage* unarchivedSession1 = sessions[0];
113 EXPECT_NSEQ(windowName1, unarchivedSession1.windowName); 109 EXPECT_NSEQ(windowName1, unarchivedSession1.windowName);
114 EXPECT_NSEQ(openerId1, unarchivedSession1.openerID); 110 EXPECT_NSEQ(openerId1, unarchivedSession1.openerID);
115 EXPECT_TRUE(unarchivedSession1.openedByDOM); 111 EXPECT_TRUE(unarchivedSession1.openedByDOM);
116 112
117 CRWNavigationManagerStorage* unarchivedSession2 = sessions[1]; 113 CRWSessionStorage* unarchivedSession2 = sessions[1];
118 EXPECT_NSEQ(windowName2, unarchivedSession2.windowName); 114 EXPECT_NSEQ(windowName2, unarchivedSession2.windowName);
119 EXPECT_NSEQ(openerId2, unarchivedSession2.openerID); 115 EXPECT_NSEQ(openerId2, unarchivedSession2.openerID);
120 EXPECT_FALSE(unarchivedSession2.openedByDOM); 116 EXPECT_FALSE(unarchivedSession2.openedByDOM);
121 } 117 }
122 118
123 } // anonymous namespace 119 } // 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