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.
5 package org.chromium.cronet_test_apk;
7 import android.os.ConditionVariable;
8 import android.util.Log;
10 import org.chromium.net.HttpUrlRequest;
11 import org.chromium.net.HttpUrlRequestListener;
13 import java.util.List;
17 * A HttpUrlRequestListener that saves the response from a HttpUrlRequest.
18 * This class is used in testing.
21 public class TestHttpUrlRequestListener implements HttpUrlRequestListener {
22 public static final String TAG = "TestHttpUrlRequestListener";
24 public int mHttpStatusCode = 0;
25 public String mHttpStatusText;
26 public String mNegotiatedProtocol;
28 public byte[] mResponseAsBytes;
29 public String mResponseAsString;
30 public Exception mException;
31 public Map<String, List<String>> mResponseHeaders;
33 private ConditionVariable mComplete = new ConditionVariable();
35 public TestHttpUrlRequestListener() {
39 public void onResponseStarted(HttpUrlRequest request) {
40 Log.i(TAG, "****** Response Started, content length is "
41 + request.getContentLength());
42 Log.i(TAG, "*** Headers Are *** " + request.getAllHeaders());
43 mHttpStatusCode = request.getHttpStatusCode();
44 mNegotiatedProtocol = request.getNegotiatedProtocol();
45 mHttpStatusText = request.getHttpStatusText();
49 public void onRequestComplete(HttpUrlRequest request) {
50 mUrl = request.getUrl();
51 // mHttpStatusCode and mResponseHeaders are available in
52 // onResponseStarted. However when redirects are disabled,
53 // onResponseStarted is not invoked.
54 Exception exception = request.getException();
55 if (exception != null && exception.getMessage().equals("Request failed "
56 + "because there were too many redirects or redirects have "
58 mHttpStatusCode = request.getHttpStatusCode();
59 mResponseHeaders = request.getAllHeaders();
61 mResponseAsBytes = request.getResponseAsBytes();
62 mResponseAsString = new String(mResponseAsBytes);
63 mException = request.getException();
65 Log.i(TAG, "****** Request Complete, status code is "
66 + request.getHttpStatusCode());
70 * Blocks until the request completes.
72 public void blockForComplete() {
76 public void resetComplete() {