| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_CHROME_BROWSER_TRANSLATE_MODEL_TRANSLATE_APP_INTERFACE_H_ |
| #define IOS_CHROME_BROWSER_TRANSLATE_MODEL_TRANSLATE_APP_INTERFACE_H_ |
| |
| #import <Foundation/Foundation.h> |
| |
| @interface TranslateAppInterface : NSObject |
| |
| // Sets up the app for testing. `translateScriptServer` is the URL |
| // for the server that can serve up translate scripts to app. |
| + (void)setUpWithScriptServer:(NSString*)translateScriptServerURL; |
| |
| // Tears down the testing set up for the app. |
| + (void)tearDown; |
| |
| // Registers an observer of the IOSLanguageDetectionTabHelper to capture |
| // the details of webpage language detection. The captured details can be |
| // used for test verification. |
| + (void)setUpLanguageDetectionTabHelperObserver; |
| |
| // Deallocates the observer for IOSLanguageDetectionTabHelper. |
| + (void)tearDownLanguageDetectionTabHelperObserver; |
| |
| // Resets the language detection state kept in the observer of |
| // IOSLanguageDetectionTabHelper. |
| + (void)resetLanguageDetectionTabHelperObserver; |
| |
| // Returns whether a language information was detected on the webpage. |
| + (BOOL)isLanguageDetected; |
| |
| // Returns the language code of the webpage indicated in the Content-Language |
| // HTTP header. |
| + (NSString*)contentLanguage; |
| |
| // Returns the language code indicated in the language attribute of the HTML |
| // element. |
| + (NSString*)htmlRootLanguage; |
| |
| // Returns the language code for the language determined from the webpage. |
| + (NSString*)adoptedLanguage; |
| |
| + (void)setAutoTranslateFromLanguage:(NSString*)source |
| toLanguage:(NSString*)target; |
| |
| /// Whether user has set a preference to translate from `source` language to |
| // `target` language. |
| + (BOOL)shouldAutoTranslateFromLanguage:(NSString*)source |
| toLanguage:(NSString*)target; |
| |
| // Whether user has set a preference to block the translation of `language`. |
| + (BOOL)isBlockedLanguage:(NSString*)language; |
| |
| // Whether user has set a preference to translate any pages on `hostName`. |
| + (BOOL)isBlockedSite:(NSString*)hostName; |
| |
| // The following are Translate Infobar UI constants. Test client needs to know |
| // to verify that Translate Infobar is behaving correctly. |
| + (int)infobarAutoAlwaysThreshold; |
| + (int)infobarAutoNeverThreshold; |
| + (int)infobarMaximumNumberOfAutoAlways; |
| + (int)infobarMaximumNumberOfAutoNever; |
| |
| @end |
| |
| #endif // IOS_CHROME_BROWSER_TRANSLATE_MODEL_TRANSLATE_APP_INTERFACE_H_ |