OLD | NEW |
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.ApplicationInfo; | 9 import android.content.pm.ApplicationInfo; |
10 import android.content.pm.PackageInfo; | 10 import android.content.pm.PackageInfo; |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 Mockito.verify(callback).onAllPaymentAppsCreated(); | 83 Mockito.verify(callback).onAllPaymentAppsCreated(); |
84 } | 84 } |
85 | 85 |
86 @Test | 86 @Test |
87 public void testQueryWithoutApps() { | 87 public void testQueryWithoutApps() { |
88 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana
gerDelegate.class); | 88 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana
gerDelegate.class); |
89 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntentW
ithMetaData( | 89 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntentW
ithMetaData( |
90 ArgumentMatchers.argThat(sPayIntentArgumentMatcher)
)) | 90 ArgumentMatchers.argThat(sPayIntentArgumentMatcher)
)) |
91 .thenReturn(new ArrayList<ResolveInfo>()); | 91 .thenReturn(new ArrayList<ResolveInfo>()); |
92 Set<String> methodNames = new HashSet<>(); | 92 Set<String> methodNames = new HashSet<>(); |
93 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD); | 93 methodNames.add("basic-card"); |
94 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb
ack.class); | 94 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb
ack.class); |
95 | 95 |
96 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName
s, | 96 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName
s, |
97 Mockito.mock(PaymentManifestDownloader.class), | 97 Mockito.mock(PaymentManifestDownloader.class), |
98 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat
e, callback); | 98 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat
e, callback); |
99 | 99 |
100 Mockito.verify(packageManagerDelegate, Mockito.never()) | 100 Mockito.verify(packageManagerDelegate, Mockito.never()) |
101 .getResourcesForApplication(ArgumentMatchers.anyObject()); | 101 .getResourcesForApplication(ArgumentMatchers.anyObject()); |
102 Mockito.verify(callback, Mockito.never()) | 102 Mockito.verify(callback, Mockito.never()) |
103 .onPaymentAppCreated(Mockito.any(PaymentApp.class)); | 103 .onPaymentAppCreated(Mockito.any(PaymentApp.class)); |
104 Mockito.verify(callback).onAllPaymentAppsCreated(); | 104 Mockito.verify(callback).onAllPaymentAppsCreated(); |
105 } | 105 } |
106 | 106 |
107 @Test | 107 @Test |
108 public void testQueryWithoutMetaData() { | 108 public void testQueryWithoutMetaData() { |
109 List<ResolveInfo> activities = new ArrayList<>(); | 109 List<ResolveInfo> activities = new ArrayList<>(); |
110 ResolveInfo alicePay = new ResolveInfo(); | 110 ResolveInfo alicePay = new ResolveInfo(); |
111 alicePay.activityInfo = new ActivityInfo(); | 111 alicePay.activityInfo = new ActivityInfo(); |
112 alicePay.activityInfo.packageName = "com.alicepay.app"; | 112 alicePay.activityInfo.packageName = "com.alicepay.app"; |
113 alicePay.activityInfo.name = "com.alicepay.app.WebPaymentActivity"; | 113 alicePay.activityInfo.name = "com.alicepay.app.WebPaymentActivity"; |
114 activities.add(alicePay); | 114 activities.add(alicePay); |
115 | 115 |
116 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana
gerDelegate.class); | 116 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana
gerDelegate.class); |
117 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntentW
ithMetaData( | 117 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntentW
ithMetaData( |
118 ArgumentMatchers.argThat(sPayIntentArgumentMatcher)
)) | 118 ArgumentMatchers.argThat(sPayIntentArgumentMatcher)
)) |
119 .thenReturn(activities); | 119 .thenReturn(activities); |
120 | 120 |
121 Set<String> methodNames = new HashSet<>(); | 121 Set<String> methodNames = new HashSet<>(); |
122 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD); | 122 methodNames.add("basic-card"); |
123 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb
ack.class); | 123 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb
ack.class); |
124 | 124 |
125 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName
s, | 125 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName
s, |
126 Mockito.mock(PaymentManifestDownloader.class), | 126 Mockito.mock(PaymentManifestDownloader.class), |
127 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat
e, callback); | 127 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat
e, callback); |
128 | 128 |
129 Mockito.verify(packageManagerDelegate, Mockito.never()) | 129 Mockito.verify(packageManagerDelegate, Mockito.never()) |
130 .getResourcesForApplication(ArgumentMatchers.anyObject()); | 130 .getResourcesForApplication(ArgumentMatchers.anyObject()); |
131 Mockito.verify(callback, Mockito.never()) | 131 Mockito.verify(callback, Mockito.never()) |
132 .onPaymentAppCreated(Mockito.any(PaymentApp.class)); | 132 .onPaymentAppCreated(Mockito.any(PaymentApp.class)); |
(...skipping 13 matching lines...) Expand all Loading... |
146 "https://alicepay.com"); | 146 "https://alicepay.com"); |
147 alicePay.activityInfo.metaData = activityMetaData; | 147 alicePay.activityInfo.metaData = activityMetaData; |
148 activities.add(alicePay); | 148 activities.add(alicePay); |
149 | 149 |
150 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana
gerDelegate.class); | 150 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana
gerDelegate.class); |
151 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntentW
ithMetaData( | 151 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntentW
ithMetaData( |
152 ArgumentMatchers.argThat(sPayIntentArgumentMatcher)
)) | 152 ArgumentMatchers.argThat(sPayIntentArgumentMatcher)
)) |
153 .thenReturn(activities); | 153 .thenReturn(activities); |
154 | 154 |
155 Set<String> methodNames = new HashSet<>(); | 155 Set<String> methodNames = new HashSet<>(); |
156 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD); | 156 methodNames.add("basic-card"); |
157 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb
ack.class); | 157 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb
ack.class); |
158 | 158 |
159 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName
s, | 159 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName
s, |
160 Mockito.mock(PaymentManifestDownloader.class), | 160 Mockito.mock(PaymentManifestDownloader.class), |
161 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat
e, callback); | 161 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat
e, callback); |
162 | 162 |
163 Mockito.verify(packageManagerDelegate, Mockito.never()) | 163 Mockito.verify(packageManagerDelegate, Mockito.never()) |
164 .getResourcesForApplication(ArgumentMatchers.anyObject()); | 164 .getResourcesForApplication(ArgumentMatchers.anyObject()); |
165 Mockito.verify(callback, Mockito.never()) | 165 Mockito.verify(callback, Mockito.never()) |
166 .onPaymentAppCreated(Mockito.any(PaymentApp.class)); | 166 .onPaymentAppCreated(Mockito.any(PaymentApp.class)); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntentW
ithMetaData( | 202 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntentW
ithMetaData( |
203 ArgumentMatchers.argThat(sPayIntentArgumentMatcher)
)) | 203 ArgumentMatchers.argThat(sPayIntentArgumentMatcher)
)) |
204 .thenReturn(activities); | 204 .thenReturn(activities); |
205 Mockito.when(packageManagerDelegate.getServicesThatCanRespondToIntent( | 205 Mockito.when(packageManagerDelegate.getServicesThatCanRespondToIntent( |
206 ArgumentMatchers.argThat(new IntentArgumentMatcher( | 206 ArgumentMatchers.argThat(new IntentArgumentMatcher( |
207 new Intent(AndroidPaymentAppFinder.ACTION_I
S_READY_TO_PAY))))) | 207 new Intent(AndroidPaymentAppFinder.ACTION_I
S_READY_TO_PAY))))) |
208 .thenReturn(new ArrayList<ResolveInfo>()); | 208 .thenReturn(new ArrayList<ResolveInfo>()); |
209 | 209 |
210 Resources resouces = Mockito.mock(Resources.class); | 210 Resources resouces = Mockito.mock(Resources.class); |
211 Mockito.when(resouces.getStringArray(ArgumentMatchers.eq(1))) | 211 Mockito.when(resouces.getStringArray(ArgumentMatchers.eq(1))) |
212 .thenReturn(new String[] { | 212 .thenReturn(new String[] {"https://alicepay.com", "basic-card"})
; |
213 "https://alicepay.com", AndroidPaymentAppFinder.BASIC_CA
RD_PAYMENT_METHOD}); | |
214 Mockito.when(resouces.getStringArray(ArgumentMatchers.eq(2))) | 213 Mockito.when(resouces.getStringArray(ArgumentMatchers.eq(2))) |
215 .thenReturn(new String[] { | 214 .thenReturn(new String[] {"https://bobpay.com", "basic-card"}); |
216 "https://bobpay.com", AndroidPaymentAppFinder.BASIC_CARD
_PAYMENT_METHOD}); | |
217 | 215 |
218 Mockito.when(packageManagerDelegate.getResourcesForApplication( | 216 Mockito.when(packageManagerDelegate.getResourcesForApplication( |
219 ArgumentMatchers.eq(alicePay.activityInfo.applicati
onInfo))) | 217 ArgumentMatchers.eq(alicePay.activityInfo.applicati
onInfo))) |
220 .thenReturn(resouces); | 218 .thenReturn(resouces); |
221 Mockito.when(packageManagerDelegate.getResourcesForApplication( | 219 Mockito.when(packageManagerDelegate.getResourcesForApplication( |
222 ArgumentMatchers.eq(bobPay.activityInfo.application
Info))) | 220 ArgumentMatchers.eq(bobPay.activityInfo.application
Info))) |
223 .thenReturn(resouces); | 221 .thenReturn(resouces); |
224 | 222 |
225 Set<String> methodNames = new HashSet<>(); | 223 Set<String> methodNames = new HashSet<>(); |
226 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD); | 224 methodNames.add("basic-card"); |
227 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb
ack.class); | 225 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb
ack.class); |
228 | 226 |
229 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName
s, | 227 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName
s, |
230 Mockito.mock(PaymentManifestDownloader.class), | 228 Mockito.mock(PaymentManifestDownloader.class), |
231 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat
e, callback); | 229 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat
e, callback); |
232 | 230 |
233 Mockito.verify(callback).onPaymentAppCreated( | 231 Mockito.verify(callback).onPaymentAppCreated( |
234 ArgumentMatchers.argThat(Matches.paymentAppIdentifier("com.alice
pay.app"))); | 232 ArgumentMatchers.argThat(Matches.paymentAppIdentifier("com.alice
pay.app"))); |
235 Mockito.verify(callback).onPaymentAppCreated( | 233 Mockito.verify(callback).onPaymentAppCreated( |
236 ArgumentMatchers.argThat(Matches.paymentAppIdentifier("com.bobpa
y.app"))); | 234 ArgumentMatchers.argThat(Matches.paymentAppIdentifier("com.bobpa
y.app"))); |
(...skipping 18 matching lines...) Expand all Loading... |
255 | 253 |
256 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana
gerDelegate.class); | 254 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana
gerDelegate.class); |
257 Mockito.when(packageManagerDelegate.getAppLabel(Mockito.any(ResolveInfo.
class))) | 255 Mockito.when(packageManagerDelegate.getAppLabel(Mockito.any(ResolveInfo.
class))) |
258 .thenReturn("A non-empty label"); | 256 .thenReturn("A non-empty label"); |
259 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntentW
ithMetaData( | 257 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntentW
ithMetaData( |
260 ArgumentMatchers.argThat(sPayIntentArgumentMatcher)
)) | 258 ArgumentMatchers.argThat(sPayIntentArgumentMatcher)
)) |
261 .thenReturn(activities); | 259 .thenReturn(activities); |
262 | 260 |
263 Resources resouces = Mockito.mock(Resources.class); | 261 Resources resouces = Mockito.mock(Resources.class); |
264 Mockito.when(resouces.getStringArray(ArgumentMatchers.eq(1))) | 262 Mockito.when(resouces.getStringArray(ArgumentMatchers.eq(1))) |
265 .thenReturn(new String[] { | 263 .thenReturn(new String[] {"https://bobpay.com", "basic-card"}); |
266 "https://bobpay.com", AndroidPaymentAppFinder.BASIC_CARD
_PAYMENT_METHOD}); | |
267 | 264 |
268 Mockito.when(packageManagerDelegate.getResourcesForApplication( | 265 Mockito.when(packageManagerDelegate.getResourcesForApplication( |
269 ArgumentMatchers.eq(bobPay.activityInfo.application
Info))) | 266 ArgumentMatchers.eq(bobPay.activityInfo.application
Info))) |
270 .thenReturn(resouces); | 267 .thenReturn(resouces); |
271 | 268 |
272 List<ResolveInfo> services = new ArrayList<>(); | 269 List<ResolveInfo> services = new ArrayList<>(); |
273 ResolveInfo isBobPayReadyToPay = new ResolveInfo(); | 270 ResolveInfo isBobPayReadyToPay = new ResolveInfo(); |
274 isBobPayReadyToPay.serviceInfo = new ServiceInfo(); | 271 isBobPayReadyToPay.serviceInfo = new ServiceInfo(); |
275 isBobPayReadyToPay.serviceInfo.packageName = "com.bobpay.app"; | 272 isBobPayReadyToPay.serviceInfo.packageName = "com.bobpay.app"; |
276 isBobPayReadyToPay.serviceInfo.name = "com.bobpay.app.IsReadyToWebPay"; | 273 isBobPayReadyToPay.serviceInfo.name = "com.bobpay.app.IsReadyToWebPay"; |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
363 String expectedAppIdentifier) { | 360 String expectedAppIdentifier) { |
364 return new Matches(expectedAppIdentifier); | 361 return new Matches(expectedAppIdentifier); |
365 } | 362 } |
366 | 363 |
367 @Override | 364 @Override |
368 public boolean matches(PaymentApp app) { | 365 public boolean matches(PaymentApp app) { |
369 return app.getAppIdentifier().equals(mExpectedAppIdentifier); | 366 return app.getAppIdentifier().equals(mExpectedAppIdentifier); |
370 } | 367 } |
371 } | 368 } |
372 } | 369 } |
OLD | NEW |