Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / components / cronet / android / test / mock_url_request_job_util.cc
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "mock_url_request_job_util.h"
6
7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h"
9 #include "base/files/file_path.h"
10 #include "base/path_service.h"
11 #include "base/threading/sequenced_worker_pool.h"
12 #include "jni/MockUrlRequestJobUtil_jni.h"
13 #include "net/test/url_request/url_request_failed_job.h"
14 #include "net/test/url_request/url_request_mock_http_job.h"
15
16 namespace cronet {
17
18 void AddUrlInterceptors(JNIEnv* env, jclass jcaller) {
19   base::FilePath test_files_root;
20   PathService::Get(base::DIR_ANDROID_APP_DATA, &test_files_root);
21   net::URLRequestMockHTTPJob::AddUrlHandler(
22       test_files_root, new base::SequencedWorkerPool(1, "Worker"));
23   net::URLRequestFailedJob::AddUrlHandler();
24 }
25
26 jstring GetMockUrl(JNIEnv* jenv, jclass jcaller, jstring jpath) {
27   base::FilePath path(base::android::ConvertJavaStringToUTF8(jenv, jpath));
28   GURL url(net::URLRequestMockHTTPJob::GetMockUrl(path));
29   return base::android::ConvertUTF8ToJavaString(jenv, url.spec()).Release();
30 }
31
32 jstring GetMockUrlWithFailure(JNIEnv* jenv,
33                               jclass jcaller,
34                               jstring jpath,
35                               jint jphase,
36                               jint jnet_error) {
37   base::FilePath path(base::android::ConvertJavaStringToUTF8(jenv, jpath));
38   GURL url(net::URLRequestMockHTTPJob::GetMockUrlWithFailure(
39       path,
40       static_cast<net::URLRequestMockHTTPJob::FailurePhase>(jphase),
41       static_cast<int>(jnet_error)));
42   return base::android::ConvertUTF8ToJavaString(jenv, url.spec()).Release();
43 }
44
45 bool RegisterMockUrlRequestJobUtil(JNIEnv* env) {
46   return RegisterNativesImpl(env);
47 }
48
49 }  // namespace cronet