| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.net; | 5 package org.chromium.net; |
| 6 | 6 |
| 7 import android.os.ConditionVariable; | 7 import android.os.ConditionVariable; |
| 8 import android.test.suitebuilder.annotation.SmallTest; | 8 import android.test.suitebuilder.annotation.SmallTest; |
| 9 | 9 |
| 10 import org.chromium.base.test.util.Feature; | 10 import org.chromium.base.test.util.Feature; |
| 11 import org.chromium.net.CronetTestBase.OnlyRunNativeCronet; |
| 11 | 12 |
| 12 import java.io.BufferedReader; | 13 import java.io.BufferedReader; |
| 13 import java.io.FileReader; | 14 import java.io.FileReader; |
| 14 import java.io.IOException; | 15 import java.io.IOException; |
| 15 import java.util.ArrayList; | 16 import java.util.ArrayList; |
| 16 import java.util.Arrays; | 17 import java.util.Arrays; |
| 17 import java.util.HashMap; | 18 import java.util.HashMap; |
| 18 import java.util.List; | 19 import java.util.List; |
| 19 import java.util.Map; | 20 import java.util.Map; |
| 20 | 21 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 | 63 |
| 63 @Override | 64 @Override |
| 64 protected void tearDown() throws Exception { | 65 protected void tearDown() throws Exception { |
| 65 NativeTestServer.shutdownNativeTestServer(); | 66 NativeTestServer.shutdownNativeTestServer(); |
| 66 super.tearDown(); | 67 super.tearDown(); |
| 67 } | 68 } |
| 68 | 69 |
| 69 @SmallTest | 70 @SmallTest |
| 70 @Feature({"Cronet"}) | 71 @Feature({"Cronet"}) |
| 71 @SuppressWarnings("deprecation") | 72 @SuppressWarnings("deprecation") |
| 73 @OnlyRunNativeCronet |
| 72 public void testSdchEnabled_LegacyApi() throws Exception { | 74 public void testSdchEnabled_LegacyApi() throws Exception { |
| 73 setUp(Sdch.ENABLED, Api.LEGACY); | 75 setUp(Sdch.ENABLED, Api.LEGACY); |
| 74 String targetUrl = NativeTestServer.getSdchURL() + "/sdch/test"; | 76 String targetUrl = NativeTestServer.getSdchURL() + "/sdch/test"; |
| 75 long contextAdapter = | 77 long contextAdapter = |
| 76 getContextAdapter((ChromiumUrlRequestFactory) mTestFramework.mRe
questFactory); | 78 getContextAdapter((ChromiumUrlRequestFactory) mTestFramework.mRe
questFactory); |
| 77 DictionaryAddedObserver observer = | 79 DictionaryAddedObserver observer = |
| 78 new DictionaryAddedObserver(targetUrl, contextAdapter, true /**
Legacy Api */); | 80 new DictionaryAddedObserver(targetUrl, contextAdapter, true /**
Legacy Api */); |
| 79 | 81 |
| 80 // Make a request to /sdch/index which advertises the dictionary. | 82 // Make a request to /sdch/index which advertises the dictionary. |
| 81 TestHttpUrlRequestListener listener1 = | 83 TestHttpUrlRequestListener listener1 = |
| 82 startAndWaitForComplete_LegacyApi(mTestFramework.mRequestFactory
, | 84 startAndWaitForComplete_LegacyApi(mTestFramework.mRequestFactory
, |
| 83 NativeTestServer.getSdchURL() + "/sdch/index?q=LeQxM80O"
); | 85 NativeTestServer.getSdchURL() + "/sdch/index?q=LeQxM80O"
); |
| 84 assertEquals(200, listener1.mHttpStatusCode); | 86 assertEquals(200, listener1.mHttpStatusCode); |
| 85 assertEquals("This is an index page.\n", listener1.mResponseAsString); | 87 assertEquals("This is an index page.\n", listener1.mResponseAsString); |
| 86 assertEquals(Arrays.asList("/sdch/dict/LeQxM80O"), | 88 assertEquals(Arrays.asList("/sdch/dict/LeQxM80O"), |
| 87 listener1.mResponseHeaders.get("Get-Dictionary")); | 89 listener1.mResponseHeaders.get("Get-Dictionary")); |
| 88 | 90 |
| 89 observer.waitForDictionaryAdded(); | 91 observer.waitForDictionaryAdded(); |
| 90 | 92 |
| 91 // Make a request to fetch encoded response at /sdch/test. | 93 // Make a request to fetch encoded response at /sdch/test. |
| 92 TestHttpUrlRequestListener listener2 = | 94 TestHttpUrlRequestListener listener2 = |
| 93 startAndWaitForComplete_LegacyApi(mTestFramework.mRequestFactory
, targetUrl); | 95 startAndWaitForComplete_LegacyApi(mTestFramework.mRequestFactory
, targetUrl); |
| 94 assertEquals(200, listener2.mHttpStatusCode); | 96 assertEquals(200, listener2.mHttpStatusCode); |
| 95 assertEquals("The quick brown fox jumps over the lazy dog.\n", listener2
.mResponseAsString); | 97 assertEquals("The quick brown fox jumps over the lazy dog.\n", listener2
.mResponseAsString); |
| 96 } | 98 } |
| 97 | 99 |
| 98 @SmallTest | 100 @SmallTest |
| 99 @Feature({"Cronet"}) | 101 @Feature({"Cronet"}) |
| 100 @SuppressWarnings("deprecation") | 102 @SuppressWarnings("deprecation") |
| 103 @OnlyRunNativeCronet |
| 101 public void testSdchDisabled_LegacyApi() throws Exception { | 104 public void testSdchDisabled_LegacyApi() throws Exception { |
| 102 setUp(Sdch.DISABLED, Api.LEGACY); | 105 setUp(Sdch.DISABLED, Api.LEGACY); |
| 103 // Make a request to /sdch/index. | 106 // Make a request to /sdch/index. |
| 104 // Since Sdch is not enabled, no dictionary should be advertised. | 107 // Since Sdch is not enabled, no dictionary should be advertised. |
| 105 TestHttpUrlRequestListener listener = | 108 TestHttpUrlRequestListener listener = |
| 106 startAndWaitForComplete_LegacyApi(mTestFramework.mRequestFactory
, | 109 startAndWaitForComplete_LegacyApi(mTestFramework.mRequestFactory
, |
| 107 NativeTestServer.getSdchURL() + "/sdch/index?q=LeQxM80O"
); | 110 NativeTestServer.getSdchURL() + "/sdch/index?q=LeQxM80O"
); |
| 108 assertEquals(200, listener.mHttpStatusCode); | 111 assertEquals(200, listener.mHttpStatusCode); |
| 109 assertEquals("This is an index page.\n", listener.mResponseAsString); | 112 assertEquals("This is an index page.\n", listener.mResponseAsString); |
| 110 assertEquals(null, listener.mResponseHeaders.get("Get-Dictionary")); | 113 assertEquals(null, listener.mResponseHeaders.get("Get-Dictionary")); |
| 111 } | 114 } |
| 112 | 115 |
| 113 @SmallTest | 116 @SmallTest |
| 114 @Feature({"Cronet"}) | 117 @Feature({"Cronet"}) |
| 115 @SuppressWarnings("deprecation") | 118 @SuppressWarnings("deprecation") |
| 119 @OnlyRunNativeCronet |
| 116 public void testDictionaryNotFound_LegacyApi() throws Exception { | 120 public void testDictionaryNotFound_LegacyApi() throws Exception { |
| 117 setUp(Sdch.ENABLED, Api.LEGACY); | 121 setUp(Sdch.ENABLED, Api.LEGACY); |
| 118 // Make a request to /sdch/index which advertises a bad dictionary that | 122 // Make a request to /sdch/index which advertises a bad dictionary that |
| 119 // does not exist. | 123 // does not exist. |
| 120 TestHttpUrlRequestListener listener1 = | 124 TestHttpUrlRequestListener listener1 = |
| 121 startAndWaitForComplete_LegacyApi(mTestFramework.mRequestFactory
, | 125 startAndWaitForComplete_LegacyApi(mTestFramework.mRequestFactory
, |
| 122 NativeTestServer.getSdchURL() + "/sdch/index?q=NotFound"
); | 126 NativeTestServer.getSdchURL() + "/sdch/index?q=NotFound"
); |
| 123 assertEquals(200, listener1.mHttpStatusCode); | 127 assertEquals(200, listener1.mHttpStatusCode); |
| 124 assertEquals("This is an index page.\n", listener1.mResponseAsString); | 128 assertEquals("This is an index page.\n", listener1.mResponseAsString); |
| 125 assertEquals(Arrays.asList("/sdch/dict/NotFound"), | 129 assertEquals(Arrays.asList("/sdch/dict/NotFound"), |
| 126 listener1.mResponseHeaders.get("Get-Dictionary")); | 130 listener1.mResponseHeaders.get("Get-Dictionary")); |
| 127 | 131 |
| 128 // Make a request to fetch /sdch/test, and make sure request succeeds. | 132 // Make a request to fetch /sdch/test, and make sure request succeeds. |
| 129 TestHttpUrlRequestListener listener2 = startAndWaitForComplete_LegacyApi
( | 133 TestHttpUrlRequestListener listener2 = startAndWaitForComplete_LegacyApi
( |
| 130 mTestFramework.mRequestFactory, NativeTestServer.getSdchURL() +
"/sdch/test"); | 134 mTestFramework.mRequestFactory, NativeTestServer.getSdchURL() +
"/sdch/test"); |
| 131 assertEquals(200, listener2.mHttpStatusCode); | 135 assertEquals(200, listener2.mHttpStatusCode); |
| 132 assertEquals("Sdch is not used.\n", listener2.mResponseAsString); | 136 assertEquals("Sdch is not used.\n", listener2.mResponseAsString); |
| 133 } | 137 } |
| 134 | 138 |
| 135 @SmallTest | 139 @SmallTest |
| 136 @Feature({"Cronet"}) | 140 @Feature({"Cronet"}) |
| 141 @OnlyRunNativeCronet |
| 137 public void testSdchEnabled() throws Exception { | 142 public void testSdchEnabled() throws Exception { |
| 138 setUp(Sdch.ENABLED, Api.ASYNC); | 143 setUp(Sdch.ENABLED, Api.ASYNC); |
| 139 String targetUrl = NativeTestServer.getSdchURL() + "/sdch/test"; | 144 String targetUrl = NativeTestServer.getSdchURL() + "/sdch/test"; |
| 140 long contextAdapter = | 145 long contextAdapter = |
| 141 getContextAdapter((CronetUrlRequestContext) mTestFramework.mCron
etEngine); | 146 getContextAdapter((CronetUrlRequestContext) mTestFramework.mCron
etEngine); |
| 142 DictionaryAddedObserver observer = | 147 DictionaryAddedObserver observer = |
| 143 new DictionaryAddedObserver(targetUrl, contextAdapter, false /**
Legacy Api */); | 148 new DictionaryAddedObserver(targetUrl, contextAdapter, false /**
Legacy Api */); |
| 144 | 149 |
| 145 // Make a request to /sdch which advertises the dictionary. | 150 // Make a request to /sdch which advertises the dictionary. |
| 146 TestUrlRequestCallback callback1 = startAndWaitForComplete(mTestFramewor
k.mCronetEngine, | 151 TestUrlRequestCallback callback1 = startAndWaitForComplete(mTestFramewor
k.mCronetEngine, |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 newObserver.waitForDictionaryAdded(); | 185 newObserver.waitForDictionaryAdded(); |
| 181 | 186 |
| 182 // Make a request to fetch encoded response at /sdch/test. | 187 // Make a request to fetch encoded response at /sdch/test. |
| 183 TestUrlRequestCallback callback3 = startAndWaitForComplete(newContext, t
argetUrl); | 188 TestUrlRequestCallback callback3 = startAndWaitForComplete(newContext, t
argetUrl); |
| 184 assertEquals(200, callback3.mResponseInfo.getHttpStatusCode()); | 189 assertEquals(200, callback3.mResponseInfo.getHttpStatusCode()); |
| 185 assertEquals("The quick brown fox jumps over the lazy dog.\n", callback3
.mResponseAsString); | 190 assertEquals("The quick brown fox jumps over the lazy dog.\n", callback3
.mResponseAsString); |
| 186 } | 191 } |
| 187 | 192 |
| 188 @SmallTest | 193 @SmallTest |
| 189 @Feature({"Cronet"}) | 194 @Feature({"Cronet"}) |
| 195 @OnlyRunNativeCronet |
| 190 public void testSdchDisabled() throws Exception { | 196 public void testSdchDisabled() throws Exception { |
| 191 setUp(Sdch.DISABLED, Api.ASYNC); | 197 setUp(Sdch.DISABLED, Api.ASYNC); |
| 192 // Make a request to /sdch. | 198 // Make a request to /sdch. |
| 193 // Since Sdch is not enabled, no dictionary should be advertised. | 199 // Since Sdch is not enabled, no dictionary should be advertised. |
| 194 TestUrlRequestCallback callback = startAndWaitForComplete(mTestFramework
.mCronetEngine, | 200 TestUrlRequestCallback callback = startAndWaitForComplete(mTestFramework
.mCronetEngine, |
| 195 NativeTestServer.getSdchURL() + "/sdch/index?q=LeQxM80O"); | 201 NativeTestServer.getSdchURL() + "/sdch/index?q=LeQxM80O"); |
| 196 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 202 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| 197 assertEquals("This is an index page.\n", callback.mResponseAsString); | 203 assertEquals("This is an index page.\n", callback.mResponseAsString); |
| 198 assertEquals(null, callback.mResponseInfo.getAllHeaders().get("Get-Dicti
onary")); | 204 assertEquals(null, callback.mResponseInfo.getAllHeaders().get("Get-Dicti
onary")); |
| 199 } | 205 } |
| 200 | 206 |
| 201 @SmallTest | 207 @SmallTest |
| 202 @Feature({"Cronet"}) | 208 @Feature({"Cronet"}) |
| 209 @OnlyRunNativeCronet |
| 203 public void testDictionaryNotFound() throws Exception { | 210 public void testDictionaryNotFound() throws Exception { |
| 204 setUp(Sdch.ENABLED, Api.ASYNC); | 211 setUp(Sdch.ENABLED, Api.ASYNC); |
| 205 // Make a request to /sdch/index which advertises a bad dictionary that | 212 // Make a request to /sdch/index which advertises a bad dictionary that |
| 206 // does not exist. | 213 // does not exist. |
| 207 TestUrlRequestCallback callback1 = startAndWaitForComplete(mTestFramewor
k.mCronetEngine, | 214 TestUrlRequestCallback callback1 = startAndWaitForComplete(mTestFramewor
k.mCronetEngine, |
| 208 NativeTestServer.getSdchURL() + "/sdch/index?q=NotFound"); | 215 NativeTestServer.getSdchURL() + "/sdch/index?q=NotFound"); |
| 209 assertEquals(200, callback1.mResponseInfo.getHttpStatusCode()); | 216 assertEquals(200, callback1.mResponseInfo.getHttpStatusCode()); |
| 210 assertEquals("This is an index page.\n", callback1.mResponseAsString); | 217 assertEquals("This is an index page.\n", callback1.mResponseAsString); |
| 211 assertEquals(Arrays.asList("/sdch/dict/NotFound"), | 218 assertEquals(Arrays.asList("/sdch/dict/NotFound"), |
| 212 callback1.mResponseInfo.getAllHeaders().get("Get-Dictionary")); | 219 callback1.mResponseInfo.getAllHeaders().get("Get-Dictionary")); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 while ((line = reader.readLine()) != null) { | 284 while ((line = reader.readLine()) != null) { |
| 278 if (line.contains(content)) { | 285 if (line.contains(content)) { |
| 279 reader.close(); | 286 reader.close(); |
| 280 return true; | 287 return true; |
| 281 } | 288 } |
| 282 } | 289 } |
| 283 reader.close(); | 290 reader.close(); |
| 284 return false; | 291 return false; |
| 285 } | 292 } |
| 286 } | 293 } |
| OLD | NEW |