-
Notifications
You must be signed in to change notification settings - Fork 0
Test Plan
The following is a test procedure which allows you to verify that your Rover integration is complete and working.
Using Charles, inspect the network traffic and ensure the proper account token
is being used. You can find this in the x-rover-account-token
header. The
correct value can be found in the Rover Settings app labelled “SDK Token”.
Rover deep links use a specific URL scheme assigned to your Rover account. You
can find this in the Rover Settings app
labelled “URL Scheme”. Throughout this section of the test plan we will use
rv-myapp
when constructing example deep links. Any time you see this value
you should replace it with the correct URL scheme for your app.
Note that typing your deep links into Chrome or another web browser will likely not work: it will just search for your deep link on Google. As a workaround, consider installing Firefox for Android and typing or pasting the link into its address bar.
Alternatively, if you have a workstation with the Android debug tools installed, you can also use:
adb shell am start -W -a android.intent.action.VIEW -d <deep link>
Visit rv-myapp://presentSettings
on your device.
It should prompt to open the URL in your app. The app should open and display the Rover Settings screen.
Visit rv-myapp://presentNotificationCenter
on your device. It should prompt
to open the URL in your app. The app should open and display the Rover
Notification Center.
Open an Experience in the Rover Experiences app, and click on the chain/link icon on the right side of the grey top bar. In the dialog box find the experience's Deep Link with the experienceID.
Rover Universal Links use a specific domain assigned to your Rover account. You
can find this in the Rover Settings app
labelled “Associated Domain”. Throughout this section of the test plan we will
use my-app.rover.io
when constructing example Universal Links. Any time you
see this value you should replace it with the correct associated domain for your
app.
After following the Site
Association
instructions, Rover will host an App
Links
Digital Asset Links
JSON
for you. You can access the file at your associated domain and the path expected
by Google. E.g. https://my-app.rover.io/.well-known/assetlinks.json
. View
your association file in the browser and ensure the package_name
value is
correct.
Open an Experience in the Rover Experiences app, click the chain/link icon on the right side of the grey top bar, copy the Published Web Link and paste the copied URL to the Chrome/browser address bar on your device. It should directly open the Experience in the app. Note that it must not prompt you to choose between the app and the web browser, the so-called Disambiguation Dialog. If it does, that means App Links verification is not working correctly.
In the event you see the disambiguation dialog, use adb shell dumpsys package domain-preferred-apps
to get a dump of all the App Links URLs on your device.
Search for the Package:
line with your app's application id, and underneath
ensure that the domain's status is 'Always' and not 'Ask'.
Ensure your device is connected to Charles and start in the terminated state
(app swiped away in the task switcher). Open the app to initiate the app
initialization process. Watch the network traffic and look for a query to
Rover’s GraphQL API named Sync
. Put the app in
the background by pressing the home button (or on newer Android P devices using
the Home gesture) and open it again. You should see the same call made again.
With your device connected to Charles, open your app and wait 30 seconds. You
should see the trackEvents
mutation being called on Rover’s GraphQL
API.
With your device connected to Charles, open your app and then immediately return
to the home screen. You should see a trackEvents
mutation being called on
Rover’s GraphQL API.
Open the Settings view in your app via the deep link described in 2.1. Take note of your device identifier. Open the Rover Audience app in a browser and find your device. Make sure your device has a valid push token assigned to it.
Create a scheduled notification campaign. With your app in the background, press the Send a Test button and select your test device. Verify the push notification is received.
Create a scheduled notification campaign. Add an attachment to the notification. Press the Send a Test button and select your test device and verify the push notification is received and the image is attached.
Create a scheduled notification campaign with the tap behavior set to “Present an experience”. With your app in the foreground, with the notification centre area displayed if it has one, press the Send a Test button and select your test device. Tap the push notification when it is received. Verify the experience is displayed.
Open your app, and ensure that you’ve opted into the Location Permission. Verify in Android Settings → Apps → Your App → that Location Permission is enabled.
With your device connected to Charles, open your app and then immediately return
to the home screen. You should see a trackEvents
mutation being called on
Rover’s GraphQL API. Look for the location
key inside variables
→events[0]
→device
and ensure that it isn’t null, and
had a latitude and longitude appropriate to your current location.
The User Info section of the Rover documentation explains how you can attach properties about the current user to the device which will show up in the Audience app and can be used for segmentation or personalization.
Perform an action in your app which causes your app to set some user info
properties on the Rover Campaigns SDK. Perform an event flush with your device connected
to Charles. Assuming 5.2 Background
Flushing
is working correctly, the easiest way to perform an event flush is to put your
app in the background. Watch the network traffic in Charles and look for the
trackEvents
mutation. The JSON payload contains an array of events
. Inspect
one or more of the events and ensure it contains a device.userInfo
property.
Ensure the value of this property matches the expected user info properties set
by your app.
Open the app and sign-in to Ticketmaster through the Presence SDK. After you’ve
signed in, perform a sync with your device connected to Charles. Assuming 4.1
Foreground
Syncing
is working correctly, the easiest way to perform a sync is to just open the app.
Watch the network traffic in Charles and look for a query to Rover’s GraphQL
API named Sync
and ensure that the request
contains a value for ticketmasterhostMemberID
or ticketmasterteamMemberID
.
Ensure the HTTP response body includes a value for data.ticketmaster
.
Terminate the app by using the Force Stop option in app info. Re-open the app, and confirm that the same fields and response body results are present in the subsequent Sync request.
After completing step 9.1, verify that the ticketmaster fields disappear from subsequent sync requests after signing out of ticketmaster in the app.