OLD | NEW |
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/web/navigation/crw_session_entry.h" | 5 #import "ios/web/navigation/crw_session_entry.h" |
6 | 6 |
7 #import <Foundation/Foundation.h> | 7 #import <Foundation/Foundation.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <utility> | 10 #include <utility> |
(...skipping 15 matching lines...) Expand all Loading... |
26 public: | 26 public: |
27 static void expectEqualSessionEntries(CRWSessionEntry* entry1, | 27 static void expectEqualSessionEntries(CRWSessionEntry* entry1, |
28 CRWSessionEntry* entry2, | 28 CRWSessionEntry* entry2, |
29 ui::PageTransition transition); | 29 ui::PageTransition transition); |
30 | 30 |
31 protected: | 31 protected: |
32 void SetUp() override { | 32 void SetUp() override { |
33 GURL url("http://init.test"); | 33 GURL url("http://init.test"); |
34 ui::PageTransition transition = | 34 ui::PageTransition transition = |
35 ui::PAGE_TRANSITION_AUTO_BOOKMARK; | 35 ui::PAGE_TRANSITION_AUTO_BOOKMARK; |
36 std::unique_ptr<web::NavigationItemImpl> item( | 36 _item.reset(new web::NavigationItemImpl()); |
37 new web::NavigationItemImpl()); | 37 _item->SetOriginalRequestURL(url); |
38 item->SetOriginalRequestURL(url); | 38 _item->SetURL(url); |
39 item->SetURL(url); | 39 _item->SetTransitionType(transition); |
40 item->SetTransitionType(transition); | 40 _item->SetTimestamp(base::Time::Now()); |
41 item->SetTimestamp(base::Time::Now()); | 41 _item->SetPostData([@"Test data" dataUsingEncoding:NSUTF8StringEncoding]); |
42 item->SetPostData([@"Test data" dataUsingEncoding:NSUTF8StringEncoding]); | 42 _sessionEntry.reset( |
43 sessionEntry_.reset( | 43 [[CRWSessionEntry alloc] initWithNavigationItem:_item.get()]); |
44 [[CRWSessionEntry alloc] initWithNavigationItem:std::move(item)]); | |
45 } | 44 } |
46 void TearDown() override { sessionEntry_.reset(); } | |
47 | 45 |
48 protected: | 46 protected: |
49 base::scoped_nsobject<CRWSessionEntry> sessionEntry_; | 47 std::unique_ptr<web::NavigationItemImpl> _item; |
| 48 base::scoped_nsobject<CRWSessionEntry> _sessionEntry; |
50 }; | 49 }; |
51 | 50 |
52 void CRWSessionEntryTest::expectEqualSessionEntries( | 51 void CRWSessionEntryTest::expectEqualSessionEntries( |
53 CRWSessionEntry* entry1, | 52 CRWSessionEntry* entry1, |
54 CRWSessionEntry* entry2, | 53 CRWSessionEntry* entry2, |
55 ui::PageTransition transition) { | 54 ui::PageTransition transition) { |
56 web::NavigationItemImpl* navItem1 = entry1.navigationItemImpl; | 55 web::NavigationItemImpl* navItem1 = entry1.navigationItemImpl; |
57 web::NavigationItemImpl* navItem2 = entry2.navigationItemImpl; | 56 web::NavigationItemImpl* navItem2 = entry2.navigationItemImpl; |
58 // url is not compared because it could differ after copy or archive. | 57 // url is not compared because it could differ after copy or archive. |
59 EXPECT_EQ(navItem1->GetVirtualURL(), navItem2->GetVirtualURL()); | 58 EXPECT_EQ(navItem1->GetVirtualURL(), navItem2->GetVirtualURL()); |
60 EXPECT_EQ(navItem1->GetReferrer().url, navItem2->GetReferrer().url); | 59 EXPECT_EQ(navItem1->GetReferrer().url, navItem2->GetReferrer().url); |
61 EXPECT_EQ(navItem1->GetTimestamp(), navItem2->GetTimestamp()); | 60 EXPECT_EQ(navItem1->GetTimestamp(), navItem2->GetTimestamp()); |
62 EXPECT_EQ(navItem1->GetTitle(), navItem2->GetTitle()); | 61 EXPECT_EQ(navItem1->GetTitle(), navItem2->GetTitle()); |
63 EXPECT_EQ(navItem1->GetPageDisplayState(), navItem2->GetPageDisplayState()); | 62 EXPECT_EQ(navItem1->GetPageDisplayState(), navItem2->GetPageDisplayState()); |
64 EXPECT_EQ(navItem1->ShouldSkipRepostFormConfirmation(), | 63 EXPECT_EQ(navItem1->ShouldSkipRepostFormConfirmation(), |
65 navItem2->ShouldSkipRepostFormConfirmation()); | 64 navItem2->ShouldSkipRepostFormConfirmation()); |
66 EXPECT_EQ(navItem1->IsOverridingUserAgent(), | 65 EXPECT_EQ(navItem1->IsOverridingUserAgent(), |
67 navItem2->IsOverridingUserAgent()); | 66 navItem2->IsOverridingUserAgent()); |
68 EXPECT_TRUE((!navItem1->HasPostData() && !navItem2->HasPostData()) || | 67 EXPECT_TRUE((!navItem1->HasPostData() && !navItem2->HasPostData()) || |
69 [navItem1->GetPostData() isEqualToData:navItem2->GetPostData()]); | 68 [navItem1->GetPostData() isEqualToData:navItem2->GetPostData()]); |
70 EXPECT_TRUE(ui::PageTransitionTypeIncludingQualifiersIs( | 69 EXPECT_TRUE(ui::PageTransitionTypeIncludingQualifiersIs( |
71 navItem2->GetTransitionType(), transition)); | 70 navItem2->GetTransitionType(), transition)); |
72 EXPECT_NSEQ(navItem1->GetHttpRequestHeaders(), | 71 EXPECT_NSEQ(navItem1->GetHttpRequestHeaders(), |
73 navItem2->GetHttpRequestHeaders()); | 72 navItem2->GetHttpRequestHeaders()); |
74 } | 73 } |
75 | 74 |
76 TEST_F(CRWSessionEntryTest, Description) { | 75 TEST_F(CRWSessionEntryTest, Description) { |
77 [sessionEntry_ navigationItem]->SetTitle(base::SysNSStringToUTF16(@"Title")); | 76 [_sessionEntry navigationItem]->SetTitle(base::SysNSStringToUTF16(@"Title")); |
78 EXPECT_NSEQ([sessionEntry_ description], | 77 EXPECT_NSEQ([_sessionEntry description], |
79 @"url:http://init.test/ originalurl:http://init.test/ " | 78 @"url:http://init.test/ originalurl:http://init.test/ " |
80 @"title:Title transition:2 displayState:{ scrollOffset:(nan, " | 79 @"title:Title transition:2 displayState:{ scrollOffset:(nan, " |
81 @"nan), zoomScaleRange:(nan, nan), zoomScale:nan } desktopUA:0"); | 80 @"nan), zoomScaleRange:(nan, nan), zoomScale:nan } desktopUA:0"); |
82 } | 81 } |
83 | 82 |
84 TEST_F(CRWSessionEntryTest, CopyWithZone) { | |
85 CRWSessionEntry* sessionEntry2 = [sessionEntry_ copy]; | |
86 EXPECT_NE(sessionEntry_, sessionEntry2); | |
87 expectEqualSessionEntries( | |
88 sessionEntry_, sessionEntry2, | |
89 [sessionEntry_ navigationItem]->GetTransitionType()); | |
90 } | |
91 | |
92 TEST_F(CRWSessionEntryTest, EmptyVirtualUrl) { | 83 TEST_F(CRWSessionEntryTest, EmptyVirtualUrl) { |
93 EXPECT_EQ(GURL("http://init.test/"), | 84 EXPECT_EQ(GURL("http://init.test/"), |
94 [sessionEntry_ navigationItem]->GetURL()); | 85 [_sessionEntry navigationItem]->GetURL()); |
95 } | 86 } |
96 | 87 |
97 TEST_F(CRWSessionEntryTest, NonEmptyVirtualUrl) { | 88 TEST_F(CRWSessionEntryTest, NonEmptyVirtualUrl) { |
98 web::NavigationItem* item = [sessionEntry_ navigationItem]; | 89 web::NavigationItem* item = [_sessionEntry navigationItem]; |
99 item->SetVirtualURL(GURL("http://user.friendly")); | 90 item->SetVirtualURL(GURL("http://user.friendly")); |
100 EXPECT_EQ(GURL("http://user.friendly/"), item->GetVirtualURL()); | 91 EXPECT_EQ(GURL("http://user.friendly/"), item->GetVirtualURL()); |
101 EXPECT_EQ(GURL("http://init.test/"), item->GetURL()); | 92 EXPECT_EQ(GURL("http://init.test/"), item->GetURL()); |
102 } | 93 } |
103 | 94 |
104 TEST_F(CRWSessionEntryTest, EmptyDescription) { | 95 TEST_F(CRWSessionEntryTest, EmptyDescription) { |
105 EXPECT_GT([[sessionEntry_ description] length], 0U); | 96 EXPECT_GT([[_sessionEntry description] length], 0U); |
106 } | 97 } |
OLD | NEW |