Tests that a page with a PaymentRequest in the Created state goes into the back/forward cache.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Creating a PaymentRequest in the Created state.
pageshow - not from cache
pagehide - entering cache
pageshow - from cache
PASS Page did enter and was restored from the back/forward cache
Testing that PaymentRequest remains in the Created state.
PASS responsePromise rejected promise  with AbortError: The operation was aborted..
PASS successfullyParsed is true

TEST COMPLETE

