Java 类android.test.suitebuilder.annotation.SmallTest 实例源码

项目:chromium-net-for-android    文件:CronetFixedModeOutputStreamTest.java   
@SmallTest
@Feature({"Cronet"})
@CompareDefaultWithCronet
public void testWriteLessThanContentLength()
        throws Exception {
    URL url = new URL(NativeTestServer.getEchoBodyURL());
    HttpURLConnection connection =
            (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    // Set a content length that's 1 byte more.
    connection.setFixedLengthStreamingMode(TestUtil.UPLOAD_DATA.length + 1);
    OutputStream out = connection.getOutputStream();
    out.write(TestUtil.UPLOAD_DATA);
    try {
        connection.getResponseCode();
        fail();
    } catch (ProtocolException e) {
        // Expected.
    }
    connection.disconnect();
}
项目:chromium-net-for-android    文件:CronetFixedModeOutputStreamTest.java   
@SmallTest
@Feature({"Cronet"})
@CompareDefaultWithCronet
public void testFixedLengthStreamingModeWriteOneByte()
        throws Exception {
    URL url = new URL(NativeTestServer.getEchoBodyURL());
    HttpURLConnection connection =
            (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    connection.setFixedLengthStreamingMode(TestUtil.UPLOAD_DATA.length);
    OutputStream out = connection.getOutputStream();
    for (int i = 0; i < TestUtil.UPLOAD_DATA.length; i++) {
        // Write one byte at a time.
        out.write(TestUtil.UPLOAD_DATA[i]);
    }
    assertEquals(200, connection.getResponseCode());
    assertEquals("OK", connection.getResponseMessage());
    assertEquals(TestUtil.UPLOAD_DATA_STRING, TestUtil.getResponseAsString(connection));
    connection.disconnect();
}
项目:chromium-net-for-android    文件:CronetChunkedOutputStreamTest.java   
@SmallTest
@Feature({"Cronet"})
@CompareDefaultWithCronet
public void testPostOneMassiveWriteWriteOneByte() throws Exception {
    URL url = new URL(NativeTestServer.getEchoBodyURL());
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    connection.setChunkedStreamingMode(0);
    OutputStream out = connection.getOutputStream();
    byte[] largeData = TestUtil.getLargeData();
    for (int i = 0; i < largeData.length; i++) {
        out.write(largeData[i]);
    }
    assertEquals(200, connection.getResponseCode());
    assertEquals("OK", connection.getResponseMessage());
    TestUtil.checkLargeData(TestUtil.getResponseAsString(connection));
    connection.disconnect();
}
项目:chromium-net-for-android    文件:CronetUrlRequestContextTest.java   
@SmallTest
@Feature({"Cronet"})
public void testInitTwoEnginesInSequence() throws Exception {
    final CronetTestFramework testFramework = startCronetTestFrameworkAndSkipLibraryInit();

    ConditionVariable runBlocker = new ConditionVariable(true);
    RequestThread thread1 = new RequestThread(testFramework, mUrl, runBlocker);
    RequestThread thread2 = new RequestThread(testFramework, mUrl404, runBlocker);

    thread1.start();
    thread1.join();
    thread2.start();
    thread2.join();
    assertEquals(200, thread1.mCallback.mResponseInfo.getHttpStatusCode());
    assertEquals(404, thread2.mCallback.mResponseInfo.getHttpStatusCode());
}
项目:chromium-net-for-android    文件:ObserverListTest.java   
@SmallTest
@Feature({"Android-AppBase"})
public void testAddWhileIteration() {
    ObserverList<Observer> observerList = new ObserverList<Observer>();
    Foo a = new Foo(1);
    Foo b = new Foo(-1);
    Foo c = new Foo(1);
    FooAdder evil = new FooAdder(observerList, c);

    observerList.addObserver(evil);
    observerList.addObserver(a);
    observerList.addObserver(b);

    for (Observer obs : observerList) obs.observe(10);

    assertTrue(observerList.hasObserver(c));
    assertEquals(10, a.mTotal);
    assertEquals(-10, b.mTotal);
    assertEquals(0, c.mTotal);
}
项目:chromium-net-for-android    文件:RecordHistogramTest.java   
/**
 * Tests recording of boolean histograms.
 */
@SmallTest
public void testRecordBooleanHistogram() {
    String histogram = "HelloWorld.BooleanMetric";
    HistogramDelta falseCount = new HistogramDelta(histogram, 0);
    HistogramDelta trueCount = new HistogramDelta(histogram, 1);
    assertEquals(0, trueCount.getDelta());
    assertEquals(0, falseCount.getDelta());

    RecordHistogram.recordBooleanHistogram(histogram, true);
    assertEquals(1, trueCount.getDelta());
    assertEquals(0, falseCount.getDelta());

    RecordHistogram.recordBooleanHistogram(histogram, true);
    assertEquals(2, trueCount.getDelta());
    assertEquals(0, falseCount.getDelta());

    RecordHistogram.recordBooleanHistogram(histogram, false);
    assertEquals(2, trueCount.getDelta());
    assertEquals(1, falseCount.getDelta());
}
项目:chromium-net-for-android    文件:ApiCompatibilityUtilsTest.java   
@SmallTest
public void testFinishAndRemoveTask() throws InterruptedException {
    MockActivity activity = new MockActivity();
    ApiCompatibilityUtils.finishAndRemoveTask(activity);

    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
        assertEquals(1, activity.mFinishAndRemoveTaskCallbackCount);
        assertEquals(0, activity.mFinishCallbackCount);
    } else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) {
        long startTime = SystemClock.uptimeMillis();
        while (activity.mFinishCallbackCount == 0
                && SystemClock.uptimeMillis() - startTime < WAIT_TIMEOUT_IN_MS) {
            Thread.sleep(SLEEP_INTERVAL_IN_MS);
        }

        // MockActivity#finishAndRemoveTask() never sets isFinishing() to true for LOLLIPOP to
        // simulate an exceptional case. In that case, MockActivity#finish() should be called
        // after 3 tries.
        assertEquals(3, activity.mFinishAndRemoveTaskCallbackCount);
        assertEquals(1, activity.mFinishCallbackCount);
    } else {
        assertEquals(0, activity.mFinishAndRemoveTaskCallbackCount);
        assertEquals(1, activity.mFinishCallbackCount);
    }
    assertTrue(activity.mIsFinishing);
}
项目:chromium-net-for-android    文件:EarlyTraceEventTest.java   
@SmallTest
@Feature({"Android-AppBase"})
public void testCanRecordEvent() {
    EarlyTraceEvent.enable();
    long myThreadId = Process.myTid();
    long beforeMs = SystemClock.elapsedRealtime();
    EarlyTraceEvent.begin(EVENT_NAME);
    EarlyTraceEvent.end(EVENT_NAME);
    long afterMs = SystemClock.elapsedRealtime();

    assertEquals(1, EarlyTraceEvent.sCompletedEvents.size());
    assertTrue(EarlyTraceEvent.sPendingEvents.isEmpty());
    EarlyTraceEvent.Event event = EarlyTraceEvent.sCompletedEvents.get(0);
    assertEquals(EVENT_NAME, event.mName);
    assertEquals(myThreadId, event.mThreadId);
    assertTrue(beforeMs <= event.mBeginTimeMs && event.mBeginTimeMs <= afterMs);
    assertTrue(event.mBeginTimeMs <= event.mEndTimeMs);
    assertTrue(beforeMs <= event.mEndTimeMs && event.mEndTimeMs <= afterMs);
}
项目:chromium-net-for-android    文件:CronetFixedModeOutputStreamTest.java   
@SmallTest
@Feature({"Cronet"})
@CompareDefaultWithCronet
public void testConnectBeforeWrite() throws Exception {
    URL url = new URL(NativeTestServer.getEchoBodyURL());
    HttpURLConnection connection =
            (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    connection.setFixedLengthStreamingMode(TestUtil.UPLOAD_DATA.length);
    OutputStream out = connection.getOutputStream();
    connection.connect();
    out.write(TestUtil.UPLOAD_DATA);
    assertEquals(200, connection.getResponseCode());
    assertEquals("OK", connection.getResponseMessage());
    assertEquals(TestUtil.UPLOAD_DATA_STRING, TestUtil.getResponseAsString(connection));
    connection.disconnect();
}
项目:chromium-net-for-android    文件:ChromiumUrlRequestTest.java   
@SmallTest
@Feature({"Cronet"})
public void testRedirectURLRequest() throws Exception {
    createRequestAndWaitForComplete(
            NativeTestServer.getRedirectURL(), false);
    // ChromiumUrlRequest does not expose the url after redirect.
    assertEquals(NativeTestServer.getRedirectURL(), mListener.mUrl);
    assertEquals(200, mListener.mHttpStatusCode);
    assertEquals("OK", mListener.mHttpStatusText);
    // Expect that the request is redirected to success.txt.
    assertEquals("this is a text file\n",
            new String(mListener.mResponseAsBytes));
    // Test that ChromiumUrlRequest caches information which is available
    // after the native request adapter has been destroyed.
    assertEquals(200, mRequest.getHttpStatusCode());
    assertEquals("OK", mRequest.getHttpStatusText());
    assertNull(mRequest.getException());
    checkAfterAdapterDestroyed(mRequest);
}
项目:chromium-net-for-android    文件:CronetChunkedOutputStreamTest.java   
@SmallTest
@Feature({"Cronet"})
@CompareDefaultWithCronet
public void testGetOutputStreamAfterConnectionMade() throws Exception {
    URL url = new URL(NativeTestServer.getEchoBodyURL());
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    connection.setChunkedStreamingMode(0);
    assertEquals(200, connection.getResponseCode());
    try {
        connection.getOutputStream();
        fail();
    } catch (ProtocolException e) {
        // Expected.
    }
}
项目:chromium-net-for-android    文件:BidirectionalStreamTest.java   
@SmallTest
@Feature({"Cronet"})
@OnlyRunNativeCronet
public void testSimpleGet() throws Exception {
    String url = Http2TestServer.getEchoMethodUrl();
    TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback();
    // Create stream.
    BidirectionalStream stream = new BidirectionalStream
                                         .Builder(url, callback, callback.getExecutor(),
                                                 mTestFramework.mCronetEngine)
                                         .setHttpMethod("GET")
                                         .build();
    stream.start();
    callback.blockForDone();
    assertTrue(stream.isDone());
    assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
    // Default method is 'GET'.
    assertEquals("GET", callback.mResponseAsString);
    UrlResponseInfo urlResponseInfo =
            createUrlResponseInfo(new String[] {url}, "", 200, 27, ":status", "200");
    assertResponseEquals(urlResponseInfo, callback.mResponseInfo);
    checkResponseInfo(callback.mResponseInfo, Http2TestServer.getEchoMethodUrl(), 200, "");
}
项目:chromium-net-for-android    文件:CronetBufferedOutputStreamTest.java   
/**
 * Tests write after connect. Strangely, the default implementation allows
 * writing after being connected, so this test only runs against Cronet's
 * implementation.
 */
@SmallTest
@Feature({"Cronet"})
@OnlyRunCronetHttpURLConnection
public void testWriteAfterConnect() throws Exception {
    URL url = new URL(NativeTestServer.getEchoBodyURL());
    HttpURLConnection connection =
            (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    OutputStream out = connection.getOutputStream();
    out.write(TestUtil.UPLOAD_DATA);
    connection.connect();
    try {
        // Attemp to write some more.
        out.write(TestUtil.UPLOAD_DATA);
        fail();
    } catch (IllegalStateException e) {
        assertEquals("Cannot write after being connected.", e.getMessage());
    }
}
项目:chromium-net-for-android    文件:CronetBufferedOutputStreamTest.java   
/**
 * Tests that {@link CronetBufferedOutputStream} supports rewind in a
 * POST preserving redirect.
 * Use {@code OnlyRunCronetHttpURLConnection} as the default implementation
 * does not pass this test.
 */
@SmallTest
@Feature({"Cronet"})
@OnlyRunCronetHttpURLConnection
public void testRewind() throws Exception {
    URL url = new URL(NativeTestServer.getRedirectToEchoBody());
    HttpURLConnection connection =
            (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    connection.setRequestProperty(
            "Content-Length", Integer.toString(TestUtil.UPLOAD_DATA.length));
    OutputStream out = connection.getOutputStream();
    out.write(TestUtil.UPLOAD_DATA);
    assertEquals(TestUtil.UPLOAD_DATA_STRING, TestUtil.getResponseAsString(connection));
    connection.disconnect();
}
项目:chromium-net-for-android    文件:UploadDataProvidersTest.java   
@SmallTest
@Feature({"Cronet"})
public void testBadFileDescriptorProvider() throws Exception {
    TestUrlRequestCallback callback = new TestUrlRequestCallback();
    UrlRequest.Builder builder =
            new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(), callback,
                    callback.getExecutor(), mTestFramework.mCronetEngine);
    ParcelFileDescriptor[] pipe = ParcelFileDescriptor.createPipe();
    try {
        UploadDataProvider dataProvider = UploadDataProviders.create(pipe[0]);
        builder.setUploadDataProvider(dataProvider, callback.getExecutor());
        builder.addHeader("Content-Type", "useless/string");
        builder.build().start();
        callback.blockForDone();

        assertTrue(callback.mError.getCause() instanceof IllegalArgumentException);
    } finally {
        pipe[1].close();
    }
}
项目:chromium-net-for-android    文件:UploadTest.java   
/**
 * Tests uploading from a channel in the case a redirect preserves the post
 * body.  Since channels can't be rewound, the request fails when we try to
 * rewind it to send the second request.
 */
@SmallTest
@Feature({"Cronet"})
public void testUploadChannelWithRedirect() throws Exception {
    TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener();
    HttpUrlRequest request = createRequest(
            NativeTestServer.getRedirectToEchoBody(), listener);
    setUploadChannel(request, "text/plain", UPLOAD_CHANNEL_DATA,
                     UPLOAD_CHANNEL_DATA.length());
    request.start();
    listener.blockForComplete();

    assertEquals(0, listener.mHttpStatusCode);
    assertEquals(
            "System error: net::ERR_UPLOAD_STREAM_REWIND_NOT_SUPPORTED(-25)",
            listener.mException.getMessage());
}
项目:chromium-net-for-android    文件:ChromiumUrlRequestTest.java   
@SmallTest
@Feature({"Cronet"})
public void testSuccessURLRequest() throws Exception {
    createRequestAndWaitForComplete(
            NativeTestServer.getSuccessURL(), false);
    assertEquals(NativeTestServer.getSuccessURL(), mListener.mUrl);
    assertEquals(200, mListener.mHttpStatusCode);
    assertEquals("OK", mListener.mHttpStatusText);
    assertEquals("this is a text file\n",
            new String(mListener.mResponseAsBytes));
    // Test that ChromiumUrlRequest caches information which is available
    // after the native request adapter has been destroyed.
    assertEquals(200, mRequest.getHttpStatusCode());
    assertEquals("OK", mRequest.getHttpStatusText());
    assertNull(mRequest.getException());
    checkAfterAdapterDestroyed(mRequest);
}
项目:chromium-net-for-android    文件:CronetHttpURLConnectionTest.java   
@SmallTest
@Feature({"Cronet"})
@CompareDefaultWithCronet
// Tests that redirects across the HTTP and HTTPS boundary are not followed.
public void testDoNotFollowRedirectsIfSchemesDontMatch() throws Exception {
    URL url = new URL(NativeTestServer.getFileURL("/redirect_invalid_scheme.html"));
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setInstanceFollowRedirects(true);
    assertEquals(302, connection.getResponseCode());
    assertEquals("Found", connection.getResponseMessage());
    // Behavior changed in Android Marshmallow to not update the URL.
    if (testingSystemHttpURLConnection() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        // Redirected port is randomized, verify everything but port.
        assertEquals(url.getProtocol(), connection.getURL().getProtocol());
        assertEquals(url.getHost(), connection.getURL().getHost());
        assertEquals(url.getFile(), connection.getURL().getFile());
    } else {
        // Redirect is not followed, but the url is updated to the Location header.
        assertEquals("https://127.0.0.1:8000/success.txt", connection.getURL().toString());
    }
    connection.disconnect();
}
项目:chromium-net-for-android    文件:CronetUrlRequestTest.java   
@SmallTest
@Feature({"Cronet"})
@OnlyRunNativeCronet // No canonical exception to assert on
public void testContentLengthMismatchFailsOnce() throws Exception {
    String url = NativeTestServer.getFileURL(
            "/content_length_mismatch.html");
    TestUrlRequestCallback callback = startAndWaitForComplete(url);
    assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
    // The entire response body will be read before the error is returned.
    // This is because the network stack returns data as it's read from the
    // socket, and the socket close message which triggers the error will
    // only be passed along after all data has been read.
    assertEquals("Response that lies about content length.", callback.mResponseAsString);
    assertNotNull(callback.mError);
    assertEquals("Exception in CronetUrlRequest: net::ERR_CONTENT_LENGTH_MISMATCH",
            callback.mError.getMessage());
    // Wait for a couple round trips to make sure there are no pending
    // onFailed messages. This test relies on checks in
    // TestUrlRequestCallback catching a second onFailed call.
    testSimpleGet();
}
项目:chromium-net-for-android    文件:CronetUrlRequestTest.java   
@SmallTest
@Feature({"Cronet"})
public void testSetHttpMethod() throws Exception {
    TestUrlRequestCallback callback = new TestUrlRequestCallback();
    String methodName = "HEAD";
    UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.getEchoMethodURL(),
            callback, callback.getExecutor(), mTestFramework.mCronetEngine);
    // Try to set 'null' method.
    try {
        builder.setHttpMethod(null);
        fail("Exception not thrown");
    } catch (NullPointerException e) {
        assertEquals("Method is required.", e.getMessage());
    }

    builder.setHttpMethod(methodName);
    builder.build().start();
    callback.blockForDone();
    assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
    assertEquals(0, callback.mHttpResponseDataLength);
}
项目:chromium-net-for-android    文件:CronetUrlRequestTest.java   
@SmallTest
@Feature({"Cronet"})
public void testAddHeader() throws Exception {
    TestUrlRequestCallback callback = new TestUrlRequestCallback();
    String headerName = "header-name";
    String headerValue = "header-value";
    UrlRequest.Builder builder =
            new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(headerName), callback,
                    callback.getExecutor(), mTestFramework.mCronetEngine);

    builder.addHeader(headerName, headerValue);
    builder.build().start();
    callback.blockForDone();
    assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
    assertEquals(headerValue, callback.mResponseAsString);
}
项目:chromium-net-for-android    文件:CronetUrlRequestTest.java   
@SmallTest
@Feature({"Cronet"})
public void testMultiRequestHeaders() throws Exception {
    TestUrlRequestCallback callback = new TestUrlRequestCallback();
    String headerName = "header-name";
    String headerValue1 = "header-value1";
    String headerValue2 = "header-value2";
    UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.getEchoAllHeadersURL(),
            callback, callback.getExecutor(), mTestFramework.mCronetEngine);
    builder.addHeader(headerName, headerValue1);
    builder.addHeader(headerName, headerValue2);
    builder.build().start();
    callback.blockForDone();
    assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
    String headers = callback.mResponseAsString;
    Pattern pattern = Pattern.compile(headerName + ":\\s(.*)\\r\\n");
    Matcher matcher = pattern.matcher(headers);
    List<String> actualValues = new ArrayList<String>();
    while (matcher.find()) {
        actualValues.add(matcher.group(1));
    }
    assertEquals(1, actualValues.size());
    assertEquals("header-value2", actualValues.get(0));
}
项目:chromium-net-for-android    文件:CronetUrlRequestTest.java   
@SmallTest
@Feature({"Cronet"})
public void testDefaultUserAgent() throws Exception {
    TestUrlRequestCallback callback = new TestUrlRequestCallback();
    String headerName = "User-Agent";
    UrlRequest.Builder builder =
            new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(headerName), callback,
                    callback.getExecutor(), mTestFramework.mCronetEngine);
    builder.build().start();
    callback.blockForDone();
    assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
    assertTrue("Default User-Agent should contain Cronet/n.n.n.n but is "
                    + callback.mResponseAsString,
            Pattern.matches(
                    ".+Cronet/\\d+\\.\\d+\\.\\d+\\.\\d+.+", callback.mResponseAsString));
}
项目:chromium-net-for-android    文件:ChromiumUrlRequestTest.java   
@SmallTest
@Feature({"Cronet"})
public void testFailedURLRequest() throws Exception {
    // -2 is the net error code for FAILED. See net_error_list.h.
    int errorFailed = -2;
    String failedUrl = MockUrlRequestJobFactory.getMockUrlWithFailure(
            FailurePhase.START, errorFailed);
    createRequestAndWaitForComplete(failedUrl, false);
    assertEquals(failedUrl, mListener.mUrl);
    assertEquals("", mListener.mHttpStatusText);
    assertEquals(0, mListener.mHttpStatusCode);
    // Test that ChromiumUrlRequest caches information which is available
    // after the native request adapter has been destroyed.
    assertEquals(0, mRequest.getHttpStatusCode());
    assertEquals("", mRequest.getHttpStatusText());
    assertEquals("System error: net::ERR_FAILED(-2)",
            mRequest.getException().getMessage());
    checkAfterAdapterDestroyed(mRequest);
}
项目:chromium-net-for-android    文件:CronetFixedModeOutputStreamTest.java   
@SmallTest
@Feature({"Cronet"})
@CompareDefaultWithCronet
public void testFixedLengthStreamingMode() throws Exception {
    URL url = new URL(NativeTestServer.getEchoBodyURL());
    HttpURLConnection connection =
            (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    connection.setFixedLengthStreamingMode(TestUtil.UPLOAD_DATA.length);
    OutputStream out = connection.getOutputStream();
    out.write(TestUtil.UPLOAD_DATA);
    assertEquals(200, connection.getResponseCode());
    assertEquals("OK", connection.getResponseMessage());
    assertEquals(TestUtil.UPLOAD_DATA_STRING, TestUtil.getResponseAsString(connection));
    connection.disconnect();
}
项目:chromium-net-for-android    文件:CronetBufferedOutputStreamTest.java   
@SmallTest
@Feature({"Cronet"})
@CompareDefaultWithCronet
public void testPostWithoutContentLengthWriteOneByte() throws Exception {
    URL url = new URL(NativeTestServer.getEchoBodyURL());
    HttpURLConnection connection =
            (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    OutputStream out = connection.getOutputStream();
    byte[] largeData = TestUtil.getLargeData();
    for (int i = 0; i < largeData.length; i++) {
        out.write(largeData[i]);
    }
    assertEquals(200, connection.getResponseCode());
    assertEquals("OK", connection.getResponseMessage());
    TestUtil.checkLargeData(TestUtil.getResponseAsString(connection));
    connection.disconnect();
}
项目:chromium-net-for-android    文件:CronetUrlRequestTest.java   
@SmallTest
@Feature({"Cronet"})
@OnlyRunNativeCronet // Java impl doesn't support MockUrlRequestJobFactory
public void testMockReadDataSyncError() throws Exception {
    final int arbitraryNetError = -4;
    TestUrlRequestCallback callback =
            startAndWaitForComplete(MockUrlRequestJobFactory.getMockUrlWithFailure(
                    FailurePhase.READ_SYNC, arbitraryNetError));
    assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
    assertEquals(0, callback.mResponseInfo.getReceivedBytesCount());
    assertNotNull(callback.mError);
    assertEquals(arbitraryNetError, callback.mError.getCronetInternalErrorCode());
    assertEquals(0, callback.mRedirectCount);
    assertTrue(callback.mOnErrorCalled);
    assertEquals(callback.mResponseStep, ResponseStep.ON_RESPONSE_STARTED);
}
项目:chromium-net-for-android    文件:CronetUrlRequestContextTest.java   
@SmallTest
@Feature({"Cronet"})
@SuppressWarnings("deprecation")
public void testConfigUserAgent() throws Exception {
    String userAgentName = "User-Agent";
    String userAgentValue = "User-Agent-Value";
    CronetEngine.Builder cronetEngineBuilder = new CronetEngine.Builder(getContext());
    if (testingJavaImpl()) {
        cronetEngineBuilder.enableLegacyMode(true);
    }
    cronetEngineBuilder.setUserAgent(userAgentValue);
    cronetEngineBuilder.setLibraryName("cronet_tests");
    mTestFramework =
            startCronetTestFrameworkWithUrlAndCronetEngineBuilder(mUrl, cronetEngineBuilder);
    NativeTestServer.shutdownNativeTestServer(); // startNativeTestServer returns false if it's
    // already running
    assertTrue(NativeTestServer.startNativeTestServer(getContext()));
    TestUrlRequestCallback callback = new TestUrlRequestCallback();
    UrlRequest.Builder urlRequestBuilder =
            new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(userAgentName), callback,
                    callback.getExecutor(), mTestFramework.mCronetEngine);
    urlRequestBuilder.build().start();
    callback.blockForDone();
    assertEquals(userAgentValue, callback.mResponseAsString);
}
项目:chromium-net-for-android    文件:CronetUrlRequestContextTest.java   
@SmallTest
@Feature({"Cronet"})
public void testShutdownAfterCancel() throws Exception {
    mTestFramework = startCronetTestFramework();
    TestUrlRequestCallback callback = new TestUrlRequestCallback();
    // Block callback when response starts to verify that shutdown fails
    // if there are active requests.
    callback.setAutoAdvance(false);
    UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
            mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
    UrlRequest urlRequest = urlRequestBuilder.build();
    urlRequest.start();
    try {
        mTestFramework.mCronetEngine.shutdown();
        fail("Should throw an exception");
    } catch (Exception e) {
        assertEquals("Cannot shutdown with active requests.",
                     e.getMessage());
    }
    callback.waitForNextStep();
    assertEquals(ResponseStep.ON_RESPONSE_STARTED, callback.mResponseStep);
    urlRequest.cancel();
    mTestFramework.mCronetEngine.shutdown();
}
项目:chromium-net-for-android    文件:CronetUrlRequestContextTest.java   
@SmallTest
@Feature({"Cronet"})
public void testCronetEngineBuilderConfig() throws Exception {
    // This is to prompt load of native library.
    startCronetTestFramework();
    // Verify CronetEngine.Builder config is passed down accurately to native code.
    CronetEngine.Builder builder = new CronetEngine.Builder(getContext());
    builder.enableHttp2(false);
    builder.enableQuic(true);
    builder.enableSDCH(true);
    builder.addQuicHint("example.com", 12, 34);
    builder.setCertVerifierData("test_cert_verifier_data");
    builder.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY, 54321);
    builder.enableDataReductionProxy("abcd");
    builder.setUserAgent("efgh");
    builder.setExperimentalOptions("ijkl");
    builder.setDataReductionProxyOptions("mnop", "qrst", "uvwx");
    builder.setStoragePath(CronetTestFramework.getTestStorage(getContext()));
    builder.enablePublicKeyPinningBypassForLocalTrustAnchors(false);
    nativeVerifyUrlRequestContextConfig(
            CronetUrlRequestContext.createNativeUrlRequestContextConfig(getContext(), builder),
            CronetTestFramework.getTestStorage(getContext()));
}
项目:chromium-net-for-android    文件:CronetBufferedOutputStreamTest.java   
@SmallTest
@Feature({"Cronet"})
@CompareDefaultWithCronet
public void testWriteAfterReadingResponse() throws Exception {
    URL url = new URL(NativeTestServer.getEchoBodyURL());
    HttpURLConnection connection =
            (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    OutputStream out = connection.getOutputStream();
    assertEquals(200, connection.getResponseCode());
    try {
        out.write(TestUtil.UPLOAD_DATA);
        fail();
    } catch (Exception e) {
        // Default implementation gives an IOException and says that the
        // stream is closed. Cronet gives an IllegalStateException and
        // complains about write after connected.
    }
}
项目:chromium-net-for-android    文件:CronetUrlRequestTest.java   
@SmallTest
@Feature({"Cronet"})
public void testUploadRedirectSync() throws Exception {
    TestUrlRequestCallback callback = new TestUrlRequestCallback();
    UrlRequest.Builder builder =
            new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(), callback,
                    callback.getExecutor(), mTestFramework.mCronetEngine);

    TestUploadDataProvider dataProvider = new TestUploadDataProvider(
            TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor());
    dataProvider.addRead("test".getBytes());
    builder.setUploadDataProvider(dataProvider, callback.getExecutor());
    builder.addHeader("Content-Type", "useless/string");
    builder.build().start();
    callback.blockForDone();
    dataProvider.assertClosed();

    // 1 read call before the rewind, 1 after.
    assertEquals(2, dataProvider.getNumReadCalls());
    assertEquals(1, dataProvider.getNumRewindCalls());

    assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
    assertEquals("test", callback.mResponseAsString);
}
项目:chromium-net-for-android    文件:BidirectionalStreamTest.java   
@SmallTest
@Feature({"Cronet"})
@OnlyRunNativeCronet
public void testSimpleHead() throws Exception {
    String url = Http2TestServer.getEchoMethodUrl();
    TestBidirectionalStreamCallback callback = new TestBidirectionalStreamCallback();
    // Create stream.
    BidirectionalStream stream = new BidirectionalStream
                                         .Builder(url, callback, callback.getExecutor(),
                                                 mTestFramework.mCronetEngine)
                                         .setHttpMethod("HEAD")
                                         .build();
    stream.start();
    callback.blockForDone();
    assertTrue(stream.isDone());
    assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
    assertEquals("HEAD", callback.mResponseAsString);
    UrlResponseInfo urlResponseInfo =
            createUrlResponseInfo(new String[] {url}, "", 200, 28, ":status", "200");
    assertResponseEquals(urlResponseInfo, callback.mResponseInfo);
    checkResponseInfo(callback.mResponseInfo, Http2TestServer.getEchoMethodUrl(), 200, "");
}
项目:chromium-net-for-android    文件:SdchTest.java   
@SmallTest
@Feature({"Cronet"})
@OnlyRunNativeCronet
public void testDictionaryNotFound() throws Exception {
    setUp(Sdch.ENABLED, Api.ASYNC);
    // Make a request to /sdch/index which advertises a bad dictionary that
    // does not exist.
    TestUrlRequestCallback callback1 = startAndWaitForComplete(mTestFramework.mCronetEngine,
            NativeTestServer.getSdchURL() + "/sdch/index?q=NotFound");
    assertEquals(200, callback1.mResponseInfo.getHttpStatusCode());
    assertEquals("This is an index page.\n", callback1.mResponseAsString);
    assertEquals(Arrays.asList("/sdch/dict/NotFound"),
            callback1.mResponseInfo.getAllHeaders().get("Get-Dictionary"));

    // Make a request to fetch /sdch/test, and make sure Sdch encoding is not used.
    TestUrlRequestCallback callback2 = startAndWaitForComplete(
            mTestFramework.mCronetEngine, NativeTestServer.getSdchURL() + "/sdch/test");
    assertEquals(200, callback2.mResponseInfo.getHttpStatusCode());
    assertEquals("Sdch is not used.\n", callback2.mResponseAsString);
}
项目:chromium-net-for-android    文件:CronetUrlRequestTest.java   
@SmallTest
@Feature({"Cronet"})
public void testUploadReadFailSync() throws Exception {
    TestUrlRequestCallback callback = new TestUrlRequestCallback();
    UrlRequest.Builder builder = new UrlRequest.Builder(NativeTestServer.getEchoBodyURL(),
            callback, callback.getExecutor(), mTestFramework.mCronetEngine);

    TestUploadDataProvider dataProvider = new TestUploadDataProvider(
            TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor());
    dataProvider.setReadFailure(0, TestUploadDataProvider.FailMode.CALLBACK_SYNC);
    // This will never be read, but if the length is 0, read may never be
    // called.
    dataProvider.addRead("test".getBytes());
    builder.setUploadDataProvider(dataProvider, callback.getExecutor());
    builder.addHeader("Content-Type", "useless/string");
    builder.build().start();
    callback.blockForDone();
    dataProvider.assertClosed();

    assertEquals(1, dataProvider.getNumReadCalls());
    assertEquals(0, dataProvider.getNumRewindCalls());

    assertEquals("Exception received from UploadDataProvider", callback.mError.getMessage());
    assertEquals("Sync read failure", callback.mError.getCause().getMessage());
    assertEquals(null, callback.mResponseInfo);
}
项目:chromium-net-for-android    文件:CronetBufferedOutputStreamTest.java   
@SmallTest
@Feature({"Cronet"})
@CompareDefaultWithCronet
public void testGetOutputStreamAfterConnectionMade() throws Exception {
    URL url = new URL(NativeTestServer.getEchoBodyURL());
    HttpURLConnection connection =
            (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    assertEquals(200, connection.getResponseCode());
    try {
        connection.getOutputStream();
        fail();
    } catch (java.net.ProtocolException e) {
        // Expected.
    }
}
项目:chromium-net-for-android    文件:CronetUrlRequestTest.java   
@SmallTest
@Feature({"Cronet"})
public void testUploadRewindFailSync() throws Exception {
    TestUrlRequestCallback callback = new TestUrlRequestCallback();
    UrlRequest.Builder builder =
            new UrlRequest.Builder(NativeTestServer.getRedirectToEchoBody(), callback,
                    callback.getExecutor(), mTestFramework.mCronetEngine);

    TestUploadDataProvider dataProvider = new TestUploadDataProvider(
            TestUploadDataProvider.SuccessCallbackMode.SYNC, callback.getExecutor());
    dataProvider.setRewindFailure(TestUploadDataProvider.FailMode.CALLBACK_SYNC);
    dataProvider.addRead("test".getBytes());
    builder.setUploadDataProvider(dataProvider, callback.getExecutor());
    builder.addHeader("Content-Type", "useless/string");
    builder.build().start();
    callback.blockForDone();
    dataProvider.assertClosed();

    assertEquals(1, dataProvider.getNumReadCalls());
    assertEquals(1, dataProvider.getNumRewindCalls());

    assertEquals("Exception received from UploadDataProvider", callback.mError.getMessage());
    assertEquals("Sync rewind failure", callback.mError.getCause().getMessage());
    assertEquals(null, callback.mResponseInfo);
}
项目:chromium-net-for-android    文件:CronetHttpURLConnectionTest.java   
@SmallTest
@Feature({"Cronet"})
@CompareDefaultWithCronet
public void testInitOutputStreamInConnect() throws Exception {
    URL url = new URL(NativeTestServer.getEchoBodyURL());
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    String dataString = "some very important data";
    byte[] data = dataString.getBytes();
    connection.setFixedLengthStreamingMode(data.length);
    connection.connect();
    OutputStream out = connection.getOutputStream();
    out.write(data);
    assertEquals(200, connection.getResponseCode());
    assertEquals("OK", connection.getResponseMessage());
    assertEquals(dataString, TestUtil.getResponseAsString(connection));
    connection.disconnect();
}
项目:chromium-net-for-android    文件:CronetUrlRequestContextTest.java   
@SmallTest
@Feature({"Cronet"})
public void testInitEngineStartTwoRequests() throws Exception {
    CronetTestFramework testFramework = startCronetTestFrameworkAndSkipLibraryInit();

    // Make two requests after initializing the context.
    CronetEngine cronetEngine = testFramework.initCronetEngine();
    int[] statusCodes = {0, 0};
    String[] urls = {mUrl, mUrl404};
    for (int i = 0; i < 2; i++) {
        TestUrlRequestCallback callback = new TestUrlRequestCallback();
        UrlRequest.Builder urlRequestBuilder =
                new UrlRequest.Builder(urls[i], callback, callback.getExecutor(), cronetEngine);
        urlRequestBuilder.build().start();
        callback.blockForDone();
        statusCodes[i] = callback.mResponseInfo.getHttpStatusCode();
    }
    assertEquals(200, statusCodes[0]);
    assertEquals(404, statusCodes[1]);
}
项目:chromium-net-for-android    文件:CronetBufferedOutputStreamTest.java   
@SmallTest
@Feature({"Cronet"})
@CompareDefaultWithCronet
public void testPostWithoutContentLengthOneMassiveWrite() throws Exception {
    URL url = new URL(NativeTestServer.getEchoBodyURL());
    HttpURLConnection connection =
            (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    OutputStream out = connection.getOutputStream();
    byte[] largeData = TestUtil.getLargeData();
    out.write(largeData);
    assertEquals(200, connection.getResponseCode());
    assertEquals("OK", connection.getResponseMessage());
    TestUtil.checkLargeData(TestUtil.getResponseAsString(connection));
    connection.disconnect();
}