| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| (async function(testRunner) { |
| const VirtualTimeController = |
| await testRunner.loadScript('virtual-time-controller.js'); |
| |
| const {page, session, dp} = await testRunner.startWithFrameControl( |
| `Tests virtual time controller operation.`); |
| |
| await dp.Runtime.enable(); |
| await dp.HeadlessExperimental.enable(); |
| |
| dp.Runtime.onConsoleAPICalled(data => { |
| const text = data.params.args[0].value; |
| testRunner.log(text); |
| }); |
| |
| const vtc = new VirtualTimeController(testRunner, dp, 25); |
| await vtc.initialize(1000); |
| testRunner.log(`onInstalled:`); |
| await dp.Page.navigate({url: testRunner.url( |
| 'resources/virtual-time-controller-test.html')}); |
| for (let expirationCount = 0; expirationCount < 3; ++expirationCount) { |
| const totalElapsedTime = await vtc.grantTime( |
| expirationCount === 0 ? 100 : 50); |
| testRunner.log(`onExpired: ${totalElapsedTime}`); |
| if (expirationCount === 0) |
| await session.evaluate('startRAF()'); |
| } |
| testRunner.completeTest(); |
| }) |