Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Side by Side Diff: components/cronet/android/test/javatests/src/org/chromium/net/CronetEngineBuilderTest.java

Issue 2660963002: Cronet: a framework to provide alternative Cronet implementations (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698