B2G/QA/WebAPI Test Plan/WebPayment
From MozillaWiki
< B2G | QA | WebAPI Test Plan
Contents
WebPayment
Summary
Lead | Jason Smith (irc: jsmith) |
API Description | Allows for monetary payments for a virtual good |
API Developer | Fernando Jimenez Moreno |
API Project Page | WebPayment |
API Tracking Bugs | Bug 767818 |
API Status | Landed |
Overview
This document will cover testing the web payment API that tests the API itself and the trustworthy UI used on device. Other portions of payment testing such as identity integration, marketplace integration, etc shall be covered in different docs. Therefore, the testing is broken into two areas here:
- API and JWT testing to ensure the JS API handles general valid and invalid input cases with the right success/error callbacks
- End-to-End functional testing with mozPay and trustworthy UI isolating marketplace bits out - Ensure trustworthy UI use cases work as expected
Edge Cases
- First vs. second page of trusted context
- Multiple JWT requests - same vs. different payment providers
- Web activities firing during trusted UI flow (e.g. phone call)
- No network connection
- Temporary vs. permanent exit of trusted UI context
- Returning to an existing trusted UI context from lockscreen, task switcher, etc
- Trusted UI context in the task manager
- Canceling purchases
- Multiple trusted UI contexts running
- Exit to task switcher, lockscreen, etc
- Background pages & payments
- Invalid JWT values for client-side validation
- Keyboard use during trusted UI context
Signoff Criteria
- All basecamp blockers are closed
- All smoke tests and basic functional tests are ran without finding any basecamp blockers
Test Case Management
- Test cases shall be tracked in MozTrap tagged with "gaia" and "payments"
Infrastructure
- A mock payment provider shall be used for testing the payment API and trustworthy UI - Mock Payment Provider
- A payments test case repository shall be used for tracking test cases - Payment Tests
Automation
Tracking bug: bug 777023
- Zac Campbell is looking into this - primarily aiming to target front-end automation in Marionette in python
Test Cases
Test cases for this feature can be found here.