| Index: ios/chrome/browser/web/http_auth_egtest.mm
|
| diff --git a/ios/chrome/browser/web/http_auth_egtest.mm b/ios/chrome/browser/web/http_auth_egtest.mm
|
| index 717f2ac366a31bfd11b90f2872d19092d9e63111..ef7c5ee62adc569ba115b9cef17be22f86182687 100644
|
| --- a/ios/chrome/browser/web/http_auth_egtest.mm
|
| +++ b/ios/chrome/browser/web/http_auth_egtest.mm
|
| @@ -4,9 +4,7 @@
|
|
|
| #import <EarlGrey/EarlGrey.h>
|
|
|
| -#include "base/base64.h"
|
| #include "base/memory/ptr_util.h"
|
| -#include "base/strings/stringprintf.h"
|
| #include "base/strings/sys_string_conversions.h"
|
| #include "components/strings/grit/components_strings.h"
|
| #include "ios/chrome/browser/ui/ui_util.h"
|
| @@ -17,7 +15,7 @@
|
| #import "ios/testing/wait_util.h"
|
| #import "ios/web/public/test/http_server.h"
|
| #include "ios/web/public/test/http_server_util.h"
|
| -#include "ios/web/public/test/response_providers/html_response_provider.h"
|
| +#import "ios/web/public/test/response_providers/http_auth_response_provider.h"
|
| #import "ios/testing/earl_grey/disabled_test_macros.h"
|
| #include "ui/base/l10n/l10n_util_mac.h"
|
| #include "url/gurl.h"
|
| @@ -28,67 +26,6 @@ using chrome_test_util::webViewContainingText;
|
|
|
| namespace {
|
|
|
| -// Serves a page which requires Basic HTTP Authentication.
|
| -class HttpAuthResponseProvider : public HtmlResponseProvider {
|
| - public:
|
| - // Constructs provider which will respond to the given |url| and will use the
|
| - // given authenticaion |realm|. |username| and |password| are credentials
|
| - // required for sucessfull authentication. Use different realms and
|
| - // username/password combination for different tests to prevent credentials
|
| - // caching.
|
| - HttpAuthResponseProvider(const GURL& url,
|
| - const std::string& realm,
|
| - const std::string& username,
|
| - const std::string& password)
|
| - : url_(url), realm_(realm), username_(username), password_(password) {}
|
| - ~HttpAuthResponseProvider() override {}
|
| -
|
| - // HtmlResponseProvider overrides:
|
| - bool CanHandleRequest(const Request& request) override {
|
| - return request.url == url_;
|
| - }
|
| - void GetResponseHeadersAndBody(
|
| - const Request& request,
|
| - scoped_refptr<net::HttpResponseHeaders>* headers,
|
| - std::string* response_body) override {
|
| - if (HeadersHaveValidCredentials(request.headers)) {
|
| - *response_body = page_text();
|
| - *headers = GetDefaultResponseHeaders();
|
| - } else {
|
| - *headers = GetResponseHeaders("", net::HTTP_UNAUTHORIZED);
|
| - (*headers)->AddHeader(base::StringPrintf(
|
| - "WWW-Authenticate: Basic realm=\"%s\"", realm_.c_str()));
|
| - }
|
| - }
|
| -
|
| - // Text returned in response if authentication was successfull.
|
| - static std::string page_text() { return "authenticated"; }
|
| -
|
| - private:
|
| - // Check if authorization header has valid credintials:
|
| - // https://tools.ietf.org/html/rfc1945#section-10.2
|
| - bool HeadersHaveValidCredentials(const net::HttpRequestHeaders& headers) {
|
| - std::string header;
|
| - if (headers.GetHeader(net::HttpRequestHeaders::kAuthorization, &header)) {
|
| - std::string auth =
|
| - base::StringPrintf("%s:%s", username_.c_str(), password_.c_str());
|
| - std::string encoded_auth;
|
| - base::Base64Encode(auth, &encoded_auth);
|
| - return header == base::StringPrintf("Basic %s", encoded_auth.c_str());
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - // URL this provider responds to.
|
| - GURL url_;
|
| - // HTTP Authentication realm.
|
| - std::string realm_;
|
| - // Correct username to pass authentication
|
| - std::string username_;
|
| - // Correct password to pass authentication
|
| - std::string password_;
|
| -};
|
| -
|
| // Returns matcher for HTTP Authentication dialog.
|
| id<GREYMatcher> httpAuthDialog() {
|
| NSString* title = l10n_util::GetNSStringWithFixup(IDS_LOGIN_DIALOG_TITLE);
|
| @@ -143,7 +80,7 @@ void WaitForHttpAuthDialog() {
|
| }
|
|
|
| GURL URL = web::test::HttpServer::MakeUrl("http://good-auth");
|
| - web::test::SetUpHttpServer(base::MakeUnique<HttpAuthResponseProvider>(
|
| + web::test::SetUpHttpServer(base::MakeUnique<web::HttpAuthResponseProvider>(
|
| URL, "GoodRealm", "gooduser", "goodpass"));
|
| chrome_test_util::LoadUrl(URL);
|
| WaitForHttpAuthDialog();
|
| @@ -155,7 +92,7 @@ void WaitForHttpAuthDialog() {
|
| performAction:grey_typeText(@"goodpass")];
|
| [[EarlGrey selectElementWithMatcher:loginButton()] performAction:grey_tap()];
|
|
|
| - const std::string pageText = HttpAuthResponseProvider::page_text();
|
| + const std::string pageText = web::HttpAuthResponseProvider::page_text();
|
| [[EarlGrey selectElementWithMatcher:webViewContainingText(pageText)]
|
| assertWithMatcher:grey_notNil()];
|
| }
|
| @@ -170,7 +107,7 @@ void WaitForHttpAuthDialog() {
|
| }
|
|
|
| GURL URL = web::test::HttpServer::MakeUrl("http://bad-auth");
|
| - web::test::SetUpHttpServer(base::MakeUnique<HttpAuthResponseProvider>(
|
| + web::test::SetUpHttpServer(base::MakeUnique<web::HttpAuthResponseProvider>(
|
| URL, "BadRealm", "baduser", "badpass"));
|
| chrome_test_util::LoadUrl(URL);
|
| WaitForHttpAuthDialog();
|
| @@ -196,7 +133,7 @@ void WaitForHttpAuthDialog() {
|
| }
|
|
|
| GURL URL = web::test::HttpServer::MakeUrl("http://cancel-auth");
|
| - web::test::SetUpHttpServer(base::MakeUnique<HttpAuthResponseProvider>(
|
| + web::test::SetUpHttpServer(base::MakeUnique<web::HttpAuthResponseProvider>(
|
| URL, "CancellingRealm", "", ""));
|
| chrome_test_util::LoadUrl(URL);
|
| WaitForHttpAuthDialog();
|
|
|