| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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.content.Context; | 7 import android.content.Context; |
| 8 import android.content.ContextWrapper; | 8 import android.content.ContextWrapper; |
| 9 import android.os.ConditionVariable; | 9 import android.os.ConditionVariable; |
| 10 import android.os.Handler; | 10 import android.os.Handler; |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 @SuppressWarnings("deprecation") | 159 @SuppressWarnings("deprecation") |
| 160 public void testConfigUserAgent() throws Exception { | 160 public void testConfigUserAgent() throws Exception { |
| 161 String userAgentName = "User-Agent"; | 161 String userAgentName = "User-Agent"; |
| 162 String userAgentValue = "User-Agent-Value"; | 162 String userAgentValue = "User-Agent-Value"; |
| 163 ExperimentalCronetEngine.Builder cronetEngineBuilder = | 163 ExperimentalCronetEngine.Builder cronetEngineBuilder = |
| 164 new ExperimentalCronetEngine.Builder(getContext()); | 164 new ExperimentalCronetEngine.Builder(getContext()); |
| 165 if (testingJavaImpl()) { | 165 if (testingJavaImpl()) { |
| 166 cronetEngineBuilder.enableLegacyMode(true); | 166 cronetEngineBuilder.enableLegacyMode(true); |
| 167 } | 167 } |
| 168 cronetEngineBuilder.setUserAgent(userAgentValue); | 168 cronetEngineBuilder.setUserAgent(userAgentValue); |
| 169 CronetTestUtil.setLibraryName(cronetEngineBuilder, "cronet_tests"); | |
| 170 final CronetTestFramework testFramework = | 169 final CronetTestFramework testFramework = |
| 171 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(mUrl, cron
etEngineBuilder); | 170 startCronetTestFrameworkWithUrlAndCronetEngineBuilder(mUrl, cron
etEngineBuilder); |
| 172 NativeTestServer.shutdownNativeTestServer(); // startNativeTestServer re
turns false if it's | 171 NativeTestServer.shutdownNativeTestServer(); // startNativeTestServer re
turns false if it's |
| 173 // already running | 172 // already running |
| 174 assertTrue(NativeTestServer.startNativeTestServer(getContext())); | 173 assertTrue(NativeTestServer.startNativeTestServer(getContext())); |
| 175 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 174 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 176 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr
lRequestBuilder( | 175 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr
lRequestBuilder( |
| 177 NativeTestServer.getEchoHeaderURL(userAgentName), callback, call
back.getExecutor()); | 176 NativeTestServer.getEchoHeaderURL(userAgentName), callback, call
back.getExecutor()); |
| 178 urlRequestBuilder.build().start(); | 177 urlRequestBuilder.build().start(); |
| 179 callback.blockForDone(); | 178 callback.blockForDone(); |
| 180 assertEquals(userAgentValue, callback.mResponseAsString); | 179 assertEquals(userAgentValue, callback.mResponseAsString); |
| 181 } | 180 } |
| 182 | 181 |
| 183 @SmallTest | 182 @SmallTest |
| 184 @Feature({"Cronet"}) | 183 @Feature({"Cronet"}) |
| 185 @OnlyRunNativeCronet | 184 @OnlyRunNativeCronet |
| 186 public void testDataReductionProxyEnabled() throws Exception { | 185 public void testDataReductionProxyEnabled() throws Exception { |
| 187 final CronetTestFramework testFramework = startCronetTestFrameworkAndSki
pLibraryInit(); | 186 final CronetTestFramework testFramework = startCronetTestFrameworkAndSki
pLibraryInit(); |
| 188 | 187 |
| 189 // Ensure native code is loaded before trying to start test server. | 188 // Ensure native code is loaded before trying to start test server. |
| 190 ExperimentalCronetEngine.Builder engineBuilder = | 189 new ExperimentalCronetEngine.Builder(getContext()).build().shutdown(); |
| 191 new ExperimentalCronetEngine.Builder(getContext()); | |
| 192 CronetTestUtil.setLibraryName(engineBuilder, "cronet_tests"); | |
| 193 engineBuilder.build().shutdown(); | |
| 194 | 190 |
| 195 assertTrue(NativeTestServer.startNativeTestServer(getContext())); | 191 assertTrue(NativeTestServer.startNativeTestServer(getContext())); |
| 196 if (!NativeTestServer.isDataReductionProxySupported()) { | 192 if (!NativeTestServer.isDataReductionProxySupported()) { |
| 197 return; | 193 return; |
| 198 } | 194 } |
| 199 String serverHostPort = NativeTestServer.getHostPort(); | 195 String serverHostPort = NativeTestServer.getHostPort(); |
| 200 | 196 |
| 201 // Enable the Data Reduction Proxy and configure it to use the test | 197 // Enable the Data Reduction Proxy and configure it to use the test |
| 202 // server as its primary proxy, and to check successfully that this | 198 // server as its primary proxy, and to check successfully that this |
| 203 // proxy is OK to use. | 199 // proxy is OK to use. |
| 204 ExperimentalCronetEngine.Builder cronetEngineBuilder = | 200 ExperimentalCronetEngine.Builder cronetEngineBuilder = |
| 205 new ExperimentalCronetEngine.Builder(getContext()); | 201 new ExperimentalCronetEngine.Builder(getContext()); |
| 206 cronetEngineBuilder.enableDataReductionProxy("test-key"); | 202 cronetEngineBuilder.enableDataReductionProxy("test-key"); |
| 207 cronetEngineBuilder.setDataReductionProxyOptions(serverHostPort, "unused
.net:9999", | 203 cronetEngineBuilder.setDataReductionProxyOptions(serverHostPort, "unused
.net:9999", |
| 208 NativeTestServer.getFileURL("/secureproxychecksuccess.txt")); | 204 NativeTestServer.getFileURL("/secureproxychecksuccess.txt")); |
| 209 CronetTestUtil.setLibraryName(cronetEngineBuilder, "cronet_tests"); | |
| 210 testFramework.mCronetEngine = (CronetEngineBase) cronetEngineBuilder.bui
ld(); | 205 testFramework.mCronetEngine = (CronetEngineBase) cronetEngineBuilder.bui
ld(); |
| 211 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 206 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 212 | 207 |
| 213 // Construct and start a request that can only be returned by the test | 208 // Construct and start a request that can only be returned by the test |
| 214 // server. This request will fail if the configuration logic for the | 209 // server. This request will fail if the configuration logic for the |
| 215 // Data Reduction Proxy is not used. | 210 // Data Reduction Proxy is not used. |
| 216 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr
lRequestBuilder( | 211 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr
lRequestBuilder( |
| 217 "http://DomainThatDoesnt.Resolve/datareductionproxysuccess.txt",
callback, | 212 "http://DomainThatDoesnt.Resolve/datareductionproxysuccess.txt",
callback, |
| 218 callback.getExecutor()); | 213 callback.getExecutor()); |
| 219 urlRequestBuilder.build().start(); | 214 urlRequestBuilder.build().start(); |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 543 testFramework.mCronetEngine.shutdown(); | 538 testFramework.mCronetEngine.shutdown(); |
| 544 } | 539 } |
| 545 | 540 |
| 546 @SmallTest | 541 @SmallTest |
| 547 @Feature({"Cronet"}) | 542 @Feature({"Cronet"}) |
| 548 @OnlyRunNativeCronet // No netlogs for pure java impl | 543 @OnlyRunNativeCronet // No netlogs for pure java impl |
| 549 public void testNetLog() throws Exception { | 544 public void testNetLog() throws Exception { |
| 550 Context context = getContext(); | 545 Context context = getContext(); |
| 551 File directory = new File(PathUtils.getDataDirectory()); | 546 File directory = new File(PathUtils.getDataDirectory()); |
| 552 File file = File.createTempFile("cronet", "json", directory); | 547 File file = File.createTempFile("cronet", "json", directory); |
| 553 CronetEngine cronetEngine = new CronetUrlRequestContext( | 548 CronetEngine cronetEngine = |
| 554 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test
s")); | 549 new CronetUrlRequestContext(new CronetEngineBuilderImpl(context)
); |
| 555 // Start NetLog immediately after the request context is created to make | 550 // Start NetLog immediately after the request context is created to make |
| 556 // sure that the call won't crash the app even when the native request | 551 // sure that the call won't crash the app even when the native request |
| 557 // context is not fully initialized. See crbug.com/470196. | 552 // context is not fully initialized. See crbug.com/470196. |
| 558 cronetEngine.startNetLogToFile(file.getPath(), false); | 553 cronetEngine.startNetLogToFile(file.getPath(), false); |
| 559 | 554 |
| 560 // Start a request. | 555 // Start a request. |
| 561 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 556 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 562 UrlRequest.Builder urlRequestBuilder = | 557 UrlRequest.Builder urlRequestBuilder = |
| 563 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx
ecutor()); | 558 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx
ecutor()); |
| 564 urlRequestBuilder.build().start(); | 559 urlRequestBuilder.build().start(); |
| 565 callback.blockForDone(); | 560 callback.blockForDone(); |
| 566 cronetEngine.stopNetLog(); | 561 cronetEngine.stopNetLog(); |
| 567 assertTrue(file.exists()); | 562 assertTrue(file.exists()); |
| 568 assertTrue(file.length() != 0); | 563 assertTrue(file.length() != 0); |
| 569 assertFalse(hasBytesInNetLog(file)); | 564 assertFalse(hasBytesInNetLog(file)); |
| 570 assertTrue(file.delete()); | 565 assertTrue(file.delete()); |
| 571 assertTrue(!file.exists()); | 566 assertTrue(!file.exists()); |
| 572 } | 567 } |
| 573 | 568 |
| 574 @SmallTest | 569 @SmallTest |
| 575 @Feature({"Cronet"}) | 570 @Feature({"Cronet"}) |
| 576 @OnlyRunNativeCronet // No netlogs for pure java impl | 571 @OnlyRunNativeCronet // No netlogs for pure java impl |
| 577 public void testBoundedFileNetLog() throws Exception { | 572 public void testBoundedFileNetLog() throws Exception { |
| 578 Context context = getContext(); | 573 Context context = getContext(); |
| 579 File directory = new File(PathUtils.getDataDirectory()); | 574 File directory = new File(PathUtils.getDataDirectory()); |
| 580 File netLogDir = new File(directory, "NetLog"); | 575 File netLogDir = new File(directory, "NetLog"); |
| 581 assertFalse(netLogDir.exists()); | 576 assertFalse(netLogDir.exists()); |
| 582 assertTrue(netLogDir.mkdir()); | 577 assertTrue(netLogDir.mkdir()); |
| 583 File eventFile = new File(netLogDir, "event_file_0.json"); | 578 File eventFile = new File(netLogDir, "event_file_0.json"); |
| 584 CronetUrlRequestContext cronetEngine = new CronetUrlRequestContext( | 579 CronetUrlRequestContext cronetEngine = |
| 585 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test
s")); | 580 new CronetUrlRequestContext(new CronetEngineBuilderImpl(context)
); |
| 586 // Start NetLog immediately after the request context is created to make | 581 // Start NetLog immediately after the request context is created to make |
| 587 // sure that the call won't crash the app even when the native request | 582 // sure that the call won't crash the app even when the native request |
| 588 // context is not fully initialized. See crbug.com/470196. | 583 // context is not fully initialized. See crbug.com/470196. |
| 589 cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE
); | 584 cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE
); |
| 590 | 585 |
| 591 // Start a request. | 586 // Start a request. |
| 592 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 587 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 593 UrlRequest.Builder urlRequestBuilder = | 588 UrlRequest.Builder urlRequestBuilder = |
| 594 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx
ecutor()); | 589 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx
ecutor()); |
| 595 urlRequestBuilder.build().start(); | 590 urlRequestBuilder.build().start(); |
| 596 callback.blockForDone(); | 591 callback.blockForDone(); |
| 597 cronetEngine.stopNetLog(); | 592 cronetEngine.stopNetLog(); |
| 598 assertTrue(eventFile.exists()); | 593 assertTrue(eventFile.exists()); |
| 599 assertTrue(eventFile.length() != 0); | 594 assertTrue(eventFile.length() != 0); |
| 600 assertFalse(hasBytesInNetLog(eventFile)); | 595 assertFalse(hasBytesInNetLog(eventFile)); |
| 601 FileUtils.recursivelyDeleteFile(netLogDir); | 596 FileUtils.recursivelyDeleteFile(netLogDir); |
| 602 assertFalse(netLogDir.exists()); | 597 assertFalse(netLogDir.exists()); |
| 603 } | 598 } |
| 604 | 599 |
| 605 @SmallTest | 600 @SmallTest |
| 606 @Feature({"Cronet"}) | 601 @Feature({"Cronet"}) |
| 607 @OnlyRunNativeCronet // No netlogs for pure java impl | 602 @OnlyRunNativeCronet // No netlogs for pure java impl |
| 608 // Tests that if stopNetLog is not explicity called, CronetEngine.shutdown() | 603 // Tests that if stopNetLog is not explicity called, CronetEngine.shutdown() |
| 609 // will take care of it. crbug.com/623701. | 604 // will take care of it. crbug.com/623701. |
| 610 public void testNoStopNetLog() throws Exception { | 605 public void testNoStopNetLog() throws Exception { |
| 611 Context context = getContext(); | 606 Context context = getContext(); |
| 612 File directory = new File(PathUtils.getDataDirectory()); | 607 File directory = new File(PathUtils.getDataDirectory()); |
| 613 File file = File.createTempFile("cronet", "json", directory); | 608 File file = File.createTempFile("cronet", "json", directory); |
| 614 CronetUrlRequestContext cronetEngine = new CronetUrlRequestContext( | 609 CronetUrlRequestContext cronetEngine = |
| 615 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test
s")); | 610 new CronetUrlRequestContext(new CronetEngineBuilderImpl(context)
); |
| 616 cronetEngine.startNetLogToFile(file.getPath(), false); | 611 cronetEngine.startNetLogToFile(file.getPath(), false); |
| 617 | 612 |
| 618 // Start a request. | 613 // Start a request. |
| 619 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 614 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 620 UrlRequest.Builder urlRequestBuilder = | 615 UrlRequest.Builder urlRequestBuilder = |
| 621 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx
ecutor()); | 616 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx
ecutor()); |
| 622 urlRequestBuilder.build().start(); | 617 urlRequestBuilder.build().start(); |
| 623 callback.blockForDone(); | 618 callback.blockForDone(); |
| 624 // Shut down the engine without calling stopNetLog. | 619 // Shut down the engine without calling stopNetLog. |
| 625 cronetEngine.shutdown(); | 620 cronetEngine.shutdown(); |
| 626 assertTrue(file.exists()); | 621 assertTrue(file.exists()); |
| 627 assertTrue(file.length() != 0); | 622 assertTrue(file.length() != 0); |
| 628 assertFalse(hasBytesInNetLog(file)); | 623 assertFalse(hasBytesInNetLog(file)); |
| 629 assertTrue(file.delete()); | 624 assertTrue(file.delete()); |
| 630 assertTrue(!file.exists()); | 625 assertTrue(!file.exists()); |
| 631 } | 626 } |
| 632 | 627 |
| 633 @SmallTest | 628 @SmallTest |
| 634 @Feature({"Cronet"}) | 629 @Feature({"Cronet"}) |
| 635 @OnlyRunNativeCronet // No netlogs for pure java impl | 630 @OnlyRunNativeCronet // No netlogs for pure java impl |
| 636 // Tests that if stopNetLog is not explicity called, CronetEngine.shutdown() | 631 // Tests that if stopNetLog is not explicity called, CronetEngine.shutdown() |
| 637 // will take care of it. crbug.com/623701. | 632 // will take care of it. crbug.com/623701. |
| 638 public void testNoStopBoundedFileNetLog() throws Exception { | 633 public void testNoStopBoundedFileNetLog() throws Exception { |
| 639 Context context = getContext(); | 634 Context context = getContext(); |
| 640 File directory = new File(PathUtils.getDataDirectory()); | 635 File directory = new File(PathUtils.getDataDirectory()); |
| 641 File netLogDir = new File(directory, "NetLog"); | 636 File netLogDir = new File(directory, "NetLog"); |
| 642 assertFalse(netLogDir.exists()); | 637 assertFalse(netLogDir.exists()); |
| 643 assertTrue(netLogDir.mkdir()); | 638 assertTrue(netLogDir.mkdir()); |
| 644 File eventFile = new File(netLogDir, "event_file_0.json"); | 639 File eventFile = new File(netLogDir, "event_file_0.json"); |
| 645 CronetUrlRequestContext cronetEngine = new CronetUrlRequestContext( | 640 CronetUrlRequestContext cronetEngine = |
| 646 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test
s")); | 641 new CronetUrlRequestContext(new CronetEngineBuilderImpl(context)
); |
| 647 cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE
); | 642 cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE
); |
| 648 | 643 |
| 649 // Start a request. | 644 // Start a request. |
| 650 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 645 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 651 UrlRequest.Builder urlRequestBuilder = | 646 UrlRequest.Builder urlRequestBuilder = |
| 652 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx
ecutor()); | 647 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx
ecutor()); |
| 653 urlRequestBuilder.build().start(); | 648 urlRequestBuilder.build().start(); |
| 654 callback.blockForDone(); | 649 callback.blockForDone(); |
| 655 // Shut down the engine without calling stopNetLog. | 650 // Shut down the engine without calling stopNetLog. |
| 656 cronetEngine.shutdown(); | 651 cronetEngine.shutdown(); |
| 657 assertTrue(eventFile.exists()); | 652 assertTrue(eventFile.exists()); |
| 658 assertTrue(eventFile.length() != 0); | 653 assertTrue(eventFile.length() != 0); |
| 659 | 654 |
| 660 FileUtils.recursivelyDeleteFile(netLogDir); | 655 FileUtils.recursivelyDeleteFile(netLogDir); |
| 661 assertFalse(netLogDir.exists()); | 656 assertFalse(netLogDir.exists()); |
| 662 } | 657 } |
| 663 | 658 |
| 664 @SmallTest | 659 @SmallTest |
| 665 @Feature({"Cronet"}) | 660 @Feature({"Cronet"}) |
| 666 @OnlyRunNativeCronet | 661 @OnlyRunNativeCronet |
| 667 // Tests that NetLog contains events emitted by all live CronetEngines. | 662 // Tests that NetLog contains events emitted by all live CronetEngines. |
| 668 public void testNetLogContainEventsFromAllLiveEngines() throws Exception { | 663 public void testNetLogContainEventsFromAllLiveEngines() throws Exception { |
| 669 Context context = getContext(); | 664 Context context = getContext(); |
| 670 File directory = new File(PathUtils.getDataDirectory()); | 665 File directory = new File(PathUtils.getDataDirectory()); |
| 671 File file1 = File.createTempFile("cronet1", "json", directory); | 666 File file1 = File.createTempFile("cronet1", "json", directory); |
| 672 File file2 = File.createTempFile("cronet2", "json", directory); | 667 File file2 = File.createTempFile("cronet2", "json", directory); |
| 673 CronetEngine cronetEngine1 = new CronetUrlRequestContext( | 668 CronetEngine cronetEngine1 = |
| 674 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test
s")); | 669 new CronetUrlRequestContext(new CronetEngineBuilderImpl(context)
); |
| 675 CronetEngine cronetEngine2 = new CronetUrlRequestContext( | 670 CronetEngine cronetEngine2 = |
| 676 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test
s")); | 671 new CronetUrlRequestContext(new CronetEngineBuilderImpl(context)
); |
| 677 | 672 |
| 678 cronetEngine1.startNetLogToFile(file1.getPath(), false); | 673 cronetEngine1.startNetLogToFile(file1.getPath(), false); |
| 679 cronetEngine2.startNetLogToFile(file2.getPath(), false); | 674 cronetEngine2.startNetLogToFile(file2.getPath(), false); |
| 680 | 675 |
| 681 // Warm CronetEngine and make sure both CronetUrlRequestContexts are | 676 // Warm CronetEngine and make sure both CronetUrlRequestContexts are |
| 682 // initialized before testing the logs. | 677 // initialized before testing the logs. |
| 683 makeRequestAndCheckStatus(cronetEngine1, mUrl, 200); | 678 makeRequestAndCheckStatus(cronetEngine1, mUrl, 200); |
| 684 makeRequestAndCheckStatus(cronetEngine2, mUrl, 200); | 679 makeRequestAndCheckStatus(cronetEngine2, mUrl, 200); |
| 685 | 680 |
| 686 // Use cronetEngine1 to make a request to mUrl404. | 681 // Use cronetEngine1 to make a request to mUrl404. |
| (...skipping 25 matching lines...) Expand all Loading... |
| 712 File directory = new File(PathUtils.getDataDirectory()); | 707 File directory = new File(PathUtils.getDataDirectory()); |
| 713 File netLogDir1 = new File(directory, "NetLog1"); | 708 File netLogDir1 = new File(directory, "NetLog1"); |
| 714 assertFalse(netLogDir1.exists()); | 709 assertFalse(netLogDir1.exists()); |
| 715 assertTrue(netLogDir1.mkdir()); | 710 assertTrue(netLogDir1.mkdir()); |
| 716 File netLogDir2 = new File(directory, "NetLog2"); | 711 File netLogDir2 = new File(directory, "NetLog2"); |
| 717 assertFalse(netLogDir2.exists()); | 712 assertFalse(netLogDir2.exists()); |
| 718 assertTrue(netLogDir2.mkdir()); | 713 assertTrue(netLogDir2.mkdir()); |
| 719 File eventFile1 = new File(netLogDir1, "event_file_0.json"); | 714 File eventFile1 = new File(netLogDir1, "event_file_0.json"); |
| 720 File eventFile2 = new File(netLogDir2, "event_file_0.json"); | 715 File eventFile2 = new File(netLogDir2, "event_file_0.json"); |
| 721 | 716 |
| 722 CronetUrlRequestContext cronetEngine1 = new CronetUrlRequestContext( | 717 CronetUrlRequestContext cronetEngine1 = |
| 723 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test
s")); | 718 new CronetUrlRequestContext(new CronetEngineBuilderImpl(context)
); |
| 724 CronetUrlRequestContext cronetEngine2 = new CronetUrlRequestContext( | 719 CronetUrlRequestContext cronetEngine2 = |
| 725 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test
s")); | 720 new CronetUrlRequestContext(new CronetEngineBuilderImpl(context)
); |
| 726 | 721 |
| 727 cronetEngine1.startNetLogToDisk(netLogDir1.getPath(), false, MAX_FILE_SI
ZE); | 722 cronetEngine1.startNetLogToDisk(netLogDir1.getPath(), false, MAX_FILE_SI
ZE); |
| 728 cronetEngine2.startNetLogToDisk(netLogDir2.getPath(), false, MAX_FILE_SI
ZE); | 723 cronetEngine2.startNetLogToDisk(netLogDir2.getPath(), false, MAX_FILE_SI
ZE); |
| 729 | 724 |
| 730 // Warm CronetEngine and make sure both CronetUrlRequestContexts are | 725 // Warm CronetEngine and make sure both CronetUrlRequestContexts are |
| 731 // initialized before testing the logs. | 726 // initialized before testing the logs. |
| 732 makeRequestAndCheckStatus(cronetEngine1, mUrl, 200); | 727 makeRequestAndCheckStatus(cronetEngine1, mUrl, 200); |
| 733 makeRequestAndCheckStatus(cronetEngine2, mUrl, 200); | 728 makeRequestAndCheckStatus(cronetEngine2, mUrl, 200); |
| 734 | 729 |
| 735 // Use cronetEngine1 to make a request to mUrl404. | 730 // Use cronetEngine1 to make a request to mUrl404. |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1025 assertFalse(netLogDir.exists()); | 1020 assertFalse(netLogDir.exists()); |
| 1026 } | 1021 } |
| 1027 | 1022 |
| 1028 @SmallTest | 1023 @SmallTest |
| 1029 @Feature({"Cronet"}) | 1024 @Feature({"Cronet"}) |
| 1030 @OnlyRunNativeCronet | 1025 @OnlyRunNativeCronet |
| 1031 public void testNetLogWithBytes() throws Exception { | 1026 public void testNetLogWithBytes() throws Exception { |
| 1032 Context context = getContext(); | 1027 Context context = getContext(); |
| 1033 File directory = new File(PathUtils.getDataDirectory()); | 1028 File directory = new File(PathUtils.getDataDirectory()); |
| 1034 File file = File.createTempFile("cronet", "json", directory); | 1029 File file = File.createTempFile("cronet", "json", directory); |
| 1035 CronetEngine cronetEngine = new CronetUrlRequestContext( | 1030 CronetEngine cronetEngine = |
| 1036 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test
s")); | 1031 new CronetUrlRequestContext(new CronetEngineBuilderImpl(context)
); |
| 1037 // Start NetLog with logAll as true. | 1032 // Start NetLog with logAll as true. |
| 1038 cronetEngine.startNetLogToFile(file.getPath(), true); | 1033 cronetEngine.startNetLogToFile(file.getPath(), true); |
| 1039 // Start a request. | 1034 // Start a request. |
| 1040 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1035 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 1041 UrlRequest.Builder urlRequestBuilder = | 1036 UrlRequest.Builder urlRequestBuilder = |
| 1042 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx
ecutor()); | 1037 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx
ecutor()); |
| 1043 urlRequestBuilder.build().start(); | 1038 urlRequestBuilder.build().start(); |
| 1044 callback.blockForDone(); | 1039 callback.blockForDone(); |
| 1045 cronetEngine.stopNetLog(); | 1040 cronetEngine.stopNetLog(); |
| 1046 assertTrue(file.exists()); | 1041 assertTrue(file.exists()); |
| 1047 assertTrue(file.length() != 0); | 1042 assertTrue(file.length() != 0); |
| 1048 assertTrue(hasBytesInNetLog(file)); | 1043 assertTrue(hasBytesInNetLog(file)); |
| 1049 assertTrue(file.delete()); | 1044 assertTrue(file.delete()); |
| 1050 assertTrue(!file.exists()); | 1045 assertTrue(!file.exists()); |
| 1051 } | 1046 } |
| 1052 | 1047 |
| 1053 @SmallTest | 1048 @SmallTest |
| 1054 @Feature({"Cronet"}) | 1049 @Feature({"Cronet"}) |
| 1055 @OnlyRunNativeCronet | 1050 @OnlyRunNativeCronet |
| 1056 public void testBoundedFileNetLogWithBytes() throws Exception { | 1051 public void testBoundedFileNetLogWithBytes() throws Exception { |
| 1057 Context context = getContext(); | 1052 Context context = getContext(); |
| 1058 File directory = new File(PathUtils.getDataDirectory()); | 1053 File directory = new File(PathUtils.getDataDirectory()); |
| 1059 File netLogDir = new File(directory, "NetLog"); | 1054 File netLogDir = new File(directory, "NetLog"); |
| 1060 assertFalse(netLogDir.exists()); | 1055 assertFalse(netLogDir.exists()); |
| 1061 assertTrue(netLogDir.mkdir()); | 1056 assertTrue(netLogDir.mkdir()); |
| 1062 File eventFile = new File(netLogDir, "event_file_0.json"); | 1057 File eventFile = new File(netLogDir, "event_file_0.json"); |
| 1063 CronetUrlRequestContext cronetEngine = new CronetUrlRequestContext( | 1058 CronetUrlRequestContext cronetEngine = |
| 1064 new CronetEngineBuilderImpl(context).setLibraryName("cronet_test
s")); | 1059 new CronetUrlRequestContext(new CronetEngineBuilderImpl(context)
); |
| 1065 // Start NetLog with logAll as true. | 1060 // Start NetLog with logAll as true. |
| 1066 cronetEngine.startNetLogToDisk(netLogDir.getPath(), true, MAX_FILE_SIZE)
; | 1061 cronetEngine.startNetLogToDisk(netLogDir.getPath(), true, MAX_FILE_SIZE)
; |
| 1067 // Start a request. | 1062 // Start a request. |
| 1068 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1063 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 1069 UrlRequest.Builder urlRequestBuilder = | 1064 UrlRequest.Builder urlRequestBuilder = |
| 1070 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx
ecutor()); | 1065 cronetEngine.newUrlRequestBuilder(mUrl, callback, callback.getEx
ecutor()); |
| 1071 urlRequestBuilder.build().start(); | 1066 urlRequestBuilder.build().start(); |
| 1072 callback.blockForDone(); | 1067 callback.blockForDone(); |
| 1073 cronetEngine.stopNetLog(); | 1068 cronetEngine.stopNetLog(); |
| 1074 | 1069 |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1419 return mWasCalled; | 1414 return mWasCalled; |
| 1420 } | 1415 } |
| 1421 } | 1416 } |
| 1422 | 1417 |
| 1423 @SmallTest | 1418 @SmallTest |
| 1424 @Feature({"Cronet"}) | 1419 @Feature({"Cronet"}) |
| 1425 @OnlyRunNativeCronet | 1420 @OnlyRunNativeCronet |
| 1426 public void testSkipLibraryLoading() throws Exception { | 1421 public void testSkipLibraryLoading() throws Exception { |
| 1427 CronetEngineBuilderImpl builder = new CronetEngineBuilderImpl(getContext
()); | 1422 CronetEngineBuilderImpl builder = new CronetEngineBuilderImpl(getContext
()); |
| 1428 TestBadLibraryLoader loader = new TestBadLibraryLoader(); | 1423 TestBadLibraryLoader loader = new TestBadLibraryLoader(); |
| 1429 builder.setLibraryLoader(loader).setLibraryName("cronet_tests"); | 1424 builder.setLibraryLoader(loader); |
| 1430 try { | 1425 try { |
| 1431 // ensureInitialized() calls native code to check the version right
after library load | 1426 // ensureInitialized() calls native code to check the version right
after library load |
| 1432 // and will error with the message below if library loading was skip
ped | 1427 // and will error with the message below if library loading was skip
ped |
| 1433 CronetLibraryLoader.ensureInitialized(getContext().getApplicationCon
text(), builder); | 1428 CronetLibraryLoader.ensureInitialized(getContext().getApplicationCon
text(), builder); |
| 1434 fail("Native library should not be loaded"); | 1429 fail("Native library should not be loaded"); |
| 1435 } catch (UnsatisfiedLinkError e) { | 1430 } catch (UnsatisfiedLinkError e) { |
| 1436 assertTrue(loader.wasCalled()); | 1431 assertTrue(loader.wasCalled()); |
| 1437 } | 1432 } |
| 1438 } | 1433 } |
| 1439 | 1434 |
| 1440 // Creates a CronetEngine on another thread and then one on the main thread.
This shouldn't | 1435 // Creates a CronetEngine on another thread and then one on the main thread.
This shouldn't |
| 1441 // crash. | 1436 // crash. |
| 1442 @SmallTest | 1437 @SmallTest |
| 1443 @Feature({"Cronet"}) | 1438 @Feature({"Cronet"}) |
| 1444 public void testThreadedStartup() throws Exception { | 1439 public void testThreadedStartup() throws Exception { |
| 1445 final ConditionVariable otherThreadDone = new ConditionVariable(); | 1440 final ConditionVariable otherThreadDone = new ConditionVariable(); |
| 1446 final ConditionVariable uiThreadDone = new ConditionVariable(); | 1441 final ConditionVariable uiThreadDone = new ConditionVariable(); |
| 1447 new Handler(Looper.getMainLooper()).post(new Runnable() { | 1442 new Handler(Looper.getMainLooper()).post(new Runnable() { |
| 1448 public void run() { | 1443 public void run() { |
| 1449 final ExperimentalCronetEngine.Builder builder = | 1444 final ExperimentalCronetEngine.Builder builder = |
| 1450 new ExperimentalCronetEngine.Builder(getContext()); | 1445 new ExperimentalCronetEngine.Builder(getContext()); |
| 1451 CronetTestUtil.setLibraryName(builder, "cronet_tests"); | |
| 1452 new Thread() { | 1446 new Thread() { |
| 1453 public void run() { | 1447 public void run() { |
| 1454 CronetEngine cronetEngine = builder.build(); | 1448 CronetEngine cronetEngine = builder.build(); |
| 1455 otherThreadDone.open(); | 1449 otherThreadDone.open(); |
| 1456 cronetEngine.shutdown(); | 1450 cronetEngine.shutdown(); |
| 1457 } | 1451 } |
| 1458 }.start(); | 1452 }.start(); |
| 1459 otherThreadDone.block(); | 1453 otherThreadDone.block(); |
| 1460 builder.build().shutdown(); | 1454 builder.build().shutdown(); |
| 1461 uiThreadDone.open(); | 1455 uiThreadDone.open(); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1482 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1476 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 1483 URL requestUrl = | 1477 URL requestUrl = |
| 1484 new URL("http", resolverTestHostname, testUrl.getPort(), testUrl
.getFile()); | 1478 new URL("http", resolverTestHostname, testUrl.getPort(), testUrl
.getFile()); |
| 1485 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr
lRequestBuilder( | 1479 UrlRequest.Builder urlRequestBuilder = testFramework.mCronetEngine.newUr
lRequestBuilder( |
| 1486 requestUrl.toString(), callback, callback.getExecutor()); | 1480 requestUrl.toString(), callback, callback.getExecutor()); |
| 1487 urlRequestBuilder.build().start(); | 1481 urlRequestBuilder.build().start(); |
| 1488 callback.blockForDone(); | 1482 callback.blockForDone(); |
| 1489 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1483 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| 1490 } | 1484 } |
| 1491 } | 1485 } |
| OLD | NEW |