| Index: net/url_request/url_request_http_job_unittest.cc
|
| diff --git a/net/url_request/url_request_http_job_unittest.cc b/net/url_request/url_request_http_job_unittest.cc
|
| index c44905536c529543a2a4cd4be1012b02f6924a53..c3db5757805d5c00213c96c6d54d0c3c2694d82c 100644
|
| --- a/net/url_request/url_request_http_job_unittest.cc
|
| +++ b/net/url_request/url_request_http_job_unittest.cc
|
| @@ -40,6 +40,11 @@
|
| #include "url/gurl.h"
|
| #include "url/url_constants.h"
|
|
|
| +#if defined(OS_ANDROID)
|
| +#include "base/android/build_info.h"
|
| +#include "net/android/network_library.h"
|
| +#endif
|
| +
|
| using net::test::IsError;
|
| using net::test::IsOk;
|
|
|
| @@ -938,6 +943,38 @@ TEST_F(URLRequestHttpJobWithBrotliSupportTest, BrotliAdvertisement) {
|
| request->GetTotalReceivedBytes());
|
| }
|
|
|
| +#if defined(OS_ANDROID)
|
| +TEST_F(URLRequestHttpJobTest, AndroidCleartextPermittedTest) {
|
| + context_.set_check_cleartext_permitted(true);
|
| + android::SetUpSecurityPolicyForTesting();
|
| +
|
| + struct TestCase {
|
| + const char* url;
|
| + bool blocked;
|
| + } cases[] = {
|
| + {"http://blocked.test/", true}, {"https://blocked.test/", false},
|
| + };
|
| +
|
| + for (const TestCase& test : cases) {
|
| + TestDelegate delegate;
|
| + std::unique_ptr<URLRequest> request =
|
| + context_.CreateRequest(GURL(test.url), DEFAULT_PRIORITY, &delegate);
|
| + request->Start();
|
| + base::RunLoop().Run();
|
| +
|
| + int sdk_int = base::android::BuildInfo::GetInstance()->sdk_int();
|
| + bool expect_blocked =
|
| + (sdk_int >= base::android::SDK_VERSION_MARSHMALLOW && test.blocked);
|
| + if (expect_blocked) {
|
| + EXPECT_THAT(delegate.request_status(), IsError(ERR_BLOCKED_BY_CLIENT));
|
| + } else {
|
| + // Should fail since there's no test server running
|
| + EXPECT_THAT(delegate.request_status(), IsError(ERR_FAILED));
|
| + }
|
| + }
|
| +}
|
| +#endif
|
| +
|
| // This base class just serves to set up some things before the TestURLRequest
|
| // constructor is called.
|
| class URLRequestHttpJobWebSocketTestBase : public ::testing::Test {
|
|
|