| 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 #include "ios/web/web_state/navigation_context_impl.h" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 EXPECT_EQ(navigation2_, [states_ lastAddedNavigation]); | 62 EXPECT_EQ(navigation2_, [states_ lastAddedNavigation]); |
| 63 EXPECT_EQ(WKNavigationState::REQUESTED, [states_ lastAddedNavigationState]); | 63 EXPECT_EQ(WKNavigationState::REQUESTED, [states_ lastAddedNavigationState]); |
| 64 | 64 |
| 65 // navigation_2 is still the latest. | 65 // navigation_2 is still the latest. |
| 66 [states_ setState:WKNavigationState::STARTED forNavigation:navigation2_]; | 66 [states_ setState:WKNavigationState::STARTED forNavigation:navigation2_]; |
| 67 EXPECT_EQ(navigation2_, [states_ lastAddedNavigation]); | 67 EXPECT_EQ(navigation2_, [states_ lastAddedNavigation]); |
| 68 EXPECT_EQ(WKNavigationState::STARTED, [states_ lastAddedNavigationState]); | 68 EXPECT_EQ(WKNavigationState::STARTED, [states_ lastAddedNavigationState]); |
| 69 | 69 |
| 70 // navigation_3 is added later and hence the latest. | 70 // navigation_3 is added later and hence the latest. |
| 71 std::unique_ptr<web::NavigationContextImpl> context = | 71 std::unique_ptr<web::NavigationContextImpl> context = |
| 72 NavigationContextImpl::CreateNavigationContext(nullptr /*web_state*/, | 72 NavigationContextImpl::CreateNavigationContext( |
| 73 GURL(kTestUrl1)); | 73 nullptr /*web_state*/, GURL(kTestUrl1), |
| 74 ui::PageTransition::PAGE_TRANSITION_SERVER_REDIRECT); |
| 74 [states_ setContext:std::move(context) forNavigation:navigation3_]; | 75 [states_ setContext:std::move(context) forNavigation:navigation3_]; |
| 75 EXPECT_EQ(navigation3_, [states_ lastAddedNavigation]); | 76 EXPECT_EQ(navigation3_, [states_ lastAddedNavigation]); |
| 76 EXPECT_EQ(WKNavigationState::NONE, [states_ lastAddedNavigationState]); | 77 EXPECT_EQ(WKNavigationState::NONE, [states_ lastAddedNavigationState]); |
| 77 } | 78 } |
| 78 | 79 |
| 79 // Tests |setContext:forNavigation:| and |contextForNavigation:| methods. | 80 // Tests |setContext:forNavigation:| and |contextForNavigation:| methods. |
| 80 TEST_F(CRWWKNavigationStatesTest, Context) { | 81 TEST_F(CRWWKNavigationStatesTest, Context) { |
| 81 EXPECT_FALSE([states_ contextForNavigation:navigation1_]); | 82 EXPECT_FALSE([states_ contextForNavigation:navigation1_]); |
| 82 EXPECT_FALSE([states_ contextForNavigation:navigation2_]); | 83 EXPECT_FALSE([states_ contextForNavigation:navigation2_]); |
| 83 EXPECT_FALSE([states_ contextForNavigation:navigation3_]); | 84 EXPECT_FALSE([states_ contextForNavigation:navigation3_]); |
| 84 | 85 |
| 85 // Add first context. | 86 // Add first context. |
| 86 std::unique_ptr<web::NavigationContextImpl> context1 = | 87 std::unique_ptr<web::NavigationContextImpl> context1 = |
| 87 NavigationContextImpl::CreateNavigationContext(nullptr /*web_state*/, | 88 NavigationContextImpl::CreateNavigationContext( |
| 88 GURL(kTestUrl1)); | 89 nullptr /*web_state*/, GURL(kTestUrl1), |
| 90 ui::PageTransition::PAGE_TRANSITION_RELOAD); |
| 89 context1->SetIsSameDocument(true); | 91 context1->SetIsSameDocument(true); |
| 90 [states_ setContext:std::move(context1) forNavigation:navigation1_]; | 92 [states_ setContext:std::move(context1) forNavigation:navigation1_]; |
| 91 EXPECT_FALSE([states_ contextForNavigation:navigation2_]); | 93 EXPECT_FALSE([states_ contextForNavigation:navigation2_]); |
| 92 EXPECT_FALSE([states_ contextForNavigation:navigation3_]); | 94 EXPECT_FALSE([states_ contextForNavigation:navigation3_]); |
| 93 ASSERT_TRUE([states_ contextForNavigation:navigation1_]); | 95 ASSERT_TRUE([states_ contextForNavigation:navigation1_]); |
| 94 EXPECT_EQ(GURL(kTestUrl1), | 96 EXPECT_EQ(GURL(kTestUrl1), |
| 95 [states_ contextForNavigation:navigation1_]->GetUrl()); | 97 [states_ contextForNavigation:navigation1_]->GetUrl()); |
| 96 EXPECT_TRUE([states_ contextForNavigation:navigation1_]->IsSameDocument()); | 98 EXPECT_TRUE([states_ contextForNavigation:navigation1_]->IsSameDocument()); |
| 97 EXPECT_FALSE([states_ contextForNavigation:navigation1_]->IsErrorPage()); | 99 EXPECT_FALSE([states_ contextForNavigation:navigation1_]->IsErrorPage()); |
| 98 | 100 |
| 99 // Replace existing context. | 101 // Replace existing context. |
| 100 std::unique_ptr<web::NavigationContextImpl> context2 = | 102 std::unique_ptr<web::NavigationContextImpl> context2 = |
| 101 NavigationContextImpl::CreateNavigationContext(nullptr /*web_state*/, | 103 NavigationContextImpl::CreateNavigationContext( |
| 102 GURL(kTestUrl2)); | 104 nullptr /*web_state*/, GURL(kTestUrl2), |
| 105 ui::PageTransition::PAGE_TRANSITION_GENERATED); |
| 103 context2->SetIsErrorPage(true); | 106 context2->SetIsErrorPage(true); |
| 104 [states_ setContext:std::move(context2) forNavigation:navigation1_]; | 107 [states_ setContext:std::move(context2) forNavigation:navigation1_]; |
| 105 EXPECT_FALSE([states_ contextForNavigation:navigation2_]); | 108 EXPECT_FALSE([states_ contextForNavigation:navigation2_]); |
| 106 EXPECT_FALSE([states_ contextForNavigation:navigation3_]); | 109 EXPECT_FALSE([states_ contextForNavigation:navigation3_]); |
| 107 ASSERT_TRUE([states_ contextForNavigation:navigation1_]); | 110 ASSERT_TRUE([states_ contextForNavigation:navigation1_]); |
| 108 EXPECT_EQ(GURL(kTestUrl2), | 111 EXPECT_EQ(GURL(kTestUrl2), |
| 109 [states_ contextForNavigation:navigation1_]->GetUrl()); | 112 [states_ contextForNavigation:navigation1_]->GetUrl()); |
| 110 EXPECT_FALSE([states_ contextForNavigation:navigation1_]->IsSameDocument()); | 113 EXPECT_FALSE([states_ contextForNavigation:navigation1_]->IsSameDocument()); |
| 111 EXPECT_TRUE([states_ contextForNavigation:navigation1_]->IsErrorPage()); | 114 EXPECT_TRUE([states_ contextForNavigation:navigation1_]->IsErrorPage()); |
| 112 } | 115 } |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 [states_ removeNavigation:navigation2_]; | 185 [states_ removeNavigation:navigation2_]; |
| 183 ASSERT_EQ(1U, [states_ pendingNavigations].count); | 186 ASSERT_EQ(1U, [states_ pendingNavigations].count); |
| 184 EXPECT_TRUE([[states_ pendingNavigations] containsObject:navigation3_]); | 187 EXPECT_TRUE([[states_ pendingNavigations] containsObject:navigation3_]); |
| 185 | 188 |
| 186 // Fail navigation_3. | 189 // Fail navigation_3. |
| 187 [states_ setState:WKNavigationState::FAILED forNavigation:navigation3_]; | 190 [states_ setState:WKNavigationState::FAILED forNavigation:navigation3_]; |
| 188 ASSERT_EQ(0U, [states_ pendingNavigations].count); | 191 ASSERT_EQ(0U, [states_ pendingNavigations].count); |
| 189 } | 192 } |
| 190 | 193 |
| 191 } // namespace web | 194 } // namespace web |
| OLD | NEW |