Commit eb71611d authored by Liquan (Max) Gu's avatar Liquan (Max) Gu Committed by Commit Bot

Prepare for adding tests for Google Pay payment app

Context:
* Moves PaymentRequestTestRule into the chrome_test_util_java target so
that the clank_test_java target can depend on it.
* Moves the factory adding of PaymentAppService out into getInstance so
that PaymentAppService doesn't have to load all factories in the tests.

Bug: 1091475

Change-Id: Ia8873e8135de5e2c76bed9b3541c49390e40f700
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2398916Reviewed-by: default avatarAndrew Grieve <agrieve@chromium.org>
Reviewed-by: default avatarSahel Sharify <sahel@chromium.org>
Commit-Queue: Liquan (Max) Gu <maxlg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#814369}
parent 62e4262b
......@@ -931,6 +931,7 @@ android_library("chrome_test_util_java") {
"javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestRule.java",
"javatests/src/org/chromium/chrome/browser/customtabs/CustomTabsTestUtils.java",
"javatests/src/org/chromium/chrome/browser/directactions/FakeDirectActionReporter.java",
"javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java",
"javatests/src/org/chromium/chrome/browser/webapps/TestFetchStorageCallback.java",
"javatests/src/org/chromium/chrome/browser/webapps/WebappActivityTestRule.java",
]
......@@ -943,16 +944,21 @@ android_library("chrome_test_util_java") {
"//chrome/browser/tab:java",
"//chrome/browser/ui/android/appmenu:java",
"//chrome/test/android:chrome_java_test_support",
"//components/payments/content/android:java",
"//components/payments/mojom:mojom_java",
"//content/public/android:content_java",
"//content/public/test/android:content_java_test_support",
"//net/android:net_java_test_support",
"//third_party/android_deps:android_support_v4_java",
"//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:espresso_java",
"//third_party/android_media:android_media_resources",
"//third_party/android_sdk/androidx_browser:androidx_browser_java",
"//third_party/android_support_test_runner:runner_java",
"//third_party/blink/public/mojom:android_mojo_bindings_java",
"//third_party/hamcrest:hamcrest_java",
"//third_party/junit:junit",
"//ui/android:ui_no_recycler_view_java",
]
}
......
......@@ -451,7 +451,6 @@ chrome_test_java_sources = [
"javatests/src/org/chromium/chrome/browser/payments/PaymentRequestShowPromiseUnsupportedTest.java",
"javatests/src/org/chromium/chrome/browser/payments/PaymentRequestShowTwiceTest.java",
"javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTabTest.java",
"javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java",
"javatests/src/org/chromium/chrome/browser/payments/PaymentRequestUpdateWithTest.java",
"javatests/src/org/chromium/chrome/browser/payments/PaymentRequestUseStatsTest.java",
"javatests/src/org/chromium/chrome/browser/payments/SkipToGPayHelperTest.java",
......
......@@ -4,6 +4,8 @@
package org.chromium.chrome.browser.payments;
import androidx.annotation.VisibleForTesting;
import org.chromium.components.payments.PaymentApp;
import org.chromium.components.payments.PaymentAppFactoryParams;
......@@ -21,16 +23,23 @@ public class PaymentAppService implements PaymentAppFactoryInterface {
/** @return The singleton instance of this class. */
public static PaymentAppService getInstance() {
if (sInstance == null) {
sInstance = new PaymentAppService();
sInstance.addFactory(new AutofillPaymentAppFactory());
sInstance.addFactory(new PaymentAppServiceBridge());
sInstance.addFactory(new AndroidPaymentAppFactory());
}
return sInstance;
}
@VisibleForTesting
public static PaymentAppService getInstanceWithoutFactoryForTest() {
if (sInstance == null) sInstance = new PaymentAppService();
return sInstance;
}
/** Prevent instantiation. */
private PaymentAppService() {
mFactories.add(new AutofillPaymentAppFactory());
mFactories.add(new PaymentAppServiceBridge());
mFactories.add(new AndroidPaymentAppFactory());
}
private PaymentAppService() {}
/** @param factory The factory to add. */
public void addFactory(PaymentAppFactoryInterface factory) {
......
......@@ -327,6 +327,10 @@ public class PaymentRequestTestRule extends ChromeTabbedActivityTestRule
return JavaScriptUtils.executeJavaScriptAndWaitForResult(mWebContentsRef.get(), script);
}
protected String runJavascriptWithAsyncResult(String script) throws TimeoutException {
return JavaScriptUtils.runJavascriptWithAsyncResult(mWebContentsRef.get(), script);
}
/** Clicks on an HTML node. */
protected void clickNodeAndWait(String nodeId, CallbackHelper helper) throws TimeoutException {
int callCount = helper.getCallCount();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment