B2G/QA/WebAPI Test Plan/WebPayment

From MozillaWiki
< B2G‎ | QA‎ | WebAPI Test Plan
Jump to: navigation, search



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


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"


  • 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


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.