| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef FUCHSIA_WEB_WEBENGINE_BROWSER_FAKE_NAVIGATION_POLICY_PROVIDER_H_ |
| #define FUCHSIA_WEB_WEBENGINE_BROWSER_FAKE_NAVIGATION_POLICY_PROVIDER_H_ |
| |
| #include <fuchsia/web/cpp/fidl.h> |
| #include <fuchsia/web/cpp/fidl_test_base.h> |
| |
| class FakeNavigationPolicyProvider |
| : public fuchsia::web::testing::NavigationPolicyProvider_TestBase { |
| public: |
| FakeNavigationPolicyProvider(); |
| ~FakeNavigationPolicyProvider() override; |
| |
| FakeNavigationPolicyProvider(const FakeNavigationPolicyProvider&) = delete; |
| FakeNavigationPolicyProvider& operator=(const FakeNavigationPolicyProvider&) = |
| delete; |
| |
| void set_should_abort_navigation(bool should_abort_navigation) { |
| should_abort_navigation_ = should_abort_navigation; |
| } |
| |
| fuchsia::web::RequestedNavigation* requested_navigation() { |
| return &requested_navigation_; |
| } |
| |
| int num_evaluated_navigations() { return num_evaluated_navigations_; } |
| |
| // fuchsia::web::NavigationPolicyProvider implementation. |
| void EvaluateRequestedNavigation( |
| fuchsia::web::RequestedNavigation requested_navigation, |
| EvaluateRequestedNavigationCallback callback) final; |
| void NotImplemented_(const std::string& name) final; |
| |
| private: |
| fuchsia::web::RequestedNavigation requested_navigation_; |
| bool should_abort_navigation_ = false; |
| int num_evaluated_navigations_ = 0; |
| }; |
| |
| #endif // FUCHSIA_WEB_WEBENGINE_BROWSER_FAKE_NAVIGATION_POLICY_PROVIDER_H_ |