| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_WEB_PUBLIC_TEST_ERROR_TEST_UTIL_H_ |
| #define IOS_WEB_PUBLIC_TEST_ERROR_TEST_UTIL_H_ |
| |
| #include <string> |
| #include <utility> |
| #include <vector> |
| |
| #import <Foundation/Foundation.h> |
| |
| #include "net/cert/cert_status_flags.h" |
| |
| class GURL; |
| |
| namespace web { |
| |
| class WebState; |
| |
| namespace testing { |
| |
| // Creates an NSURLErrorDomain error for NSURLErrorNetworkConnectionLost with |
| // its expected underlying error chain. |
| NSError* CreateConnectionLostError(); |
| |
| // Creates Chrome specific error from a regular NSError. Returned error has the |
| // same format and structure as errors provided in ios/web callbacks. |
| NSError* CreateTestNetError(NSError* error); |
| |
| // Creates an NSError using the domains and codes in |domain_code_pairs|. The |
| // returned NSError will use the domain and code from the first pair in the |
| // list. Each subsequent pair in the list will be used to create the underlying |
| // error for the previous pair in the list. Returns nil if |domain_code_pairs| |
| // is empty. |
| NSError* CreateErrorWithUnderlyingErrorChain( |
| const std::vector<std::pair<NSErrorDomain, NSInteger>>& domain_code_pairs); |
| |
| // Builds the text for an error page in TestWebClient. |error| must be |
| // non-null. |
| std::string GetErrorText(WebState* web_state, |
| const GURL& url, |
| NSError* error, |
| bool is_post, |
| bool is_off_the_record, |
| net::CertStatus cert_status); |
| |
| } // namespace testing |
| } // namespace web |
| |
| #endif // IOS_WEB_PUBLIC_TEST_ERROR_TEST_UTIL_H_ |