Chiefs iOS Test Plan

1. Installation and Initialization

1.1 Validate Correct Token

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”.
 
The correct value for Chiefs is: 0052195256d2531b386a47c1e30f4f2c629bd3ea

2. Deep Links

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-my-app when constructing example deep links. Any time you see this value you should replace it with the correct URL scheme for your app.
 
The correct value for the Chiefs app is: rv-chiefs.

2.1 Settings Screen Deep Link

Visit rv-my-app://presentSettings in Safari. It should prompt to open the URL in your app. The app should open and display the Rover Settings screen.

rv-chiefs://presentSettings

2.2 Experience Deep Link

Open an Experience in the Rover Experiences app and find the Experience ID from the URL in the browser address bar. Construct a deep link to test with the format 
rv-my-app://presentExperience?id=XXX replacing XXX with the Experience ID. Visit the deep link in Safari. It should prompt to open the URL in your app. The app should open and display the experience associated with the ID.
 
An example deep link for the Chiefs app is: 
rv-chiefs://presentExperience?id=5b91329de18d2930fabb516a

2.3 Notification Center Deep Link

Visit rv-my-app://presentNotificationCenter in Safari. It should prompt to open the URL in your app. The app should open and display the Rover Notification Center.
 
rv-chiefs://presentNotificationCenter

3. Universal Links

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.
 
The correct value for the Chiefs app is: chiefs.rover.io.

3.1 Site Association File

After following the Site Association instructions on the Rover developer website, Rover will host an Apple App Site Association File for you. You can access the file at your associated domain and the path expected by Apple. E.g. 
https://my-app.rover.io/.well-known/apple-app-site-association. View your association file in the browser and ensure the appID value is correct as outlined on the Rover developer website.
 
The URL for the Chiefs app’s association file is:

3.2 Experience Universal Link

Open an Experience in the Rover Experiences app, click the chain/link icon, copy the Published Web Link and paste the copied URL to the Safari address bar on your device. It should prompt to open the URL in your app. The app should open and display the experience associated with the URL.
 
An example Universal Link for the Chiefs app is: 

4. Syncing Data

4.1 Foreground Syncing

Ensure your device is connected to Charles and start in the terminated state. 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 and open it again. You should see the same call made again.

4.2 Background Syncing

Send your device a Scheduled Notification campaign from the Rover Campaigns app and ensure the “Content Available” option is enabled in the Advanced Settings step. Monitor the network traffic from your device using Charles. When the push is received you should see a query to Rover’s GraphQL API named Sync.

5. Events

5.1 Foreground Flushing

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.

5.2 Background Flushing

With your device connected to Charles, open your app and then immediately close it. You should see a trackEvents mutation being called on Rover’s GraphQL API.

6. Push Notifications