| OLD | NEW |
| (Empty) | |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 package org.chromium.net; |
| 6 |
| 7 import android.content.Context; |
| 8 import android.support.test.filters.SmallTest; |
| 9 |
| 10 import static org.chromium.net.CronetProvider.PROVIDER_NAME_APP_PACKAGED; |
| 11 import static org.chromium.net.CronetProvider.PROVIDER_NAME_FALLBACK; |
| 12 |
| 13 import org.chromium.base.test.util.Feature; |
| 14 |
| 15 import java.util.ArrayList; |
| 16 import java.util.Arrays; |
| 17 import java.util.List; |
| 18 |
| 19 /** |
| 20 * Tests {@link CronetEngine.Builder}. |
| 21 */ |
| 22 public class CronetEngineBuilderTest extends CronetTestBase { |
| 23 /** |
| 24 * Tests the comparison of two strings that contain versions. |
| 25 */ |
| 26 @SmallTest |
| 27 @Feature({"Cronet"}) |
| 28 @CronetTestBase.OnlyRunNativeCronet |
| 29 public void testVersionComparison() { |
| 30 assertVersionIsHigher("22.44", "22.43.12"); |
| 31 assertVersionIsLower("22.43.12", "022.124"); |
| 32 assertVersionIsLower("22.99", "22.100"); |
| 33 assertVersionIsHigher("22.100", "22.99"); |
| 34 assertVersionIsEqual("11.2.33", "11.2.33"); |
| 35 assertIllegalArgumentException(null, "1.2.3"); |
| 36 assertIllegalArgumentException("1.2.3", null); |
| 37 assertIllegalArgumentException("1.2.3", "1.2.3x"); |
| 38 } |
| 39 |
| 40 /** |
| 41 * Tests the correct ordering of the providers. The platform provider should
be |
| 42 * the last in the list. Other providers should be ordered by placing provid
ers |
| 43 * with the higher version first. |
| 44 */ |
| 45 @SmallTest |
| 46 @Feature({"Cronet"}) |
| 47 public void testProviderOrdering() { |
| 48 final CronetProvider[] availableProviders = new CronetProvider[] { |
| 49 new FakeProvider(getContext(), PROVIDER_NAME_APP_PACKAGED, "99.7
7", true), |
| 50 new FakeProvider(getContext(), PROVIDER_NAME_FALLBACK, "99.99",
true), |
| 51 new FakeProvider(getContext(), "Some other provider", "99.88", t
rue), |
| 52 }; |
| 53 |
| 54 ArrayList<CronetProvider> providers = new ArrayList<>(Arrays.asList(avai
lableProviders)); |
| 55 List<CronetProvider> orderedProviders = |
| 56 CronetEngine.Builder.getEnabledCronetProviders(getContext(), pro
viders); |
| 57 |
| 58 // Check the result |
| 59 assertEquals(availableProviders[2], orderedProviders.get(0)); |
| 60 assertEquals(availableProviders[0], orderedProviders.get(1)); |
| 61 assertEquals(availableProviders[1], orderedProviders.get(2)); |
| 62 } |
| 63 |
| 64 /** |
| 65 * Tests that the providers that are disabled are not included in the list o
f available |
| 66 * providers when the provider is selected by the default selection logic. |
| 67 */ |
| 68 @SmallTest |
| 69 @Feature({"Cronet"}) |
| 70 public void testThatDisabledProvidersAreExcluded() { |
| 71 final CronetProvider[] availableProviders = new CronetProvider[] { |
| 72 new FakeProvider(getContext(), PROVIDER_NAME_FALLBACK, "99.99",
true), |
| 73 new FakeProvider(getContext(), PROVIDER_NAME_APP_PACKAGED, "99.7
7", true), |
| 74 new FakeProvider(getContext(), "Some other provider", "99.88", f
alse), |
| 75 }; |
| 76 |
| 77 ArrayList<CronetProvider> providers = new ArrayList<>(Arrays.asList(avai
lableProviders)); |
| 78 List<CronetProvider> orderedProviders = |
| 79 CronetEngine.Builder.getEnabledCronetProviders(getContext(), pro
viders); |
| 80 |
| 81 assertEquals("Unexpected number of providers in the list", 2, orderedPro
viders.size()); |
| 82 assertEquals(PROVIDER_NAME_APP_PACKAGED, orderedProviders.get(0).getName
()); |
| 83 assertEquals(PROVIDER_NAME_FALLBACK, orderedProviders.get(1).getName()); |
| 84 } |
| 85 |
| 86 private void assertVersionIsHigher(String s1, String s2) { |
| 87 assertEquals(1, CronetEngine.Builder.compareVersions(s1, s2)); |
| 88 } |
| 89 |
| 90 private void assertVersionIsLower(String s1, String s2) { |
| 91 assertEquals(-1, CronetEngine.Builder.compareVersions(s1, s2)); |
| 92 } |
| 93 |
| 94 private void assertVersionIsEqual(String s1, String s2) { |
| 95 assertEquals(0, CronetEngine.Builder.compareVersions(s1, s2)); |
| 96 } |
| 97 |
| 98 private void assertIllegalArgumentException(String s1, String s2) { |
| 99 try { |
| 100 CronetEngine.Builder.compareVersions(s1, s2); |
| 101 } catch (IllegalArgumentException e) { |
| 102 // Do nothing. It is expected. |
| 103 return; |
| 104 } |
| 105 fail("Expected IllegalArgumentException"); |
| 106 } |
| 107 |
| 108 // TODO(kapishnikov): Replace with a mock when mockito is supported. |
| 109 private static class FakeProvider extends CronetProvider { |
| 110 private final String mName; |
| 111 private final String mVersion; |
| 112 private final boolean mEnabled; |
| 113 |
| 114 protected FakeProvider(Context context, String name, String version, boo
lean enabled) { |
| 115 super(context); |
| 116 mName = name; |
| 117 mVersion = version; |
| 118 mEnabled = enabled; |
| 119 } |
| 120 |
| 121 @Override |
| 122 public CronetEngine.Builder createBuilder() { |
| 123 return new CronetEngine.Builder((ICronetEngineBuilder) null); |
| 124 } |
| 125 |
| 126 @Override |
| 127 public String getName() { |
| 128 return mName; |
| 129 } |
| 130 |
| 131 @Override |
| 132 public String getVersion() { |
| 133 return mVersion; |
| 134 } |
| 135 |
| 136 @Override |
| 137 public boolean isEnabled() { |
| 138 return mEnabled; |
| 139 } |
| 140 |
| 141 @Override |
| 142 public String toString() { |
| 143 return mName; |
| 144 } |
| 145 } |
| 146 } |
| OLD | NEW |