diff options
author | 2023-04-11 10:30:36 -0700 | |
---|---|---|
committer | 2023-05-22 21:31:08 +0000 | |
commit | 3e5ced802d81efe9b9ca7c07054b5c1045f27dfe (patch) | |
tree | 966bc3df487fe92965d1f947845499487fc27b42 | |
parent | 1b8166a9f847375573420a2e8c8a8b5a4282eebd (diff) |
Rename SlicePurchaseWebInterface to DataBoostWebServiceFlow
Also remove duration parameter from notifyPurchaseSuccessful
Changed to be consistent with the TS.43 specs
Test: manual verify no regression of purchase behavior
Test: atest CarrierDefaultAppTest
Bug: 283210989
Change-Id: I6d93ca848495e1e2657518d12b61f4ab9796a035
-rw-r--r-- | packages/CarrierDefaultApp/assets/slice_purchase_test.html | 6 | ||||
-rw-r--r-- | packages/CarrierDefaultApp/assets/slice_purchase_test.js | 10 | ||||
-rw-r--r-- | packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/DataBoostWebServiceFlow.java (renamed from packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SlicePurchaseWebInterface.java) | 20 | ||||
-rw-r--r-- | packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SlicePurchaseActivity.java | 22 | ||||
-rw-r--r-- | packages/CarrierDefaultApp/tests/unit/src/com/android/carrierdefaultapp/SlicePurchaseActivityTest.java | 15 |
5 files changed, 32 insertions, 41 deletions
diff --git a/packages/CarrierDefaultApp/assets/slice_purchase_test.html b/packages/CarrierDefaultApp/assets/slice_purchase_test.html index 67d218413e74..d2c1c04265bf 100644 --- a/packages/CarrierDefaultApp/assets/slice_purchase_test.html +++ b/packages/CarrierDefaultApp/assets/slice_purchase_test.html @@ -20,7 +20,7 @@ <meta charset="UTF-8"> <meta name="description" content=" This is a HTML page that calls and verifies responses from the @JavascriptInterface functions of - SlicePurchaseWebInterface. Test slice purchase application behavior using ADB shell commands and + DataBoostWebServiceFlow. Test slice purchase application behavior using ADB shell commands and the APIs below: FROM TERMINAL: @@ -65,8 +65,8 @@ <p id="requested_capability"></p> <h2>Notify purchase successful</h2> - <button type="button" onclick="testNotifyPurchaseSuccessful(60000)"> - Notify purchase successful for 1 minute + <button type="button" onclick="testNotifyPurchaseSuccessful()"> + Notify purchase successful </button> <p id="purchase_successful"></p> diff --git a/packages/CarrierDefaultApp/assets/slice_purchase_test.js b/packages/CarrierDefaultApp/assets/slice_purchase_test.js index 02c4feac7ee4..84ab1f933838 100644 --- a/packages/CarrierDefaultApp/assets/slice_purchase_test.js +++ b/packages/CarrierDefaultApp/assets/slice_purchase_test.js @@ -15,19 +15,19 @@ */ function testGetRequestedCapability() { - let capability = SlicePurchaseWebInterface.getRequestedCapability(); + let capability = DataBoostWebServiceFlow.getRequestedCapability(); document.getElementById("requested_capability").innerHTML = "Premium capability requested: " + capability; } -function testNotifyPurchaseSuccessful(duration_ms_long = 0) { - SlicePurchaseWebInterface.notifyPurchaseSuccessful(duration_ms_long); +function testNotifyPurchaseSuccessful() { + DataBoostWebServiceFlow.notifyPurchaseSuccessful(); document.getElementById("purchase_successful").innerHTML = - "Notified purchase success for duration: " + duration_ms_long; + "Notified purchase successful."; } function testNotifyPurchaseFailed(failure_code = 0, failure_reason = "unknown") { - SlicePurchaseWebInterface.notifyPurchaseFailed(failure_code, failure_reason); + DataBoostWebServiceFlow.notifyPurchaseFailed(failure_code, failure_reason); document.getElementById("purchase_failed").innerHTML = "Notified purchase failed."; } diff --git a/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SlicePurchaseWebInterface.java b/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/DataBoostWebServiceFlow.java index 8547898df678..0aadd31b6e18 100644 --- a/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SlicePurchaseWebInterface.java +++ b/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/DataBoostWebServiceFlow.java @@ -24,13 +24,13 @@ import android.webkit.JavascriptInterface; import com.android.phone.slice.SlicePurchaseController; /** - * Slice purchase web interface class allowing carrier websites to send responses back to the + * Data boost web service flow interface allowing carrier websites to send responses back to the * slice purchase application using JavaScript. */ -public class SlicePurchaseWebInterface { +public class DataBoostWebServiceFlow { @NonNull SlicePurchaseActivity mActivity; - public SlicePurchaseWebInterface(@NonNull SlicePurchaseActivity activity) { + public DataBoostWebServiceFlow(@NonNull SlicePurchaseActivity activity) { mActivity = activity; } @@ -41,7 +41,7 @@ public class SlicePurchaseWebInterface { * This can be called using the JavaScript below: * <script type="text/javascript"> * function getRequestedCapability(duration) { - * SlicePurchaseWebInterface.getRequestedCapability(); + * DataBoostWebServiceFlow.getRequestedCapability(); * } * </script> */ @@ -57,16 +57,14 @@ public class SlicePurchaseWebInterface { * * This can be called using the JavaScript below: * <script type="text/javascript"> - * function notifyPurchaseSuccessful(duration_ms_long = 0) { - * SlicePurchaseWebInterface.notifyPurchaseSuccessful(duration_ms_long); + * function notifyPurchaseSuccessful() { + * DataBoostWebServiceFlow.notifyPurchaseSuccessful(); * } * </script> - * - * @param duration The duration for which the premium capability is purchased in milliseconds. */ @JavascriptInterface - public void notifyPurchaseSuccessful(long duration) { - mActivity.onPurchaseSuccessful(duration); + public void notifyPurchaseSuccessful() { + mActivity.onPurchaseSuccessful(); } /** @@ -76,7 +74,7 @@ public class SlicePurchaseWebInterface { * This can be called using the JavaScript below: * <script type="text/javascript"> * function notifyPurchaseFailed(failure_code = 0, failure_reason = "unknown") { - * SlicePurchaseWebInterface.notifyPurchaseFailed(); + * DataBoostWebServiceFlow.notifyPurchaseFailed(); * } * </script> * diff --git a/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SlicePurchaseActivity.java b/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SlicePurchaseActivity.java index 946185a3c420..d304394dacb7 100644 --- a/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SlicePurchaseActivity.java +++ b/packages/CarrierDefaultApp/src/com/android/carrierdefaultapp/SlicePurchaseActivity.java @@ -32,21 +32,19 @@ import android.webkit.WebView; import com.android.phone.slice.SlicePurchaseController; import java.net.URL; -import java.util.concurrent.TimeUnit; /** * Activity that launches when the user clicks on the performance boost notification. * This will open a {@link WebView} for the carrier website to allow the user to complete the * premium capability purchase. * The carrier website can get the requested premium capability using the JavaScript interface - * method {@code SlicePurchaseWebInterface.getRequestedCapability()}. + * method {@code DataBoostWebServiceFlow.getRequestedCapability()}. * If the purchase is successful, the carrier website shall notify the slice purchase application * using the JavaScript interface method - * {@code SlicePurchaseWebInterface.notifyPurchaseSuccessful(duration)}, where {@code duration} is - * the optional duration of the performance boost. + * {@code DataBoostWebServiceFlow.notifyPurchaseSuccessful()}. * If the purchase was not successful, the carrier website shall notify the slice purchase * application using the JavaScript interface method - * {@code SlicePurchaseWebInterface.notifyPurchaseFailed(code, reason)}, where {@code code} is the + * {@code DataBoostWebServiceFlow.notifyPurchaseFailed(code, reason)}, where {@code code} is the * {@link SlicePurchaseController.FailureCode} indicating the reason for failure and {@code reason} * is the human-readable reason for failure if the failure code is * {@link SlicePurchaseController#FAILURE_CODE_UNKNOWN}. @@ -118,15 +116,11 @@ public class SlicePurchaseActivity extends Activity { setupWebView(); } - protected void onPurchaseSuccessful(long duration) { + protected void onPurchaseSuccessful() { logd("onPurchaseSuccessful: Carrier website indicated successfully purchased premium " - + "capability " + TelephonyManager.convertPremiumCapabilityToString(mCapability) - + (duration > 0 ? " for " + TimeUnit.MILLISECONDS.toMinutes(duration) + " minutes." - : ".")); - Intent intent = new Intent(); - intent.putExtra(SlicePurchaseController.EXTRA_PURCHASE_DURATION, duration); - SlicePurchaseBroadcastReceiver.sendSlicePurchaseAppResponseWithData(mApplicationContext, - mIntent, SlicePurchaseController.EXTRA_INTENT_SUCCESS, intent); + + "capability " + TelephonyManager.convertPremiumCapabilityToString(mCapability)); + SlicePurchaseBroadcastReceiver.sendSlicePurchaseAppResponse( + mIntent, SlicePurchaseController.EXTRA_INTENT_SUCCESS); finishAndRemoveTask(); } @@ -178,7 +172,7 @@ public class SlicePurchaseActivity extends Activity { // the slice purchase application. mWebView.getSettings().setJavaScriptEnabled(true); mWebView.addJavascriptInterface( - new SlicePurchaseWebInterface(this), "SlicePurchaseWebInterface"); + new DataBoostWebServiceFlow(this), "DataBoostWebServiceFlow"); // Display WebView setContentView(mWebView); diff --git a/packages/CarrierDefaultApp/tests/unit/src/com/android/carrierdefaultapp/SlicePurchaseActivityTest.java b/packages/CarrierDefaultApp/tests/unit/src/com/android/carrierdefaultapp/SlicePurchaseActivityTest.java index daf0b42dbd7c..e7a75e58105d 100644 --- a/packages/CarrierDefaultApp/tests/unit/src/com/android/carrierdefaultapp/SlicePurchaseActivityTest.java +++ b/packages/CarrierDefaultApp/tests/unit/src/com/android/carrierdefaultapp/SlicePurchaseActivityTest.java @@ -53,6 +53,7 @@ public class SlicePurchaseActivityTest extends ActivityUnitTestCase<SlicePurchas private static final int PHONE_ID = 0; @Mock PendingIntent mPendingIntent; + @Mock PendingIntent mSuccessfulIntent; @Mock PendingIntent mCanceledIntent; @Mock CarrierConfigManager mCarrierConfigManager; @Mock NotificationManager mNotificationManager; @@ -107,20 +108,18 @@ public class SlicePurchaseActivityTest extends ActivityUnitTestCase<SlicePurchas doReturn(true).when(mCanceledIntent).isBroadcast(); doReturn(mCanceledIntent).when(spiedIntent).getParcelableExtra( eq(SlicePurchaseController.EXTRA_INTENT_CANCELED), eq(PendingIntent.class)); + doReturn(TelephonyManager.PHONE_PROCESS_NAME).when(mSuccessfulIntent).getCreatorPackage(); + doReturn(true).when(mSuccessfulIntent).isBroadcast(); + doReturn(mSuccessfulIntent).when(spiedIntent).getParcelableExtra( + eq(SlicePurchaseController.EXTRA_INTENT_SUCCESS), eq(PendingIntent.class)); mSlicePurchaseActivity = startActivity(spiedIntent, null, null); } @Test public void testOnPurchaseSuccessful() throws Exception { - int duration = 5 * 60 * 1000; // 5 minutes - int invalidDuration = -1; - mSlicePurchaseActivity.onPurchaseSuccessful(duration); - ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); - verify(mPendingIntent).send(eq(mContext), eq(0), intentCaptor.capture()); - Intent intent = intentCaptor.getValue(); - assertEquals(duration, intent.getLongExtra( - SlicePurchaseController.EXTRA_PURCHASE_DURATION, invalidDuration)); + mSlicePurchaseActivity.onPurchaseSuccessful(); + verify(mSuccessfulIntent).send(); } @Test |