| 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; | |
| 8 import android.content.ContextWrapper; | 7 import android.content.ContextWrapper; |
| 9 import android.os.ConditionVariable; | 8 import android.os.ConditionVariable; |
| 10 import android.os.Handler; | 9 import android.os.Handler; |
| 11 import android.os.Looper; | 10 import android.os.Looper; |
| 12 import android.os.StrictMode; | 11 import android.os.StrictMode; |
| 13 import android.test.suitebuilder.annotation.SmallTest; | 12 import android.test.suitebuilder.annotation.SmallTest; |
| 14 | 13 |
| 15 import org.chromium.base.FileUtils; | 14 import org.chromium.base.FileUtils; |
| 16 import org.chromium.base.PathUtils; | 15 import org.chromium.base.PathUtils; |
| 17 import org.chromium.base.annotations.JNINamespace; | 16 import org.chromium.base.annotations.JNINamespace; |
| (...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 callback.waitForNextStep(); | 528 callback.waitForNextStep(); |
| 530 assertEquals(ResponseStep.ON_RESPONSE_STARTED, callback.mResponseStep); | 529 assertEquals(ResponseStep.ON_RESPONSE_STARTED, callback.mResponseStep); |
| 531 urlRequest.cancel(); | 530 urlRequest.cancel(); |
| 532 testFramework.mCronetEngine.shutdown(); | 531 testFramework.mCronetEngine.shutdown(); |
| 533 } | 532 } |
| 534 | 533 |
| 535 @SmallTest | 534 @SmallTest |
| 536 @Feature({"Cronet"}) | 535 @Feature({"Cronet"}) |
| 537 @OnlyRunNativeCronet // No netlogs for pure java impl | 536 @OnlyRunNativeCronet // No netlogs for pure java impl |
| 538 public void testNetLog() throws Exception { | 537 public void testNetLog() throws Exception { |
| 539 Context context = getContext(); | 538 File directory = new File(PathUtils.getDataDirectory()); |
| 540 File directory = new File(PathUtils.getDataDirectory(context)); | |
| 541 File file = File.createTempFile("cronet", "json", directory); | 539 File file = File.createTempFile("cronet", "json", directory); |
| 542 CronetEngine cronetEngine = new CronetUrlRequestContext( | 540 CronetEngine cronetEngine = new CronetUrlRequestContext( |
| 543 new CronetEngine.Builder(context).setLibraryName("cronet_tests")
); | 541 new CronetEngine.Builder(getContext()).setLibraryName("cronet_te
sts")); |
| 544 // Start NetLog immediately after the request context is created to make | 542 // Start NetLog immediately after the request context is created to make |
| 545 // sure that the call won't crash the app even when the native request | 543 // sure that the call won't crash the app even when the native request |
| 546 // context is not fully initialized. See crbug.com/470196. | 544 // context is not fully initialized. See crbug.com/470196. |
| 547 cronetEngine.startNetLogToFile(file.getPath(), false); | 545 cronetEngine.startNetLogToFile(file.getPath(), false); |
| 548 | 546 |
| 549 // Start a request. | 547 // Start a request. |
| 550 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 548 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 551 UrlRequest.Builder urlRequestBuilder = | 549 UrlRequest.Builder urlRequestBuilder = |
| 552 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c
ronetEngine); | 550 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c
ronetEngine); |
| 553 urlRequestBuilder.build().start(); | 551 urlRequestBuilder.build().start(); |
| 554 callback.blockForDone(); | 552 callback.blockForDone(); |
| 555 cronetEngine.stopNetLog(); | 553 cronetEngine.stopNetLog(); |
| 556 assertTrue(file.exists()); | 554 assertTrue(file.exists()); |
| 557 assertTrue(file.length() != 0); | 555 assertTrue(file.length() != 0); |
| 558 assertFalse(hasBytesInNetLog(file)); | 556 assertFalse(hasBytesInNetLog(file)); |
| 559 assertTrue(file.delete()); | 557 assertTrue(file.delete()); |
| 560 assertTrue(!file.exists()); | 558 assertTrue(!file.exists()); |
| 561 } | 559 } |
| 562 | 560 |
| 563 @SmallTest | 561 @SmallTest |
| 564 @Feature({"Cronet"}) | 562 @Feature({"Cronet"}) |
| 565 @OnlyRunNativeCronet // No netlogs for pure java impl | 563 @OnlyRunNativeCronet // No netlogs for pure java impl |
| 566 public void testBoundedFileNetLog() throws Exception { | 564 public void testBoundedFileNetLog() throws Exception { |
| 567 Context context = getContext(); | 565 File directory = new File(PathUtils.getDataDirectory()); |
| 568 File directory = new File(PathUtils.getDataDirectory(context)); | |
| 569 File netLogDir = new File(directory, "NetLog"); | 566 File netLogDir = new File(directory, "NetLog"); |
| 570 assertFalse(netLogDir.exists()); | 567 assertFalse(netLogDir.exists()); |
| 571 assertTrue(netLogDir.mkdir()); | 568 assertTrue(netLogDir.mkdir()); |
| 572 File eventFile = new File(netLogDir, "event_file_0.json"); | 569 File eventFile = new File(netLogDir, "event_file_0.json"); |
| 573 CronetEngine cronetEngine = new CronetUrlRequestContext( | 570 CronetEngine cronetEngine = new CronetUrlRequestContext( |
| 574 new CronetEngine.Builder(context).setLibraryName("cronet_tests")
); | 571 new CronetEngine.Builder(getContext()).setLibraryName("cronet_te
sts")); |
| 575 // Start NetLog immediately after the request context is created to make | 572 // Start NetLog immediately after the request context is created to make |
| 576 // sure that the call won't crash the app even when the native request | 573 // sure that the call won't crash the app even when the native request |
| 577 // context is not fully initialized. See crbug.com/470196. | 574 // context is not fully initialized. See crbug.com/470196. |
| 578 cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE
); | 575 cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE
); |
| 579 | 576 |
| 580 // Start a request. | 577 // Start a request. |
| 581 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 578 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 582 UrlRequest.Builder urlRequestBuilder = | 579 UrlRequest.Builder urlRequestBuilder = |
| 583 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c
ronetEngine); | 580 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c
ronetEngine); |
| 584 urlRequestBuilder.build().start(); | 581 urlRequestBuilder.build().start(); |
| 585 callback.blockForDone(); | 582 callback.blockForDone(); |
| 586 cronetEngine.stopNetLog(); | 583 cronetEngine.stopNetLog(); |
| 587 assertTrue(eventFile.exists()); | 584 assertTrue(eventFile.exists()); |
| 588 assertTrue(eventFile.length() != 0); | 585 assertTrue(eventFile.length() != 0); |
| 589 assertFalse(hasBytesInNetLog(eventFile)); | 586 assertFalse(hasBytesInNetLog(eventFile)); |
| 590 FileUtils.recursivelyDeleteFile(netLogDir); | 587 FileUtils.recursivelyDeleteFile(netLogDir); |
| 591 assertFalse(netLogDir.exists()); | 588 assertFalse(netLogDir.exists()); |
| 592 } | 589 } |
| 593 | 590 |
| 594 @SmallTest | 591 @SmallTest |
| 595 @Feature({"Cronet"}) | 592 @Feature({"Cronet"}) |
| 596 @OnlyRunNativeCronet // No netlogs for pure java impl | 593 @OnlyRunNativeCronet // No netlogs for pure java impl |
| 597 // Tests that if stopNetLog is not explicity called, CronetEngine.shutdown() | 594 // Tests that if stopNetLog is not explicity called, CronetEngine.shutdown() |
| 598 // will take care of it. crbug.com/623701. | 595 // will take care of it. crbug.com/623701. |
| 599 public void testNoStopNetLog() throws Exception { | 596 public void testNoStopNetLog() throws Exception { |
| 600 Context context = getContext(); | 597 File directory = new File(PathUtils.getDataDirectory()); |
| 601 File directory = new File(PathUtils.getDataDirectory(context)); | |
| 602 File file = File.createTempFile("cronet", "json", directory); | 598 File file = File.createTempFile("cronet", "json", directory); |
| 603 CronetEngine cronetEngine = new CronetUrlRequestContext( | 599 CronetEngine cronetEngine = new CronetUrlRequestContext( |
| 604 new CronetEngine.Builder(context).setLibraryName("cronet_tests")
); | 600 new CronetEngine.Builder(getContext()).setLibraryName("cronet_te
sts")); |
| 605 cronetEngine.startNetLogToFile(file.getPath(), false); | 601 cronetEngine.startNetLogToFile(file.getPath(), false); |
| 606 | 602 |
| 607 // Start a request. | 603 // Start a request. |
| 608 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 604 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 609 UrlRequest.Builder urlRequestBuilder = | 605 UrlRequest.Builder urlRequestBuilder = |
| 610 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c
ronetEngine); | 606 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c
ronetEngine); |
| 611 urlRequestBuilder.build().start(); | 607 urlRequestBuilder.build().start(); |
| 612 callback.blockForDone(); | 608 callback.blockForDone(); |
| 613 // Shut down the engine without calling stopNetLog. | 609 // Shut down the engine without calling stopNetLog. |
| 614 cronetEngine.shutdown(); | 610 cronetEngine.shutdown(); |
| 615 assertTrue(file.exists()); | 611 assertTrue(file.exists()); |
| 616 assertTrue(file.length() != 0); | 612 assertTrue(file.length() != 0); |
| 617 assertFalse(hasBytesInNetLog(file)); | 613 assertFalse(hasBytesInNetLog(file)); |
| 618 assertTrue(file.delete()); | 614 assertTrue(file.delete()); |
| 619 assertTrue(!file.exists()); | 615 assertTrue(!file.exists()); |
| 620 } | 616 } |
| 621 | 617 |
| 622 @SmallTest | 618 @SmallTest |
| 623 @Feature({"Cronet"}) | 619 @Feature({"Cronet"}) |
| 624 @OnlyRunNativeCronet // No netlogs for pure java impl | 620 @OnlyRunNativeCronet // No netlogs for pure java impl |
| 625 // Tests that if stopNetLog is not explicity called, CronetEngine.shutdown() | 621 // Tests that if stopNetLog is not explicity called, CronetEngine.shutdown() |
| 626 // will take care of it. crbug.com/623701. | 622 // will take care of it. crbug.com/623701. |
| 627 public void testNoStopBoundedFileNetLog() throws Exception { | 623 public void testNoStopBoundedFileNetLog() throws Exception { |
| 628 Context context = getContext(); | 624 File directory = new File(PathUtils.getDataDirectory()); |
| 629 File directory = new File(PathUtils.getDataDirectory(context)); | |
| 630 File netLogDir = new File(directory, "NetLog"); | 625 File netLogDir = new File(directory, "NetLog"); |
| 631 assertFalse(netLogDir.exists()); | 626 assertFalse(netLogDir.exists()); |
| 632 assertTrue(netLogDir.mkdir()); | 627 assertTrue(netLogDir.mkdir()); |
| 633 File eventFile = new File(netLogDir, "event_file_0.json"); | 628 File eventFile = new File(netLogDir, "event_file_0.json"); |
| 634 CronetEngine cronetEngine = new CronetUrlRequestContext( | 629 CronetEngine cronetEngine = new CronetUrlRequestContext( |
| 635 new CronetEngine.Builder(context).setLibraryName("cronet_tests")
); | 630 new CronetEngine.Builder(getContext()).setLibraryName("cronet_te
sts")); |
| 636 cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE
); | 631 cronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE
); |
| 637 | 632 |
| 638 // Start a request. | 633 // Start a request. |
| 639 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 634 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 640 UrlRequest.Builder urlRequestBuilder = | 635 UrlRequest.Builder urlRequestBuilder = |
| 641 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c
ronetEngine); | 636 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c
ronetEngine); |
| 642 urlRequestBuilder.build().start(); | 637 urlRequestBuilder.build().start(); |
| 643 callback.blockForDone(); | 638 callback.blockForDone(); |
| 644 // Shut down the engine without calling stopNetLog. | 639 // Shut down the engine without calling stopNetLog. |
| 645 cronetEngine.shutdown(); | 640 cronetEngine.shutdown(); |
| 646 assertTrue(eventFile.exists()); | 641 assertTrue(eventFile.exists()); |
| 647 assertTrue(eventFile.length() != 0); | 642 assertTrue(eventFile.length() != 0); |
| 648 | 643 |
| 649 FileUtils.recursivelyDeleteFile(netLogDir); | 644 FileUtils.recursivelyDeleteFile(netLogDir); |
| 650 assertFalse(netLogDir.exists()); | 645 assertFalse(netLogDir.exists()); |
| 651 } | 646 } |
| 652 | 647 |
| 653 @SmallTest | 648 @SmallTest |
| 654 @Feature({"Cronet"}) | 649 @Feature({"Cronet"}) |
| 655 @OnlyRunNativeCronet | 650 @OnlyRunNativeCronet |
| 656 // Tests that NetLog contains events emitted by all live CronetEngines. | 651 // Tests that NetLog contains events emitted by all live CronetEngines. |
| 657 public void testNetLogContainEventsFromAllLiveEngines() throws Exception { | 652 public void testNetLogContainEventsFromAllLiveEngines() throws Exception { |
| 658 Context context = getContext(); | 653 File directory = new File(PathUtils.getDataDirectory()); |
| 659 File directory = new File(PathUtils.getDataDirectory(context)); | |
| 660 File file1 = File.createTempFile("cronet1", "json", directory); | 654 File file1 = File.createTempFile("cronet1", "json", directory); |
| 661 File file2 = File.createTempFile("cronet2", "json", directory); | 655 File file2 = File.createTempFile("cronet2", "json", directory); |
| 662 CronetEngine cronetEngine1 = new CronetUrlRequestContext( | 656 CronetEngine cronetEngine1 = new CronetUrlRequestContext( |
| 663 new CronetEngine.Builder(context).setLibraryName("cronet_tests")
); | 657 new CronetEngine.Builder(getContext()).setLibraryName("cronet_te
sts")); |
| 664 CronetEngine cronetEngine2 = new CronetUrlRequestContext( | 658 CronetEngine cronetEngine2 = new CronetUrlRequestContext( |
| 665 new CronetEngine.Builder(context).setLibraryName("cronet_tests")
); | 659 new CronetEngine.Builder(getContext()).setLibraryName("cronet_te
sts")); |
| 666 | 660 |
| 667 cronetEngine1.startNetLogToFile(file1.getPath(), false); | 661 cronetEngine1.startNetLogToFile(file1.getPath(), false); |
| 668 cronetEngine2.startNetLogToFile(file2.getPath(), false); | 662 cronetEngine2.startNetLogToFile(file2.getPath(), false); |
| 669 | 663 |
| 670 // Warm CronetEngine and make sure both CronetUrlRequestContexts are | 664 // Warm CronetEngine and make sure both CronetUrlRequestContexts are |
| 671 // initialized before testing the logs. | 665 // initialized before testing the logs. |
| 672 makeRequestAndCheckStatus(cronetEngine1, mUrl, 200); | 666 makeRequestAndCheckStatus(cronetEngine1, mUrl, 200); |
| 673 makeRequestAndCheckStatus(cronetEngine2, mUrl, 200); | 667 makeRequestAndCheckStatus(cronetEngine2, mUrl, 200); |
| 674 | 668 |
| 675 // Use cronetEngine1 to make a request to mUrl404. | 669 // Use cronetEngine1 to make a request to mUrl404. |
| (...skipping 14 matching lines...) Expand all Loading... |
| 690 assertTrue(containsStringInNetLog(file2, mUrl500)); | 684 assertTrue(containsStringInNetLog(file2, mUrl500)); |
| 691 assertTrue(file1.delete()); | 685 assertTrue(file1.delete()); |
| 692 assertTrue(file2.delete()); | 686 assertTrue(file2.delete()); |
| 693 } | 687 } |
| 694 | 688 |
| 695 @SmallTest | 689 @SmallTest |
| 696 @Feature({"Cronet"}) | 690 @Feature({"Cronet"}) |
| 697 @OnlyRunNativeCronet | 691 @OnlyRunNativeCronet |
| 698 // Tests that NetLog contains events emitted by all live CronetEngines. | 692 // Tests that NetLog contains events emitted by all live CronetEngines. |
| 699 public void testBoundedFileNetLogContainEventsFromAllLiveEngines() throws Ex
ception { | 693 public void testBoundedFileNetLogContainEventsFromAllLiveEngines() throws Ex
ception { |
| 700 Context context = getContext(); | 694 File directory = new File(PathUtils.getDataDirectory()); |
| 701 File directory = new File(PathUtils.getDataDirectory(context)); | |
| 702 File netLogDir1 = new File(directory, "NetLog1"); | 695 File netLogDir1 = new File(directory, "NetLog1"); |
| 703 assertFalse(netLogDir1.exists()); | 696 assertFalse(netLogDir1.exists()); |
| 704 assertTrue(netLogDir1.mkdir()); | 697 assertTrue(netLogDir1.mkdir()); |
| 705 File netLogDir2 = new File(directory, "NetLog2"); | 698 File netLogDir2 = new File(directory, "NetLog2"); |
| 706 assertFalse(netLogDir2.exists()); | 699 assertFalse(netLogDir2.exists()); |
| 707 assertTrue(netLogDir2.mkdir()); | 700 assertTrue(netLogDir2.mkdir()); |
| 708 File eventFile1 = new File(netLogDir1, "event_file_0.json"); | 701 File eventFile1 = new File(netLogDir1, "event_file_0.json"); |
| 709 File eventFile2 = new File(netLogDir2, "event_file_0.json"); | 702 File eventFile2 = new File(netLogDir2, "event_file_0.json"); |
| 710 | 703 |
| 711 CronetUrlRequestContext cronetEngine1 = new CronetUrlRequestContext( | 704 CronetUrlRequestContext cronetEngine1 = new CronetUrlRequestContext( |
| 712 new CronetEngine.Builder(context).setLibraryName("cronet_tests")
); | 705 new CronetEngine.Builder(getContext()).setLibraryName("cronet_te
sts")); |
| 713 CronetUrlRequestContext cronetEngine2 = new CronetUrlRequestContext( | 706 CronetUrlRequestContext cronetEngine2 = new CronetUrlRequestContext( |
| 714 new CronetEngine.Builder(context).setLibraryName("cronet_tests")
); | 707 new CronetEngine.Builder(getContext()).setLibraryName("cronet_te
sts")); |
| 715 | 708 |
| 716 cronetEngine1.startNetLogToDisk(netLogDir1.getPath(), false, MAX_FILE_SI
ZE); | 709 cronetEngine1.startNetLogToDisk(netLogDir1.getPath(), false, MAX_FILE_SI
ZE); |
| 717 cronetEngine2.startNetLogToDisk(netLogDir2.getPath(), false, MAX_FILE_SI
ZE); | 710 cronetEngine2.startNetLogToDisk(netLogDir2.getPath(), false, MAX_FILE_SI
ZE); |
| 718 | 711 |
| 719 // Warm CronetEngine and make sure both CronetUrlRequestContexts are | 712 // Warm CronetEngine and make sure both CronetUrlRequestContexts are |
| 720 // initialized before testing the logs. | 713 // initialized before testing the logs. |
| 721 makeRequestAndCheckStatus(cronetEngine1, mUrl, 200); | 714 makeRequestAndCheckStatus(cronetEngine1, mUrl, 200); |
| 722 makeRequestAndCheckStatus(cronetEngine2, mUrl, 200); | 715 makeRequestAndCheckStatus(cronetEngine2, mUrl, 200); |
| 723 | 716 |
| 724 // Use cronetEngine1 to make a request to mUrl404. | 717 // Use cronetEngine1 to make a request to mUrl404. |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 799 @OnlyRunNativeCronet | 792 @OnlyRunNativeCronet |
| 800 public void testNetLogAfterShutdown() throws Exception { | 793 public void testNetLogAfterShutdown() throws Exception { |
| 801 final CronetTestFramework testFramework = startCronetTestFramework(); | 794 final CronetTestFramework testFramework = startCronetTestFramework(); |
| 802 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 795 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 803 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 796 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( |
| 804 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng
ine); | 797 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng
ine); |
| 805 urlRequestBuilder.build().start(); | 798 urlRequestBuilder.build().start(); |
| 806 callback.blockForDone(); | 799 callback.blockForDone(); |
| 807 testFramework.mCronetEngine.shutdown(); | 800 testFramework.mCronetEngine.shutdown(); |
| 808 | 801 |
| 809 File directory = new File(PathUtils.getDataDirectory(getContext())); | 802 File directory = new File(PathUtils.getDataDirectory()); |
| 810 File file = File.createTempFile("cronet", "json", directory); | 803 File file = File.createTempFile("cronet", "json", directory); |
| 811 try { | 804 try { |
| 812 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false)
; | 805 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false)
; |
| 813 fail("Should throw an exception."); | 806 fail("Should throw an exception."); |
| 814 } catch (Exception e) { | 807 } catch (Exception e) { |
| 815 assertEquals("Engine is shut down.", e.getMessage()); | 808 assertEquals("Engine is shut down.", e.getMessage()); |
| 816 } | 809 } |
| 817 assertFalse(hasBytesInNetLog(file)); | 810 assertFalse(hasBytesInNetLog(file)); |
| 818 assertTrue(file.delete()); | 811 assertTrue(file.delete()); |
| 819 assertTrue(!file.exists()); | 812 assertTrue(!file.exists()); |
| 820 } | 813 } |
| 821 | 814 |
| 822 @SmallTest | 815 @SmallTest |
| 823 @Feature({"Cronet"}) | 816 @Feature({"Cronet"}) |
| 824 @OnlyRunNativeCronet | 817 @OnlyRunNativeCronet |
| 825 public void testBoundedFileNetLogAfterShutdown() throws Exception { | 818 public void testBoundedFileNetLogAfterShutdown() throws Exception { |
| 826 final CronetTestFramework testFramework = startCronetTestFramework(); | 819 final CronetTestFramework testFramework = startCronetTestFramework(); |
| 827 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 820 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 828 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 821 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( |
| 829 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng
ine); | 822 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng
ine); |
| 830 urlRequestBuilder.build().start(); | 823 urlRequestBuilder.build().start(); |
| 831 callback.blockForDone(); | 824 callback.blockForDone(); |
| 832 testFramework.mCronetEngine.shutdown(); | 825 testFramework.mCronetEngine.shutdown(); |
| 833 | 826 |
| 834 File directory = new File(PathUtils.getDataDirectory(getContext())); | 827 File directory = new File(PathUtils.getDataDirectory()); |
| 835 File netLogDir = new File(directory, "NetLog"); | 828 File netLogDir = new File(directory, "NetLog"); |
| 836 assertFalse(netLogDir.exists()); | 829 assertFalse(netLogDir.exists()); |
| 837 assertTrue(netLogDir.mkdir()); | 830 assertTrue(netLogDir.mkdir()); |
| 838 File constantsFile = new File(netLogDir, "constants.json"); | 831 File constantsFile = new File(netLogDir, "constants.json"); |
| 839 try { | 832 try { |
| 840 testFramework.mCronetEngine.startNetLogToDisk( | 833 testFramework.mCronetEngine.startNetLogToDisk( |
| 841 netLogDir.getPath(), false, MAX_FILE_SIZE); | 834 netLogDir.getPath(), false, MAX_FILE_SIZE); |
| 842 fail("Should throw an exception."); | 835 fail("Should throw an exception."); |
| 843 } catch (Exception e) { | 836 } catch (Exception e) { |
| 844 assertEquals("Engine is shut down.", e.getMessage()); | 837 assertEquals("Engine is shut down.", e.getMessage()); |
| 845 } | 838 } |
| 846 assertFalse(constantsFile.exists()); | 839 assertFalse(constantsFile.exists()); |
| 847 FileUtils.recursivelyDeleteFile(netLogDir); | 840 FileUtils.recursivelyDeleteFile(netLogDir); |
| 848 assertFalse(netLogDir.exists()); | 841 assertFalse(netLogDir.exists()); |
| 849 } | 842 } |
| 850 | 843 |
| 851 @SmallTest | 844 @SmallTest |
| 852 @Feature({"Cronet"}) | 845 @Feature({"Cronet"}) |
| 853 public void testNetLogStartMultipleTimes() throws Exception { | 846 public void testNetLogStartMultipleTimes() throws Exception { |
| 854 final CronetTestFramework testFramework = startCronetTestFramework(); | 847 final CronetTestFramework testFramework = startCronetTestFramework(); |
| 855 File directory = new File(PathUtils.getDataDirectory(getContext())); | 848 File directory = new File(PathUtils.getDataDirectory()); |
| 856 File file = File.createTempFile("cronet", "json", directory); | 849 File file = File.createTempFile("cronet", "json", directory); |
| 857 // Start NetLog multiple times. | 850 // Start NetLog multiple times. |
| 858 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); | 851 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); |
| 859 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); | 852 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); |
| 860 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); | 853 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); |
| 861 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); | 854 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); |
| 862 // Start a request. | 855 // Start a request. |
| 863 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 856 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 864 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 857 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( |
| 865 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng
ine); | 858 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng
ine); |
| 866 urlRequestBuilder.build().start(); | 859 urlRequestBuilder.build().start(); |
| 867 callback.blockForDone(); | 860 callback.blockForDone(); |
| 868 testFramework.mCronetEngine.stopNetLog(); | 861 testFramework.mCronetEngine.stopNetLog(); |
| 869 assertTrue(file.exists()); | 862 assertTrue(file.exists()); |
| 870 assertTrue(file.length() != 0); | 863 assertTrue(file.length() != 0); |
| 871 assertFalse(hasBytesInNetLog(file)); | 864 assertFalse(hasBytesInNetLog(file)); |
| 872 assertTrue(file.delete()); | 865 assertTrue(file.delete()); |
| 873 assertTrue(!file.exists()); | 866 assertTrue(!file.exists()); |
| 874 } | 867 } |
| 875 | 868 |
| 876 @SmallTest | 869 @SmallTest |
| 877 @Feature({"Cronet"}) | 870 @Feature({"Cronet"}) |
| 878 public void testBoundedFileNetLogStartMultipleTimes() throws Exception { | 871 public void testBoundedFileNetLogStartMultipleTimes() throws Exception { |
| 879 final CronetTestFramework testFramework = startCronetTestFramework(); | 872 final CronetTestFramework testFramework = startCronetTestFramework(); |
| 880 File directory = new File(PathUtils.getDataDirectory(getContext())); | 873 File directory = new File(PathUtils.getDataDirectory()); |
| 881 File netLogDir = new File(directory, "NetLog"); | 874 File netLogDir = new File(directory, "NetLog"); |
| 882 assertFalse(netLogDir.exists()); | 875 assertFalse(netLogDir.exists()); |
| 883 assertTrue(netLogDir.mkdir()); | 876 assertTrue(netLogDir.mkdir()); |
| 884 File eventFile = new File(netLogDir, "event_file_0.json"); | 877 File eventFile = new File(netLogDir, "event_file_0.json"); |
| 885 // Start NetLog multiple times. This should be equivalent to starting Ne
tLog | 878 // Start NetLog multiple times. This should be equivalent to starting Ne
tLog |
| 886 // once. Each subsequent start (without calling stopNetLog) should be a
no-op. | 879 // once. Each subsequent start (without calling stopNetLog) should be a
no-op. |
| 887 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false
, MAX_FILE_SIZE); | 880 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false
, MAX_FILE_SIZE); |
| 888 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false
, MAX_FILE_SIZE); | 881 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false
, MAX_FILE_SIZE); |
| 889 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false
, MAX_FILE_SIZE); | 882 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false
, MAX_FILE_SIZE); |
| 890 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false
, MAX_FILE_SIZE); | 883 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false
, MAX_FILE_SIZE); |
| 891 // Start a request. | 884 // Start a request. |
| 892 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 885 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 893 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 886 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( |
| 894 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng
ine); | 887 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng
ine); |
| 895 urlRequestBuilder.build().start(); | 888 urlRequestBuilder.build().start(); |
| 896 callback.blockForDone(); | 889 callback.blockForDone(); |
| 897 testFramework.mCronetEngine.stopNetLog(); | 890 testFramework.mCronetEngine.stopNetLog(); |
| 898 assertTrue(eventFile.exists()); | 891 assertTrue(eventFile.exists()); |
| 899 assertTrue(eventFile.length() != 0); | 892 assertTrue(eventFile.length() != 0); |
| 900 assertFalse(hasBytesInNetLog(eventFile)); | 893 assertFalse(hasBytesInNetLog(eventFile)); |
| 901 FileUtils.recursivelyDeleteFile(netLogDir); | 894 FileUtils.recursivelyDeleteFile(netLogDir); |
| 902 assertFalse(netLogDir.exists()); | 895 assertFalse(netLogDir.exists()); |
| 903 } | 896 } |
| 904 | 897 |
| 905 @SmallTest | 898 @SmallTest |
| 906 @Feature({"Cronet"}) | 899 @Feature({"Cronet"}) |
| 907 public void testNetLogStopMultipleTimes() throws Exception { | 900 public void testNetLogStopMultipleTimes() throws Exception { |
| 908 final CronetTestFramework testFramework = startCronetTestFramework(); | 901 final CronetTestFramework testFramework = startCronetTestFramework(); |
| 909 File directory = new File(PathUtils.getDataDirectory(getContext())); | 902 File directory = new File(PathUtils.getDataDirectory()); |
| 910 File file = File.createTempFile("cronet", "json", directory); | 903 File file = File.createTempFile("cronet", "json", directory); |
| 911 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); | 904 testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false); |
| 912 // Start a request. | 905 // Start a request. |
| 913 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 906 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 914 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 907 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( |
| 915 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng
ine); | 908 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng
ine); |
| 916 urlRequestBuilder.build().start(); | 909 urlRequestBuilder.build().start(); |
| 917 callback.blockForDone(); | 910 callback.blockForDone(); |
| 918 // Stop NetLog multiple times. | 911 // Stop NetLog multiple times. |
| 919 testFramework.mCronetEngine.stopNetLog(); | 912 testFramework.mCronetEngine.stopNetLog(); |
| 920 testFramework.mCronetEngine.stopNetLog(); | 913 testFramework.mCronetEngine.stopNetLog(); |
| 921 testFramework.mCronetEngine.stopNetLog(); | 914 testFramework.mCronetEngine.stopNetLog(); |
| 922 testFramework.mCronetEngine.stopNetLog(); | 915 testFramework.mCronetEngine.stopNetLog(); |
| 923 testFramework.mCronetEngine.stopNetLog(); | 916 testFramework.mCronetEngine.stopNetLog(); |
| 924 assertTrue(file.exists()); | 917 assertTrue(file.exists()); |
| 925 assertTrue(file.length() != 0); | 918 assertTrue(file.length() != 0); |
| 926 assertFalse(hasBytesInNetLog(file)); | 919 assertFalse(hasBytesInNetLog(file)); |
| 927 assertTrue(file.delete()); | 920 assertTrue(file.delete()); |
| 928 assertTrue(!file.exists()); | 921 assertTrue(!file.exists()); |
| 929 } | 922 } |
| 930 | 923 |
| 931 @SmallTest | 924 @SmallTest |
| 932 @Feature({"Cronet"}) | 925 @Feature({"Cronet"}) |
| 933 public void testBoundedFileNetLogStopMultipleTimes() throws Exception { | 926 public void testBoundedFileNetLogStopMultipleTimes() throws Exception { |
| 934 final CronetTestFramework testFramework = startCronetTestFramework(); | 927 final CronetTestFramework testFramework = startCronetTestFramework(); |
| 935 File directory = new File(PathUtils.getDataDirectory(getContext())); | 928 File directory = new File(PathUtils.getDataDirectory()); |
| 936 File netLogDir = new File(directory, "NetLog"); | 929 File netLogDir = new File(directory, "NetLog"); |
| 937 assertFalse(netLogDir.exists()); | 930 assertFalse(netLogDir.exists()); |
| 938 assertTrue(netLogDir.mkdir()); | 931 assertTrue(netLogDir.mkdir()); |
| 939 File eventFile = new File(netLogDir, "event_file_0.json"); | 932 File eventFile = new File(netLogDir, "event_file_0.json"); |
| 940 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false
, MAX_FILE_SIZE); | 933 testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false
, MAX_FILE_SIZE); |
| 941 // Start a request. | 934 // Start a request. |
| 942 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 935 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 943 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( | 936 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder( |
| 944 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng
ine); | 937 mUrl, callback, callback.getExecutor(), testFramework.mCronetEng
ine); |
| 945 urlRequestBuilder.build().start(); | 938 urlRequestBuilder.build().start(); |
| 946 callback.blockForDone(); | 939 callback.blockForDone(); |
| 947 // Stop NetLog multiple times. This should be equivalent to stopping Net
Log once. | 940 // Stop NetLog multiple times. This should be equivalent to stopping Net
Log once. |
| 948 // Each subsequent stop (without calling startNetLogToDisk first) should
be a no-op. | 941 // Each subsequent stop (without calling startNetLogToDisk first) should
be a no-op. |
| 949 testFramework.mCronetEngine.stopNetLog(); | 942 testFramework.mCronetEngine.stopNetLog(); |
| 950 testFramework.mCronetEngine.stopNetLog(); | 943 testFramework.mCronetEngine.stopNetLog(); |
| 951 testFramework.mCronetEngine.stopNetLog(); | 944 testFramework.mCronetEngine.stopNetLog(); |
| 952 testFramework.mCronetEngine.stopNetLog(); | 945 testFramework.mCronetEngine.stopNetLog(); |
| 953 testFramework.mCronetEngine.stopNetLog(); | 946 testFramework.mCronetEngine.stopNetLog(); |
| 954 assertTrue(eventFile.exists()); | 947 assertTrue(eventFile.exists()); |
| 955 assertTrue(eventFile.length() != 0); | 948 assertTrue(eventFile.length() != 0); |
| 956 assertFalse(hasBytesInNetLog(eventFile)); | 949 assertFalse(hasBytesInNetLog(eventFile)); |
| 957 FileUtils.recursivelyDeleteFile(netLogDir); | 950 FileUtils.recursivelyDeleteFile(netLogDir); |
| 958 assertFalse(netLogDir.exists()); | 951 assertFalse(netLogDir.exists()); |
| 959 } | 952 } |
| 960 | 953 |
| 961 @SmallTest | 954 @SmallTest |
| 962 @Feature({"Cronet"}) | 955 @Feature({"Cronet"}) |
| 963 @OnlyRunNativeCronet | 956 @OnlyRunNativeCronet |
| 964 public void testNetLogWithBytes() throws Exception { | 957 public void testNetLogWithBytes() throws Exception { |
| 965 Context context = getContext(); | 958 File directory = new File(PathUtils.getDataDirectory()); |
| 966 File directory = new File(PathUtils.getDataDirectory(context)); | |
| 967 File file = File.createTempFile("cronet", "json", directory); | 959 File file = File.createTempFile("cronet", "json", directory); |
| 968 CronetEngine cronetEngine = new CronetUrlRequestContext( | 960 CronetEngine cronetEngine = new CronetUrlRequestContext( |
| 969 new CronetEngine.Builder(context).setLibraryName("cronet_tests")
); | 961 new CronetEngine.Builder(getContext()).setLibraryName("cronet_te
sts")); |
| 970 // Start NetLog with logAll as true. | 962 // Start NetLog with logAll as true. |
| 971 cronetEngine.startNetLogToFile(file.getPath(), true); | 963 cronetEngine.startNetLogToFile(file.getPath(), true); |
| 972 // Start a request. | 964 // Start a request. |
| 973 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 965 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 974 UrlRequest.Builder urlRequestBuilder = | 966 UrlRequest.Builder urlRequestBuilder = |
| 975 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c
ronetEngine); | 967 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c
ronetEngine); |
| 976 urlRequestBuilder.build().start(); | 968 urlRequestBuilder.build().start(); |
| 977 callback.blockForDone(); | 969 callback.blockForDone(); |
| 978 cronetEngine.stopNetLog(); | 970 cronetEngine.stopNetLog(); |
| 979 assertTrue(file.exists()); | 971 assertTrue(file.exists()); |
| 980 assertTrue(file.length() != 0); | 972 assertTrue(file.length() != 0); |
| 981 assertTrue(hasBytesInNetLog(file)); | 973 assertTrue(hasBytesInNetLog(file)); |
| 982 assertTrue(file.delete()); | 974 assertTrue(file.delete()); |
| 983 assertTrue(!file.exists()); | 975 assertTrue(!file.exists()); |
| 984 } | 976 } |
| 985 | 977 |
| 986 @SmallTest | 978 @SmallTest |
| 987 @Feature({"Cronet"}) | 979 @Feature({"Cronet"}) |
| 988 @OnlyRunNativeCronet | 980 @OnlyRunNativeCronet |
| 989 public void testBoundedFileNetLogWithBytes() throws Exception { | 981 public void testBoundedFileNetLogWithBytes() throws Exception { |
| 990 Context context = getContext(); | 982 File directory = new File(PathUtils.getDataDirectory()); |
| 991 File directory = new File(PathUtils.getDataDirectory(context)); | |
| 992 File netLogDir = new File(directory, "NetLog"); | 983 File netLogDir = new File(directory, "NetLog"); |
| 993 assertFalse(netLogDir.exists()); | 984 assertFalse(netLogDir.exists()); |
| 994 assertTrue(netLogDir.mkdir()); | 985 assertTrue(netLogDir.mkdir()); |
| 995 File eventFile = new File(netLogDir, "event_file_0.json"); | 986 File eventFile = new File(netLogDir, "event_file_0.json"); |
| 996 CronetUrlRequestContext cronetEngine = new CronetUrlRequestContext( | 987 CronetUrlRequestContext cronetEngine = new CronetUrlRequestContext( |
| 997 new CronetEngine.Builder(context).setLibraryName("cronet_tests")
); | 988 new CronetEngine.Builder(getContext()).setLibraryName("cronet_te
sts")); |
| 998 // Start NetLog with logAll as true. | 989 // Start NetLog with logAll as true. |
| 999 cronetEngine.startNetLogToDisk(netLogDir.getPath(), true, MAX_FILE_SIZE)
; | 990 cronetEngine.startNetLogToDisk(netLogDir.getPath(), true, MAX_FILE_SIZE)
; |
| 1000 // Start a request. | 991 // Start a request. |
| 1001 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 992 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 1002 UrlRequest.Builder urlRequestBuilder = | 993 UrlRequest.Builder urlRequestBuilder = |
| 1003 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c
ronetEngine); | 994 new UrlRequest.Builder(mUrl, callback, callback.getExecutor(), c
ronetEngine); |
| 1004 urlRequestBuilder.build().start(); | 995 urlRequestBuilder.build().start(); |
| 1005 callback.blockForDone(); | 996 callback.blockForDone(); |
| 1006 cronetEngine.stopNetLog(); | 997 cronetEngine.stopNetLog(); |
| 1007 | 998 |
| (...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1409 TestUrlRequestCallback callback = new TestUrlRequestCallback(); | 1400 TestUrlRequestCallback callback = new TestUrlRequestCallback(); |
| 1410 URL requestUrl = | 1401 URL requestUrl = |
| 1411 new URL("http", resolverTestHostname, testUrl.getPort(), testUrl
.getFile()); | 1402 new URL("http", resolverTestHostname, testUrl.getPort(), testUrl
.getFile()); |
| 1412 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(requestUrl
.toString(), | 1403 UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(requestUrl
.toString(), |
| 1413 callback, callback.getExecutor(), testFramework.mCronetEngine); | 1404 callback, callback.getExecutor(), testFramework.mCronetEngine); |
| 1414 urlRequestBuilder.build().start(); | 1405 urlRequestBuilder.build().start(); |
| 1415 callback.blockForDone(); | 1406 callback.blockForDone(); |
| 1416 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); | 1407 assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| 1417 } | 1408 } |
| 1418 } | 1409 } |
| OLD | NEW |