# Test plan

The following test plan is intended to help you test your integration with Google Wallet.

## **Provisioning**

### Approved ID Provisioning

- Follow the [provisioning flow](https://developers.google.com/wallet/identity/provisioning/overview/provisioning-successful) with an ID that will be auto-approved.

### Rejected ID Provisioning

1. Complete the [provisioning flow](https://developers.google.com/wallet/identity/provisioning/overview/provisioning-successful) using a rejected or expired ID
2. Close the provisioning flow screen or manually navigate to the Wallet homescreen
3. Click the DL in the wallet
4. Reject enrollment on the backend
5. You should receive a notification that the VDC request was rejected.

   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/reject.png)
6. A notification should also appear indicating that the VDC request was rejected

7. Clicking on either the notification or the rejection card should take you to a page explaining that the application was rejected

   - Refer to the [rejection page](https://developers.google.com/wallet/identity/provisioning/overview/provisioning-rejected) for more details
8. Closing the rejection card directly, or clicking **Got it** on the rejection page, should clear state and allow you to re-apply

### Extended Review Provisioning

1. Complete the [provisioning flow](https://developers.google.com/wallet/identity/provisioning/overview/provisioning-successful) using an extended review ID
2. Close the provisioning flow screen or manually navigate to the Wallet homescreen
3. Refer to the [extended review page](https://developers.google.com/wallet/identity/provisioning/overview/provisioning-extended-review) for expected behavior

### Extended Review to Approval

1. Complete the [provisioning flow](https://developers.google.com/wallet/identity/provisioning/overview/provisioning-successful) using an extended review ID
2. Close the provisioning flow screen or manually navigate to the Wallet homescreen
3. Approve the enrollment request from the backend
4. You get a notification that VDC request is approved and VDC will be automatically downloaded onto Wallet

### Extended Review to Rejected

1. Complete the [provisioning flow](https://developers.google.com/wallet/identity/provisioning/overview/provisioning-successful) using an extended review ID
2. Close the provisioning flow screen or manually navigate to the Wallet homescreen
3. Reject the enrollment request from the backend
4. A notification should appear indicating that the VDC request was rejected after a little while.

## **Presentation**

### Pre work

- Complete the [provisioning flow](https://developers.google.com/wallet/identity/provisioning/overview/provisioning-successful) so that you have a VDC provisioned and ready-to-use on the ('holder') device
- Ensure that Bluetooth, Location Services, and NFC are all enabled on the device
- Have a second 'reader' device with the reader **App Verifier** [apk](https://developers.google.com/wallet/identity/provisioning/assets/appverifier-debug.apk) installed

### NFC presentment

1. Open the reader app on the reader device

   1. Verify the appropriate option is selected in the drop-down menu for your test case.

   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/present-2a.png)
   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/present-1a.png)
2. Unlock the device with the VDC

   1. Hold the two devices \~1 inch apart from each other and perform an NFC tap
   2. The holder device should buzz, followed by a loading screen, followed by the list of requested fields (Separate the phones and try again if the screen does not appear)

   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/present-3.png)
   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/present-4.png)
3. Click **Continue**

   1. Use PIN or Biometric to verify
   2. Transmission animation should appear on holder device

   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/present-5.png)
4. After sending the data, the VDC device will briefly disconnect. You'll then
   see the VDC details appear on the reader device. Make sure all the checks show
   a green checkmark except for "Issuer's DS Key recognized."

   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/present-7.png)

### QR code presentment

1. Open the reader app on the reader device

   - Check the **Request mDL** and **Mandatory fields** boxes
   - Click **Next**

   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/present-1.png)
   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/present-2.png)
2. Unlock the device with the VDC, open the VDC and click the **Show code** button on the bottom of the screen

   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/present-8.png)
3. Scan the barcode with the reader device

   - The requested fields should appear on the holder device
   - Click **Continue**

   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/present-4.png)
4. Use PIN or Biometric to verify, transmission animation should appear on holder device

   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/present-5.png)
5. After sending the data, the VDC device will briefly disconnect. You'll then see the VDC details appear on the reader device. Make sure all the checks show a green checkmark except for "Issuer's DS Key recognized."

   ![](https://developers.google.com/static/wallet/identity/provisioning/overview/images/test-plan/present-7.png)

### NFC Presentation from Lockscreen

> Prerequisite: The device must be running Android 15 or higher for this test.

1. Lock the device
2. Perform an NFC tap
3. Verify the following
   - You are prompted to unlock the device
   - Once you unlock, a consent screen will appear, showing you the information the terminal is requesting.
4. Continue and verify presentation works as expected

## **Management**

### Notification of updates

1. Provision a VDC following the [provisioning flow](https://developers.google.com/wallet/identity/provisioning/overview/provisioning-successful)
2. After the VDC is fully approved and available in your Wallet, update the details for the VDC from the backend.
3. You should see a notification of the update.

### Issuer based deletion

1. Provision a VDC following the [provisioning flow](https://developers.google.com/wallet/identity/provisioning/overview/provisioning-successful)
2. After the VDC is fully approved and available in your Wallet, cancel the VDC from the backend.
3. The ID should be deleted from the wallet.

### Delete from Device

1. Complete the [provisioning flow](https://developers.google.com/wallet/identity/provisioning/overview/provisioning-successful) so that you have a fully provisioned VDC available on the device, ready for presentation.
2. Open the VDC card from the Wallet homescreen
3. Click the 3-dot menu and select **Delete**
4. Click **Cancel** and confirm that the card is still available. You should still be looking at the card.
5. Click the 3-dot menu and select **Delete** again
6. Click **Confirm**
7. Verify the following:
   - You are taken to the Wallet homescreen
   - The VDC is no longer in the card list
   - You can start the provisioning flow again

### View VDC Information

1. Complete the [provisioning flow](https://developers.google.com/wallet/identity/provisioning/overview/provisioning-successful) so that you have a fully provisioned VDC available on the device, ready for presentation.
2. Open the VDC from the Wallet homescreen
3. Click the **View Details** -\> **State ID Information** buttons
4. Verify the following:
   1. Prompted for unlock
   2. All VDC fields appear, and view is scrollable to see all the available details
   3. All fields are formatted correctly and human-readable