OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/web_state/ui/crw_wk_navigation_states.h" | 5 #import "ios/web/web_state/ui/crw_wk_navigation_states.h" |
6 | 6 |
7 #import <WebKit/WebKit.h> | 7 #import <WebKit/WebKit.h> |
8 | 8 |
9 #import "base/mac/scoped_nsobject.h" | 9 #import "base/mac/scoped_nsobject.h" |
10 #include "ios/web/web_state/navigation_context_impl.h" | 10 #import "ios/web/web_state/navigation_context_impl.h" |
11 #include "net/http/http_response_headers.h" | 11 #include "net/http/http_response_headers.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
13 #include "testing/platform_test.h" | 13 #include "testing/platform_test.h" |
14 #include "url/gurl.h" | 14 #include "url/gurl.h" |
15 | 15 |
16 namespace { | 16 namespace { |
17 const char kTestUrl1[] = "https://test1.test/"; | 17 const char kTestUrl1[] = "https://test1.test/"; |
18 const char kTestUrl2[] = "https://test2.test/"; | 18 const char kTestUrl2[] = "https://test2.test/"; |
19 } | 19 } |
20 | 20 |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 NavigationContextImpl::CreateNavigationContext(nullptr /*web_state*/, | 87 NavigationContextImpl::CreateNavigationContext(nullptr /*web_state*/, |
88 GURL(kTestUrl1)); | 88 GURL(kTestUrl1)); |
89 context1->SetIsSameDocument(true); | 89 context1->SetIsSameDocument(true); |
90 [states_ setContext:std::move(context1) forNavigation:navigation1_]; | 90 [states_ setContext:std::move(context1) forNavigation:navigation1_]; |
91 EXPECT_FALSE([states_ contextForNavigation:navigation2_]); | 91 EXPECT_FALSE([states_ contextForNavigation:navigation2_]); |
92 EXPECT_FALSE([states_ contextForNavigation:navigation3_]); | 92 EXPECT_FALSE([states_ contextForNavigation:navigation3_]); |
93 ASSERT_TRUE([states_ contextForNavigation:navigation1_]); | 93 ASSERT_TRUE([states_ contextForNavigation:navigation1_]); |
94 EXPECT_EQ(GURL(kTestUrl1), | 94 EXPECT_EQ(GURL(kTestUrl1), |
95 [states_ contextForNavigation:navigation1_]->GetUrl()); | 95 [states_ contextForNavigation:navigation1_]->GetUrl()); |
96 EXPECT_TRUE([states_ contextForNavigation:navigation1_]->IsSameDocument()); | 96 EXPECT_TRUE([states_ contextForNavigation:navigation1_]->IsSameDocument()); |
97 EXPECT_FALSE([states_ contextForNavigation:navigation1_]->IsErrorPage()); | 97 EXPECT_FALSE([states_ contextForNavigation:navigation1_]->GetError()); |
98 | 98 |
99 // Replace existing context. | 99 // Replace existing context. |
100 std::unique_ptr<web::NavigationContextImpl> context2 = | 100 std::unique_ptr<web::NavigationContextImpl> context2 = |
101 NavigationContextImpl::CreateNavigationContext(nullptr /*web_state*/, | 101 NavigationContextImpl::CreateNavigationContext(nullptr /*web_state*/, |
102 GURL(kTestUrl2)); | 102 GURL(kTestUrl2)); |
103 context2->SetIsErrorPage(true); | 103 NSError* error = [[[NSError alloc] init] autorelease]; |
| 104 context2->SetError(error); |
104 [states_ setContext:std::move(context2) forNavigation:navigation1_]; | 105 [states_ setContext:std::move(context2) forNavigation:navigation1_]; |
105 EXPECT_FALSE([states_ contextForNavigation:navigation2_]); | 106 EXPECT_FALSE([states_ contextForNavigation:navigation2_]); |
106 EXPECT_FALSE([states_ contextForNavigation:navigation3_]); | 107 EXPECT_FALSE([states_ contextForNavigation:navigation3_]); |
107 ASSERT_TRUE([states_ contextForNavigation:navigation1_]); | 108 ASSERT_TRUE([states_ contextForNavigation:navigation1_]); |
108 EXPECT_EQ(GURL(kTestUrl2), | 109 EXPECT_EQ(GURL(kTestUrl2), |
109 [states_ contextForNavigation:navigation1_]->GetUrl()); | 110 [states_ contextForNavigation:navigation1_]->GetUrl()); |
110 EXPECT_FALSE([states_ contextForNavigation:navigation1_]->IsSameDocument()); | 111 EXPECT_FALSE([states_ contextForNavigation:navigation1_]->IsSameDocument()); |
111 EXPECT_TRUE([states_ contextForNavigation:navigation1_]->IsErrorPage()); | 112 EXPECT_EQ(error, [states_ contextForNavigation:navigation1_]->GetError()); |
112 } | 113 } |
113 | 114 |
114 // Tests null WKNavigation object. | 115 // Tests null WKNavigation object. |
115 TEST_F(CRWWKNavigationStatesTest, NullNavigation) { | 116 TEST_F(CRWWKNavigationStatesTest, NullNavigation) { |
116 // navigation_1 is the only navigation and it is the latest. | 117 // navigation_1 is the only navigation and it is the latest. |
117 [states_ setState:WKNavigationState::REQUESTED forNavigation:navigation1_]; | 118 [states_ setState:WKNavigationState::REQUESTED forNavigation:navigation1_]; |
118 ASSERT_EQ(navigation1_, [states_ lastAddedNavigation]); | 119 ASSERT_EQ(navigation1_, [states_ lastAddedNavigation]); |
119 EXPECT_EQ(WKNavigationState::REQUESTED, [states_ lastAddedNavigationState]); | 120 EXPECT_EQ(WKNavigationState::REQUESTED, [states_ lastAddedNavigationState]); |
120 | 121 |
121 // null navigation is added later and hence the latest. | 122 // null navigation is added later and hence the latest. |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 [states_ removeNavigation:navigation2_]; | 183 [states_ removeNavigation:navigation2_]; |
183 ASSERT_EQ(1U, [states_ pendingNavigations].count); | 184 ASSERT_EQ(1U, [states_ pendingNavigations].count); |
184 EXPECT_TRUE([[states_ pendingNavigations] containsObject:navigation3_]); | 185 EXPECT_TRUE([[states_ pendingNavigations] containsObject:navigation3_]); |
185 | 186 |
186 // Fail navigation_3. | 187 // Fail navigation_3. |
187 [states_ setState:WKNavigationState::FAILED forNavigation:navigation3_]; | 188 [states_ setState:WKNavigationState::FAILED forNavigation:navigation3_]; |
188 ASSERT_EQ(0U, [states_ pendingNavigations].count); | 189 ASSERT_EQ(0U, [states_ pendingNavigations].count); |
189 } | 190 } |
190 | 191 |
191 } // namespace web | 192 } // namespace web |
OLD | NEW |