| 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 |