blob: f40e05eafa5e3304c6f7e937fda66f6c9bdd08f5 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function() {
TestRunner.addResult(`Tests the if events are getting emitted when coverage changes.\n`);
await TestRunner.loadModule('coverage_test_runner');
TestRunner.addResult('Should have coverage information even when not covered yet');
await CoverageTestRunner.startCoverage(true);
await TestRunner.addScriptTag('resources/coverage.js');
await CoverageTestRunner.pollCoverage();
const coverageModel = CoverageTestRunner.getCoverageModel();
const coverageInfo = coverageModel.getCoverageForUrl(TestRunner.url('resources/coverage.js'));
TestRunner.addResult('Coverage info found.');
TestRunner.addResult('Coverage should emit an event whenever it changes');
const sizesUpdatedPromise = coverageInfo.once(Coverage.URLCoverageInfo.Events.SizesChanged);
await TestRunner.evaluateInPagePromise('performActions()');
await sizesUpdatedPromise; // Wait for the event to be triggered.
TestRunner.addResult('Event got emitted.');
await CoverageTestRunner.stopCoverage();
TestRunner.addResult('Coverage should emit an event when it gets reset');
const coverageResetPromise = coverageModel.once(Coverage.CoverageModel.Events.CoverageReset);
coverageModel.reset();
await coverageResetPromise; // Wait for the event to be triggered.
TestRunner.addResult('Event got emitted.');
TestRunner.completeTest();
})();