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

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

Issue 2710343003: Update Robolectric to 3.2.2 (Closed)
Patch Set: Small fix to StripLayoutHelperTest Created 3 years, 9 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;
(...skipping 20 matching lines...) Expand all
31 import java.util.HashSet; 31 import java.util.HashSet;
32 import java.util.List; 32 import java.util.List;
33 import java.util.Set; 33 import java.util.Set;
34 34
35 /** Tests for the native Android payment app finder. */ 35 /** Tests for the native Android payment app finder. */
36 @RunWith(RobolectricTestRunner.class) 36 @RunWith(RobolectricTestRunner.class)
37 @Config(sdk = 21, manifest = Config.NONE) 37 @Config(sdk = 21, manifest = Config.NONE)
38 public class AndroidPaymentAppFinderTest { 38 public class AndroidPaymentAppFinderTest {
39 public AndroidPaymentAppFinderTest() {} 39 public AndroidPaymentAppFinderTest() {}
40 40
41 /**
42 * Argument matcher that matches Intents using |filterEquals| method.
43 */
44 private static class IntentArgumentMatcher implements ArgumentMatcher<Intent > {
45
46 private final Intent mIntent;
47
48 public IntentArgumentMatcher(Intent intent) {
49 mIntent = intent;
50 }
51
52 @Override
53 public boolean matches(Intent other) {
54 return mIntent.filterEquals(other);
55 }
56
57 @Override
58 public String toString() {
59 return mIntent.toString();
60 }
61 }
62
41 @Test 63 @Test
42 public void testNoValidPaymentMethodNames() { 64 public void testNoValidPaymentMethodNames() {
43 Set<String> methodNames = new HashSet<>(); 65 Set<String> methodNames = new HashSet<>();
44 methodNames.add("unknown-payment-method-name"); 66 methodNames.add("unknown-payment-method-name");
45 methodNames.add("http://not.secure.payment.method.name.com"); 67 methodNames.add("http://not.secure.payment.method.name.com");
46 methodNames.add("https://"); // Invalid URI. 68 methodNames.add("https://"); // Invalid URI.
47 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class); 69 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class);
48 70
49 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false, 71 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false,
50 Mockito.mock(PaymentManifestDownloader.class), 72 Mockito.mock(PaymentManifestDownloader.class),
51 Mockito.mock(PaymentManifestParser.class), 73 Mockito.mock(PaymentManifestParser.class),
52 Mockito.mock(PackageManagerDelegate.class), callback); 74 Mockito.mock(PackageManagerDelegate.class), callback);
53 75
54 Mockito.verify(callback, Mockito.never()) 76 Mockito.verify(callback, Mockito.never())
55 .onPaymentAppCreated(Mockito.any(PaymentApp.class)); 77 .onPaymentAppCreated(Mockito.any(PaymentApp.class));
56 Mockito.verify(callback).onAllPaymentAppsCreated(); 78 Mockito.verify(callback).onAllPaymentAppsCreated();
57 } 79 }
58 80
59 @Test 81 @Test
60 public void testQueryBasicCardsWithoutApps() { 82 public void testQueryBasicCardsWithoutApps() {
61 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class); 83 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class);
62 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent( 84 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent(
63 new Intent(AndroidPaymentAppFinder.ACTION_PAY_BASIC _CARD))) 85 ArgumentMatchers.argThat(new IntentArgumentMatcher(
86 new Intent(AndroidPaymentAppFinder.ACTION_PAY_BASIC_CARD )))))
64 .thenReturn(new ArrayList<ResolveInfo>()); 87 .thenReturn(new ArrayList<ResolveInfo>());
65 Set<String> methodNames = new HashSet<>(); 88 Set<String> methodNames = new HashSet<>();
66 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD); 89 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD);
67 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class); 90 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class);
68 91
69 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false, 92 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false,
70 Mockito.mock(PaymentManifestDownloader.class), 93 Mockito.mock(PaymentManifestDownloader.class),
71 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat e, callback); 94 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat e, callback);
72 95
73 Mockito.verify(callback, Mockito.never()) 96 Mockito.verify(callback, Mockito.never())
(...skipping 11 matching lines...) Expand all
85 activities.add(alicePay); 108 activities.add(alicePay);
86 ResolveInfo bobPay = new ResolveInfo(); 109 ResolveInfo bobPay = new ResolveInfo();
87 bobPay.activityInfo = new ActivityInfo(); 110 bobPay.activityInfo = new ActivityInfo();
88 bobPay.activityInfo.packageName = "com.bobpay.app"; 111 bobPay.activityInfo.packageName = "com.bobpay.app";
89 bobPay.activityInfo.name = "com.bobpay.app.WebPaymentActivity"; 112 bobPay.activityInfo.name = "com.bobpay.app.WebPaymentActivity";
90 activities.add(bobPay); 113 activities.add(bobPay);
91 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class); 114 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class);
92 Mockito.when(packageManagerDelegate.getAppLabel(Mockito.any(ResolveInfo. class))) 115 Mockito.when(packageManagerDelegate.getAppLabel(Mockito.any(ResolveInfo. class)))
93 .thenReturn("A non-empty label"); 116 .thenReturn("A non-empty label");
94 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent( 117 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent(
95 new Intent(AndroidPaymentAppFinder.ACTION_PAY_BASIC _CARD))) 118 ArgumentMatchers.argThat(new IntentArgumentMatcher(
119 new Intent(AndroidPaymentAppFinder.ACTION_PAY_BASIC_CARD )))))
96 .thenReturn(activities); 120 .thenReturn(activities);
97 Mockito.when(packageManagerDelegate.getServicesThatCanRespondToIntent( 121 Mockito.when(packageManagerDelegate.getServicesThatCanRespondToIntent(
98 new Intent(AndroidPaymentAppFinder.ACTION_IS_READY_ TO_PAY))) 122 ArgumentMatchers.argThat(new IntentArgumentMatcher(
123 new Intent(AndroidPaymentAppFinder.ACTION_IS_READY_TO_PA Y)))))
99 .thenReturn(new ArrayList<ResolveInfo>()); 124 .thenReturn(new ArrayList<ResolveInfo>());
100 Set<String> methodNames = new HashSet<>(); 125 Set<String> methodNames = new HashSet<>();
101 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD); 126 methodNames.add(AndroidPaymentAppFinder.BASIC_CARD_PAYMENT_METHOD);
102 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class); 127 PaymentAppCreatedCallback callback = Mockito.mock(PaymentAppCreatedCallb ack.class);
103 128
104 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false, 129 AndroidPaymentAppFinder.find(Mockito.mock(WebContents.class), methodName s, false,
105 Mockito.mock(PaymentManifestDownloader.class), 130 Mockito.mock(PaymentManifestDownloader.class),
106 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat e, callback); 131 Mockito.mock(PaymentManifestParser.class), packageManagerDelegat e, callback);
107 132
108 Mockito.verify(callback).onPaymentAppCreated( 133 Mockito.verify(callback).onPaymentAppCreated(
(...skipping 29 matching lines...) Expand all
138 ResolveInfo bobPay = new ResolveInfo(); 163 ResolveInfo bobPay = new ResolveInfo();
139 bobPay.activityInfo = new ActivityInfo(); 164 bobPay.activityInfo = new ActivityInfo();
140 bobPay.activityInfo.packageName = "com.bobpay.app"; 165 bobPay.activityInfo.packageName = "com.bobpay.app";
141 bobPay.activityInfo.name = "com.bobpay.app.WebPaymentActivity"; 166 bobPay.activityInfo.name = "com.bobpay.app.WebPaymentActivity";
142 activities.add(bobPay); 167 activities.add(bobPay);
143 Intent bobPayIntent = new Intent("org.chromium.intent.action.PAY"); 168 Intent bobPayIntent = new Intent("org.chromium.intent.action.PAY");
144 bobPayIntent.setData(Uri.parse("https://bobpay.com")); 169 bobPayIntent.setData(Uri.parse("https://bobpay.com"));
145 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class); 170 PackageManagerDelegate packageManagerDelegate = Mockito.mock(PackageMana gerDelegate.class);
146 Mockito.when(packageManagerDelegate.getAppLabel(Mockito.any(ResolveInfo. class))) 171 Mockito.when(packageManagerDelegate.getAppLabel(Mockito.any(ResolveInfo. class)))
147 .thenReturn("A non-empty label"); 172 .thenReturn("A non-empty label");
148 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent( bobPayIntent)) 173 Mockito.when(packageManagerDelegate.getActivitiesThatCanRespondToIntent(
174 ArgumentMatchers.argThat(new IntentArgumentMatcher(bobPayIntent) )))
149 .thenReturn(activities); 175 .thenReturn(activities);
150 176
151 List<ResolveInfo> services = new ArrayList<>(); 177 List<ResolveInfo> services = new ArrayList<>();
152 ResolveInfo isBobPayReadyToPay = new ResolveInfo(); 178 ResolveInfo isBobPayReadyToPay = new ResolveInfo();
153 isBobPayReadyToPay.serviceInfo = new ServiceInfo(); 179 isBobPayReadyToPay.serviceInfo = new ServiceInfo();
154 isBobPayReadyToPay.serviceInfo.packageName = "com.bobpay.app"; 180 isBobPayReadyToPay.serviceInfo.packageName = "com.bobpay.app";
155 isBobPayReadyToPay.serviceInfo.name = "com.bobpay.app.IsReadyToWebPay"; 181 isBobPayReadyToPay.serviceInfo.name = "com.bobpay.app.IsReadyToWebPay";
156 services.add(isBobPayReadyToPay); 182 services.add(isBobPayReadyToPay);
157 Intent isReadyToPayIntent = new Intent(AndroidPaymentAppFinder.ACTION_IS _READY_TO_PAY); 183 Intent isReadyToPayIntent = new Intent(AndroidPaymentAppFinder.ACTION_IS _READY_TO_PAY);
158 Mockito.when(packageManagerDelegate.getServicesThatCanRespondToIntent(is ReadyToPayIntent)) 184 Mockito.when(packageManagerDelegate.getServicesThatCanRespondToIntent(
185 ArgumentMatchers.argThat(new IntentArgumentMatcher(isReadyToPayI ntent))))
159 .thenReturn(services); 186 .thenReturn(services);
160 187
161 PackageInfo bobPayPackageInfo = new PackageInfo(); 188 PackageInfo bobPayPackageInfo = new PackageInfo();
162 bobPayPackageInfo.versionCode = 10; 189 bobPayPackageInfo.versionCode = 10;
163 bobPayPackageInfo.signatures = new Signature[1]; 190 bobPayPackageInfo.signatures = new Signature[1];
164 bobPayPackageInfo.signatures[0] = new Signature("01020304050607080900"); 191 bobPayPackageInfo.signatures[0] = new Signature("01020304050607080900");
165 Mockito.when(packageManagerDelegate.getPackageInfoWithSignatures("com.bo bpay.app")) 192 Mockito.when(packageManagerDelegate.getPackageInfoWithSignatures("com.bo bpay.app"))
166 .thenReturn(bobPayPackageInfo); 193 .thenReturn(bobPayPackageInfo);
167 194
168 PaymentManifestDownloader downloader = new PaymentManifestDownloader(nul l) { 195 PaymentManifestDownloader downloader = new PaymentManifestDownloader(nul l) {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 public static ArgumentMatcher<PaymentApp> paymentAppIdentifier( 252 public static ArgumentMatcher<PaymentApp> paymentAppIdentifier(
226 String expectedAppIdentifier) { 253 String expectedAppIdentifier) {
227 return new Matches(expectedAppIdentifier); 254 return new Matches(expectedAppIdentifier);
228 } 255 }
229 256
230 @Override 257 @Override
231 public boolean matches(PaymentApp app) { 258 public boolean matches(PaymentApp app) {
232 return app.getAppIdentifier().equals(mExpectedAppIdentifier); 259 return app.getAppIdentifier().equals(mExpectedAppIdentifier);
233 } 260 }
234 } 261 }
235 } 262 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698