OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/web/public/crw_session_storage.h" | 5 #import "ios/web/public/crw_session_storage.h" |
6 | 6 |
7 #import "base/mac/scoped_nsobject.h" | 7 #import "base/mac/scoped_nsobject.h" |
8 #include "base/strings/sys_string_conversions.h" | 8 #include "base/strings/sys_string_conversions.h" |
9 #import "ios/web/navigation/navigation_item_impl.h" | 9 #import "ios/web/navigation/navigation_item_impl.h" |
10 #import "ios/web/navigation/navigation_item_storage_test_util.h" | 10 #import "ios/web/navigation/navigation_item_storage_test_util.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 (!data1 || [data1->data() isEqualToDictionary:data2->data()]); | 42 (!data1 || [data1->data() isEqualToDictionary:data2->data()]); |
43 } | 43 } |
44 // Checks for equality between |session1| and |session2|. | 44 // Checks for equality between |session1| and |session2|. |
45 BOOL SessionStoragesAreEqual(CRWSessionStorage* session1, | 45 BOOL SessionStoragesAreEqual(CRWSessionStorage* session1, |
46 CRWSessionStorage* session2) { | 46 CRWSessionStorage* session2) { |
47 // Check the rest of the properties. | 47 // Check the rest of the properties. |
48 NSArray* items1 = session1.itemStorages; | 48 NSArray* items1 = session1.itemStorages; |
49 NSArray* items2 = session2.itemStorages; | 49 NSArray* items2 = session2.itemStorages; |
50 return ItemStorageListsAreEqual(items1, items2) && | 50 return ItemStorageListsAreEqual(items1, items2) && |
51 session1.openedByDOM == session2.openedByDOM && | 51 session1.openedByDOM == session2.openedByDOM && |
52 [session1.windowName isEqual:session2.windowName] && | |
53 session1.currentNavigationIndex == session2.currentNavigationIndex && | 52 session1.currentNavigationIndex == session2.currentNavigationIndex && |
54 session1.previousNavigationIndex == session2.previousNavigationIndex && | 53 session1.previousNavigationIndex == session2.previousNavigationIndex && |
55 session1.lastVisitedTimestamp == session2.lastVisitedTimestamp && | 54 session1.lastVisitedTimestamp == session2.lastVisitedTimestamp && |
56 UserDataAreEqual(session1.userData, session2.userData); | 55 UserDataAreEqual(session1.userData, session2.userData); |
57 } | 56 } |
58 } // namespace | 57 } // namespace |
59 | 58 |
60 class CRWNSessionStorageTest : public PlatformTest { | 59 class CRWNSessionStorageTest : public PlatformTest { |
61 protected: | 60 protected: |
62 CRWNSessionStorageTest() | 61 CRWNSessionStorageTest() |
63 : session_storage_([[CRWSessionStorage alloc] init]) { | 62 : session_storage_([[CRWSessionStorage alloc] init]) { |
64 // Set up |session_storage_|. | 63 // Set up |session_storage_|. |
65 [session_storage_ setOpenedByDOM:YES]; | 64 [session_storage_ setOpenedByDOM:YES]; |
66 [session_storage_ setWindowName:@"windowName"]; | |
67 [session_storage_ setCurrentNavigationIndex:4]; | 65 [session_storage_ setCurrentNavigationIndex:4]; |
68 [session_storage_ setPreviousNavigationIndex:3]; | 66 [session_storage_ setPreviousNavigationIndex:3]; |
69 [session_storage_ setLastVisitedTimestamp:CFAbsoluteTimeGetCurrent()]; | 67 [session_storage_ setLastVisitedTimestamp:CFAbsoluteTimeGetCurrent()]; |
70 // Create an item storage. | 68 // Create an item storage. |
71 base::scoped_nsobject<CRWNavigationItemStorage> item_storage( | 69 base::scoped_nsobject<CRWNavigationItemStorage> item_storage( |
72 [[CRWNavigationItemStorage alloc] init]); | 70 [[CRWNavigationItemStorage alloc] init]); |
73 [item_storage setVirtualURL:GURL("http://init.test")]; | 71 [item_storage setVirtualURL:GURL("http://init.test")]; |
74 [item_storage setReferrer:web::Referrer(GURL("http://referrer.url"), | 72 [item_storage setReferrer:web::Referrer(GURL("http://referrer.url"), |
75 web::ReferrerPolicyDefault)]; | 73 web::ReferrerPolicyDefault)]; |
76 [item_storage setTimestamp:base::Time::Now()]; | 74 [item_storage setTimestamp:base::Time::Now()]; |
(...skipping 15 matching lines...) Expand all Loading... |
92 base::scoped_nsobject<CRWSessionStorage> session_storage_; | 90 base::scoped_nsobject<CRWSessionStorage> session_storage_; |
93 }; | 91 }; |
94 | 92 |
95 // Tests that unarchiving CRWSessionStorage data results in an equivalent | 93 // Tests that unarchiving CRWSessionStorage data results in an equivalent |
96 // storage. | 94 // storage. |
97 TEST_F(CRWNSessionStorageTest, EncodeDecode) { | 95 TEST_F(CRWNSessionStorageTest, EncodeDecode) { |
98 NSData* data = [NSKeyedArchiver archivedDataWithRootObject:session_storage_]; | 96 NSData* data = [NSKeyedArchiver archivedDataWithRootObject:session_storage_]; |
99 id decoded = [NSKeyedUnarchiver unarchiveObjectWithData:data]; | 97 id decoded = [NSKeyedUnarchiver unarchiveObjectWithData:data]; |
100 EXPECT_TRUE(SessionStoragesAreEqual(session_storage_, decoded)); | 98 EXPECT_TRUE(SessionStoragesAreEqual(session_storage_, decoded)); |
101 } | 99 } |
OLD | NEW |