Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Unified Diff: net/url_request/url_request_http_job_unittest.cc

Issue 2546213003: Implement net/ support for Android's NetworkSecurityPolicy (Closed)
Patch Set: fixes Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..dbaea28f76e0115df4041995cea3b3a60e93bfeb 100644
--- a/net/url_request/url_request_http_job_unittest.cc
+++ b/net/url_request/url_request_http_job_unittest.cc
@@ -40,6 +40,12 @@
#include "url/gurl.h"
#include "url/url_constants.h"
+#if defined(OS_ANDROID)
+#include "base/android/build_info.h"
+#include "base/android/jni_android.h"
+#include "jni/AndroidNetworkLibraryTestUtil_jni.h"
+#endif
+
using net::test::IsError;
using net::test::IsOk;
@@ -938,6 +944,46 @@ TEST_F(URLRequestHttpJobWithBrotliSupportTest, BrotliAdvertisement) {
request->GetTotalReceivedBytes());
}
+#if defined(OS_ANDROID)
+TEST_F(URLRequestHttpJobTest, AndroidCleartextPermittedTest) {
+ context_.set_check_cleartext_permitted(true);
+
+ struct TestCase {
+ const char* url;
+ bool cleartext_permitted;
+ bool should_block;
+ } cases[] = {
+ {"http://blocked.test/", true, false},
+ {"https://blocked.test/", true, false},
+ {"http://blocked.test/", false, true},
+ {"https://blocked.test/", false, false},
+ };
+
+ for (const TestCase& test : cases) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+ Java_AndroidNetworkLibraryTestUtil_setUpSecurityPolicyForTesting(
+ env, test.cleartext_permitted);
+
+ 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.should_block);
+ if (expect_blocked) {
+ EXPECT_THAT(delegate.request_status(),
+ IsError(ERR_CLEARTEXT_NOT_PERMITTED));
+ } 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 {
« net/url_request/url_request_http_job.cc ('K') | « net/url_request/url_request_http_job.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698