blob: ad18a9d64074a62cceff807f7780115433acffc8 [file] [log] [blame]
<!--
~ Copyright (C) 2022 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="description" content="
This is a HTML page that calls and verifies responses from the @JavascriptInterface functions of
DataBoostWebServiceFlow. Test slice purchase application behavior using ADB shell commands and
the APIs below:
FROM TERMINAL:
Allow device to override carrier configs:
$ adb root
Set PREMIUM_CAPABILITY_PRIORITIZE_LATENCY enabled:
$ adb shell cmd phone cc set-value -p supported_premium_capabilities_int_array 34
Set the carrier purchase URL to this test HTML file:
$ adb shell cmd phone cc set-value -p premium_capability_purchase_url_string \
file:///android_asset/slice_purchase_test.html
OPTIONAL: Allow premium capability purchase on LTE:
$ adb shell cmd phone cc set-value -p premium_capability_supported_on_lte_bool true
OPTIONAL: Override ServiceState to fake a NR SA connection:
$ adb shell am broadcast -a com.android.internal.telephony.TestServiceState --ei data_rat 20
FROM TEST ACTIVITY:
TelephonyManager tm = getApplicationContext().getSystemService(TelephonyManager.class)
tm.isPremiumCapabilityAvailable(TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY);
LinkedBlockingQueue<Integer> purchaseRequests = new LinkedBlockingQueue<>();
tm.purchasePremiumCapability(TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY,
this.getMainExecutor(), request::offer);
When the test application starts, this HTML will be loaded into the WebView along with the
associated JavaScript functions in file:///android_asset/slice_purchase_test.js.
Click on the buttons in the HTML to call the corresponding @JavascriptInterface APIs.
RESET DEVICE STATE:
Clear carrier configurations that were set:
$ adb shell cmd phone cc clear-values
Clear ServiceState override that was set:
$ adb shell am broadcast -a com.android.internal.telephony.TestServiceState --es action reset
">
<title>Test SlicePurchaseActivity</title>
<script type="text/javascript" src="slice_purchase_test.js"></script>
</head>
<body>
<h1>Test SlicePurchaseActivity</h1>
<h2>Get requested premium capability</h2>
<button type="button" onclick="testGetRequestedCapability()">
Get requested premium capability
</button>
<p id="requested_capability"></p>
<h2>Notify purchase successful</h2>
<button type="button" onclick="testNotifyPurchaseSuccessful()">
Notify purchase successful
</button>
<p id="purchase_successful"></p>
<h2>Notify purchase failed</h2>
<button type="button" onclick="testNotifyPurchaseFailed(2, 'FAILURE_CODE_SERVER_UNREACHABLE')">
Notify purchase failed
</button>
<p id="purchase_failed"></p>
<h2>Dismiss flow</h2>
<button type="button" onclick="testDismissFlow()">
Dismiss flow
</button>
<p id="dismiss_flow"></p>
<h2>Test <a href="http://www.google.com">hyperlink</a></h2>
</body>
</html>