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

Side by Side Diff: chrome/android/junit/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderTest.java

Issue 2793573002: [Payments] Use <meta-data> tag instead of intent filter data to detect supported payment methods. (Closed)
Patch Set: Created 3 years, 8 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
1 // Copyright 2017 The Chromium Authors. All rights reserved. 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 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.chrome.browser.payments; 5 package org.chromium.chrome.browser.payments;
6 6
7 import android.content.Intent; 7 import android.content.Intent;
8 import android.content.pm.ActivityInfo; 8 import android.content.pm.ActivityInfo;
9 import android.content.pm.PackageInfo; 9 import android.content.pm.PackageInfo;
10 import android.content.pm.ResolveInfo; 10 import android.content.pm.ResolveInfo;
11 import android.content.pm.ServiceInfo; 11 import android.content.pm.ServiceInfo;
12 import android.content.pm.Signature; 12 import android.content.pm.Signature;
13 import android.net.Uri;
14 13
15 import org.junit.Test; 14 import org.junit.Test;
16 import org.junit.runner.RunWith; 15 import org.junit.runner.RunWith;
17 import org.mockito.ArgumentMatcher; 16 import org.mockito.ArgumentMatcher;
18 import org.mockito.ArgumentMatchers; 17 import org.mockito.ArgumentMatchers;
19 import org.mockito.Mockito; 18 import org.mockito.Mockito;
20 import org.robolectric.RobolectricTestRunner; 19 import org.robolectric.RobolectricTestRunner;
21 import org.robolectric.annotation.Config; 20 import org.robolectric.annotation.Config;
22 21
23 import org.chromium.chrome.browser.payments.PaymentAppFactory.PaymentAppCreatedC allback; 22 import org.chromium.chrome.browser.payments.PaymentAppFactory.PaymentAppCreatedC allback;
24 import org.chromium.components.payments.PaymentManifestDownloader; 23 import org.chromium.components.payments.PaymentManifestDownloader;
25 import org.chromium.components.payments.PaymentManifestParser; 24 import org.chromium.components.payments.PaymentManifestParser;
26 import org.chromium.content_public.browser.WebContents; 25 import org.chromium.content_public.browser.WebContents;
27 import org.chromium.payments.mojom.PaymentManifestSection; 26 import org.chromium.payments.mojom.PaymentManifestSection;
28 27
29 import java.net.URI; 28 import java.net.URI;
30 import java.util.ArrayList; 29 import java.util.ArrayList;
31 import java.util.HashSet; 30 import java.util.HashSet;
32 import java.util.List; 31 import java.util.List;
33 import java.util.Set; 32 import java.util.Set;
34 33
35 /** Tests for the native Android payment app finder. */ 34 /** Tests for the native Android payment app finder. */
36 @RunWith(RobolectricTestRunner.class) 35 @RunWith(RobolectricTestRunner.class)
37 @Config(sdk = 21, manifest = Config.NONE) 36 @Config(sdk = 21, manifest = Config.NONE)
38 public class AndroidPaymentAppFinderTest { 37 public class AndroidPaymentAppFinderTest {
38 private static final IntentArgumentMatcher sPayIntentArgumentMatcher =
39 new IntentArgumentMatcher(new Intent("org.chromium.intent.action.PAY "));
40
39 public AndroidPaymentAppFinderTest() {} 41 public AndroidPaymentAppFinderTest() {}
40 42
41 /** 43 /**
42 * Argument matcher that matches Intents using |filterEquals| method. 44 * Argument matcher that matches Intents using |filterEquals| method.
43 */ 45 */
44 private static class IntentArgumentMatcher implements ArgumentMatcher<Intent > { 46 private static class IntentArgumentMatcher implements ArgumentMatcher<Intent > {
45 47
46 private final Intent mIntent; 48 private final Intent mIntent;
47 49
48 public IntentArgumentMatcher(Intent intent) { 50 public IntentArgumentMatcher(Intent intent) {
(...skipping 23 matching lines...) Expand all
72 Mockito.mock(PaymentManifestDownloader.class), 74 Mockito.mock(PaymentManifestDownloader.class),
73 Mockito.mock(PaymentManifestParser.class), 75 Mockito.mock(PaymentManifestParser.class),
74 Mockito.mock(PackageManagerDelegate.class), callback); 76 Mockito.mock(PackageManagerDelegate.class), callback);
75 77
76 Mockito.verify(callback, Mockito.never()) 78 Mockito.verify(callback, Mockito.never())
77 .onPaymentAppCreated(Mockito.any(PaymentApp.class)); 79 .onPaymentAppCreated(Mockito.any(PaymentApp.class));
78 Mockito.verify(callback).onAllPaymentAppsCreated(); 80 Mockito.verify(callback).onAllPaymentAppsCreated();
79 } 81 }
80 82
81 @Test 83 @Test
82 public void testQueryBasicCardsWithoutApps() { 84 public void testQueryWithoutApps() {
83 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class); 85 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class);
84 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent( 86 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent(
85 ArgumentMatchers.argThat(new IntentArgumentMatcher( 87 ArgumentMatchers.argThat(sPayIntentArgumentMatcher) ))
86 new Intent(AndroidPaymentAppFinder.ACTION_PAY_BASIC_CARD )))))
87 .thenReturn(new ArrayList<ResolveInfo>()); 88 .thenReturn(new ArrayList<ResolveInfo>());
88 Set<String> methodNames = new HashSet<>(); 89 Set<String> methodNames = new HashSet<>();
89 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD); 90 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD);
90 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class); 91 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class);
91 92
92 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false, 93 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false,
93 Mockito.mock(PaymentManifestDownloader.class), 94 Mockito.mock(PaymentManifestDownloader.class),
94 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat e, callback); 95 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat e, callback);
95 96
97 Mockito.verify(packageManagerDelegate, Mockito.never())
98 .getStringArrayMetaData(ArgumentMatchers.anyString(), ArgumentMa tchers.anyString());
99 Mockito.verify(packageManagerDelegate, Mockito.never())
100 .getStringMetaData(ArgumentMatchers.anyString(), ArgumentMatcher s.anyString());
96 Mockito.verify(callback, Mockito.never()) 101 Mockito.verify(callback, Mockito.never())
97 .onPaymentAppCreated(Mockito.any(PaymentApp.class)); 102 .onPaymentAppCreated(Mockito.any(PaymentApp.class));
98 Mockito.verify(callback).onAllPaymentAppsCreated(); 103 Mockito.verify(callback).onAllPaymentAppsCreated();
99 } 104 }
100 105
101 @Test 106 @Test
102 public void testQueryBasicCardsWithTwoApps() { 107 public void testQueryWithoutMetaData() {
103 List<ResolveInfo> activities = new ArrayList<>(); 108 List<ResolveInfo> activities = new ArrayList<>();
104 ResolveInfo alicePay = new ResolveInfo(); 109 ResolveInfo alicePay = new ResolveInfo();
105 alicePay.activityInfo = new ActivityInfo(); 110 alicePay.activityInfo = new ActivityInfo();
106 alicePay.activityInfo.packageName = "com.alicepay.app"; 111 alicePay.activityInfo.packageName = "com.alicepay.app";
107 alicePay.activityInfo.name = "com.alicepay.app.WebPaymentActivity"; 112 alicePay.activityInfo.name = "com.alicepay.app.WebPaymentActivity";
108 activities.add(alicePay); 113 activities.add(alicePay);
109 ResolveInfo bobPay = new ResolveInfo(); 114
110 bobPay.activityInfo = new ActivityInfo();
111 bobPay.activityInfo.packageName = "com.bobpay.app";
112 bobPay.activityInfo.name = "com.bobpay.app.WebPaymentActivity";
113 activities.add(bobPay);
114 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class); 115 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class);
115 Mockito.when(packageManagerDelegate.getAppLabel(Mockito.any(ResolveInfo. class)))
116 .thenReturn("A non-empty label");
117 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent( 116 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent(
118 ArgumentMatchers.argThat(new IntentArgumentMatcher( 117 ArgumentMatchers.argThat(sPayIntentArgumentMatcher) ))
119 new Intent(AndroidPaymentAppFinder.ACTION_PAY_BASIC_CARD )))))
120 .thenReturn(activities); 118 .thenReturn(activities);
121 Mockito.when(packageManagerDelegate.getServicesThatCanRespondToIntent( 119 Mockito.when(packageManagerDelegate.getStringArrayMetaData(
122 ArgumentMatchers.argThat(new IntentArgumentMatcher( 120 ArgumentMatchers.matches("com.alicepay.app"),
123 new Intent(AndroidPaymentAppFinder.ACTION_IS_READY_TO_PA Y))))) 121 ArgumentMatchers.matches(
124 .thenReturn(new ArrayList<ResolveInfo>()); 122 AndroidPaymentAppFinder.META_DATA_NAME_OF_PAYMEN T_METHOD_NAMES)))
123 .thenReturn(null);
124 Mockito.when(packageManagerDelegate.getStringMetaData(
125 ArgumentMatchers.matches("com.alicepay.app"),
126 ArgumentMatchers.matches(
127 AndroidPaymentAppFinder
128 .META_DATA_NAME_OF_DEFAULT_PAYMENT_ METHOD_NAME)))
129 .thenReturn(null);
130
125 Set<String> methodNames = new HashSet<>(); 131 Set<String> methodNames = new HashSet<>();
126 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD); 132 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD);
127 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class); 133 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class);
128 134
129 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false, 135 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false,
130 Mockito.mock(PaymentManifestDownloader.class), 136 Mockito.mock(PaymentManifestDownloader.class),
131 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat e, callback); 137 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat e, callback);
132 138
133 Mockito.verify(callback).onPaymentAppCreated( 139 Mockito.verify(callback, Mockito.never())
134 ArgumentMatchers.argThat(Matches.paymentAppIdentifier("com.alice pay.app"))); 140 .onPaymentAppCreated(Mockito.any(PaymentApp.class));
135 Mockito.verify(callback).onPaymentAppCreated(
136 ArgumentMatchers.argThat(Matches.paymentAppIdentifier("com.bobpa y.app")));
137 Mockito.verify(callback).onAllPaymentAppsCreated(); 141 Mockito.verify(callback).onAllPaymentAppsCreated();
138 } 142 }
139 143
140 @Test 144 @Test
141 public void testQueryBobPayWithoutApps() { 145 public void testQueryWithUnsupportedPaymentMethod() {
142 Intent bobPayIntent = new Intent("org.chromium.intent.action.PAY"); 146 List<ResolveInfo> activities = new ArrayList<>();
143 bobPayIntent.setData(Uri.parse("https://bobpay.com")); 147 ResolveInfo alicePay = new ResolveInfo();
148 alicePay.activityInfo = new ActivityInfo();
149 alicePay.activityInfo.packageName = "com.alicepay.app";
150 alicePay.activityInfo.name = "com.alicepay.app.WebPaymentActivity";
151 activities.add(alicePay);
152
144 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class); 153 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class);
145 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent( bobPayIntent)) 154 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent(
146 .thenReturn(new ArrayList<ResolveInfo>()); 155 ArgumentMatchers.argThat(sPayIntentArgumentMatcher) ))
156 .thenReturn(activities);
157 Mockito.when(packageManagerDelegate.getStringArrayMetaData(
158 ArgumentMatchers.matches("com.alicepay.app"),
159 ArgumentMatchers.matches(
160 AndroidPaymentAppFinder.META_DATA_NAME_OF_PAYMEN T_METHOD_NAMES)))
161 .thenReturn(null);
162 Mockito.when(packageManagerDelegate.getStringMetaData(
163 ArgumentMatchers.matches("com.alicepay.app"),
164 ArgumentMatchers.matches(
165 AndroidPaymentAppFinder
166 .META_DATA_NAME_OF_DEFAULT_PAYMENT_ METHOD_NAME)))
167 .thenReturn("https://bobpay.com");
168
147 Set<String> methodNames = new HashSet<>(); 169 Set<String> methodNames = new HashSet<>();
148 methodNames.add("https://bobpay.com"); 170 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD);
149 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class); 171 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class);
150 172
151 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false, 173 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false,
152 Mockito.mock(PaymentManifestDownloader.class), 174 Mockito.mock(PaymentManifestDownloader.class),
153 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat e, callback); 175 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat e, callback);
154 176
155 Mockito.verify(callback, Mockito.never()) 177 Mockito.verify(callback, Mockito.never())
156 .onPaymentAppCreated(Mockito.any(PaymentApp.class)); 178 .onPaymentAppCreated(Mockito.any(PaymentApp.class));
157 Mockito.verify(callback).onAllPaymentAppsCreated(); 179 Mockito.verify(callback).onAllPaymentAppsCreated();
158 } 180 }
159 181
160 @Test 182 @Test
183 public void testQueryBasicCardsWithTwoApps() {
184 List<ResolveInfo> activities = new ArrayList<>();
185 ResolveInfo alicePay = new ResolveInfo();
186 alicePay.activityInfo = new ActivityInfo();
187 alicePay.activityInfo.packageName = "com.alicepay.app";
188 alicePay.activityInfo.name = "com.alicepay.app.WebPaymentActivity";
189 activities.add(alicePay);
190 ResolveInfo bobPay = new ResolveInfo();
191 bobPay.activityInfo = new ActivityInfo();
192 bobPay.activityInfo.packageName = "com.bobpay.app";
193 bobPay.activityInfo.name = "com.bobpay.app.WebPaymentActivity";
194 activities.add(bobPay);
195
196 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class);
197 Mockito.when(packageManagerDelegate.getAppLabel(Mockito.any(ResolveInfo. class)))
198 .thenReturn("A non-empty label");
199 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent(
200 ArgumentMatchers.argThat(sPayIntentArgumentMatcher) ))
201 .thenReturn(activities);
202 Mockito.when(packageManagerDelegate.getServicesThatCanRespondToIntent(
203 ArgumentMatchers.argThat(new IntentArgumentMatcher(
204 new Intent(AndroidPaymentAppFinder.ACTION_I S_READY_TO_PAY)))))
205 .thenReturn(new ArrayList<ResolveInfo>());
206 Mockito.when(packageManagerDelegate.getStringArrayMetaData(
207 ArgumentMatchers.matches("com.alicepay.app"),
208 ArgumentMatchers.matches(
209 AndroidPaymentAppFinder.META_DATA_NAME_OF_PAYMEN T_METHOD_NAMES)))
210 .thenReturn(new String[] {
211 "https://alicepay.com", AndroidPaymentAppFinder.BASIC_CA RD_PAYMENT_METHOD});
212 Mockito.when(packageManagerDelegate.getStringMetaData(
213 ArgumentMatchers.matches("com.alicepay.app"),
214 ArgumentMatchers.matches(
215 AndroidPaymentAppFinder
216 .META_DATA_NAME_OF_DEFAULT_PAYMENT_ METHOD_NAME)))
217 .thenReturn("https://alicepay.com");
218 Mockito.when(packageManagerDelegate.getStringArrayMetaData(
219 ArgumentMatchers.matches("com.bobpay.app"),
220 ArgumentMatchers.matches(
221 AndroidPaymentAppFinder.META_DATA_NAME_OF_PAYMEN T_METHOD_NAMES)))
222 .thenReturn(new String[] {
223 "https://bobpay.com", AndroidPaymentAppFinder.BASIC_CARD _PAYMENT_METHOD});
224 Mockito.when(packageManagerDelegate.getStringMetaData(
225 ArgumentMatchers.matches("com.bobpay.app"),
226 ArgumentMatchers.matches(
227 AndroidPaymentAppFinder
228 .META_DATA_NAME_OF_DEFAULT_PAYMENT_ METHOD_NAME)))
229 .thenReturn("https://bobpay.com");
230
231 Set<String> methodNames = new HashSet<>();
232 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD);
233 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class);
234
235 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false,
236 Mockito.mock(PaymentManifestDownloader.class),
237 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat e, callback);
238
239 Mockito.verify(callback).onPaymentAppCreated(
240 ArgumentMatchers.argThat(Matches.paymentAppIdentifier("com.alice pay.app")));
241 Mockito.verify(callback).onPaymentAppCreated(
242 ArgumentMatchers.argThat(Matches.paymentAppIdentifier("com.bobpa y.app")));
243 Mockito.verify(callback).onAllPaymentAppsCreated();
244 }
245
246 @Test
161 public void testQueryBobPayWithOneAppThatHasIsReadyToPayService() { 247 public void testQueryBobPayWithOneAppThatHasIsReadyToPayService() {
162 List<ResolveInfo> activities = new ArrayList<>(); 248 List<ResolveInfo> activities = new ArrayList<>();
163 ResolveInfo bobPay = new ResolveInfo(); 249 ResolveInfo bobPay = new ResolveInfo();
164 bobPay.activityInfo = new ActivityInfo(); 250 bobPay.activityInfo = new ActivityInfo();
165 bobPay.activityInfo.packageName = "com.bobpay.app"; 251 bobPay.activityInfo.packageName = "com.bobpay.app";
166 bobPay.activityInfo.name = "com.bobpay.app.WebPaymentActivity"; 252 bobPay.activityInfo.name = "com.bobpay.app.WebPaymentActivity";
167 activities.add(bobPay); 253 activities.add(bobPay);
168 Intent bobPayIntent = new Intent("org.chromium.intent.action.PAY"); 254
169 bobPayIntent.setData(Uri.parse("https://bobpay.com"));
170 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class); 255 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class);
171 Mockito.when(packageManagerDelegate.getAppLabel(Mockito.any(ResolveInfo. class))) 256 Mockito.when(packageManagerDelegate.getAppLabel(Mockito.any(ResolveInfo. class)))
172 .thenReturn("A non-empty label"); 257 .thenReturn("A non-empty label");
173 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent( 258 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent(
174 ArgumentMatchers.argThat(new IntentArgumentMatcher(bobPayIntent) ))) 259 ArgumentMatchers.argThat(sPayIntentArgumentMatcher) ))
175 .thenReturn(activities); 260 .thenReturn(activities);
261 Mockito.when(packageManagerDelegate.getStringArrayMetaData(
262 ArgumentMatchers.matches("com.bobpay.app"),
263 ArgumentMatchers.matches(
264 AndroidPaymentAppFinder.META_DATA_NAME_OF_PAYMEN T_METHOD_NAMES)))
265 .thenReturn(new String[] {
266 "https://bobpay.com", AndroidPaymentAppFinder.BASIC_CARD _PAYMENT_METHOD});
267 Mockito.when(packageManagerDelegate.getStringMetaData(
268 ArgumentMatchers.matches("com.bobpay.app"),
269 ArgumentMatchers.matches(
270 AndroidPaymentAppFinder
271 .META_DATA_NAME_OF_DEFAULT_PAYMENT_ METHOD_NAME)))
272 .thenReturn("https://bobpay.com");
176 273
177 List<ResolveInfo> services = new ArrayList<>(); 274 List<ResolveInfo> services = new ArrayList<>();
178 ResolveInfo isBobPayReadyToPay = new ResolveInfo(); 275 ResolveInfo isBobPayReadyToPay = new ResolveInfo();
179 isBobPayReadyToPay.serviceInfo = new ServiceInfo(); 276 isBobPayReadyToPay.serviceInfo = new ServiceInfo();
180 isBobPayReadyToPay.serviceInfo.packageName = "com.bobpay.app"; 277 isBobPayReadyToPay.serviceInfo.packageName = "com.bobpay.app";
181 isBobPayReadyToPay.serviceInfo.name = "com.bobpay.app.IsReadyToWebPay"; 278 isBobPayReadyToPay.serviceInfo.name = "com.bobpay.app.IsReadyToWebPay";
182 services.add(isBobPayReadyToPay); 279 services.add(isBobPayReadyToPay);
183 Intent isReadyToPayIntent = new Intent(AndroidPaymentAppFinder.ACTION_IS _READY_TO_PAY); 280 Intent isReadyToPayIntent = new Intent(AndroidPaymentAppFinder.ACTION_IS _READY_TO_PAY);
184 Mockito.when(packageManagerDelegate.getServicesThatCanRespondToIntent( 281 Mockito.when(packageManagerDelegate.getServicesThatCanRespondToIntent(
185 ArgumentMatchers.argThat(new IntentArgumentMatcher(isReadyToPayI ntent)))) 282 ArgumentMatchers.argThat(new IntentArgumentMatcher(isRea dyToPayIntent))))
186 .thenReturn(services); 283 .thenReturn(services);
187 284
188 PackageInfo bobPayPackageInfo = new PackageInfo(); 285 PackageInfo bobPayPackageInfo = new PackageInfo();
189 bobPayPackageInfo.versionCode = 10; 286 bobPayPackageInfo.versionCode = 10;
190 bobPayPackageInfo.signatures = new Signature[1]; 287 bobPayPackageInfo.signatures = new Signature[1];
191 bobPayPackageInfo.signatures[0] = new Signature("01020304050607080900"); 288 bobPayPackageInfo.signatures[0] = new Signature("01020304050607080900");
192 Mockito.when(packageManagerDelegate.getPackageInfoWithSignatures("com.bo bpay.app")) 289 Mockito.when(packageManagerDelegate.getPackageInfoWithSignatures("com.bo bpay.app"))
193 .thenReturn(bobPayPackageInfo); 290 .thenReturn(bobPayPackageInfo);
194 291
195 PaymentManifestDownloader downloader = new PaymentManifestDownloader(nul l) { 292 PaymentManifestDownloader downloader = new PaymentManifestDownloader(nul l) {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 String expectedAppIdentifier) { 350 String expectedAppIdentifier) {
254 return new Matches(expectedAppIdentifier); 351 return new Matches(expectedAppIdentifier);
255 } 352 }
256 353
257 @Override 354 @Override
258 public boolean matches(PaymentApp app) { 355 public boolean matches(PaymentApp app) {
259 return app.getAppIdentifier().equals(mExpectedAppIdentifier); 356 return app.getAppIdentifier().equals(mExpectedAppIdentifier);
260 } 357 }
261 } 358 }
262 } 359 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698