protected function tearDown(): void
{ if ($this->mink
) { $status =
$this->
getStatus();
if ($status === BaseTestRunner::STATUS_ERROR ||
$status === BaseTestRunner::STATUS_WARNING ||
$status === BaseTestRunner::STATUS_FAILURE
) { // Ensure we capture the output at point of failure.
@
$this->
htmlOutput();
} // Wait for all requests to finish. It is possible that an AJAX request is
// still on-going.
$result =
$this->
getSession()->
wait(5000, '(typeof(jQuery)=="undefined" || (0 === jQuery.active && 0 === jQuery(\':animated\').length))'
);
if (!
$result) { // If the wait is unsuccessful, there may still be an AJAX request in
// progress. If we tear down now, then this AJAX request may fail with
// missing database tables, because tear down will have removed them.
// Rather than allow it to fail, throw an explicit exception now
// explaining what the problem is.
throw new \
RuntimeException('Unfinished AJAX requests while tearing down a test'
);
} $warnings =
$this->
getSession()->
evaluateScript("JSON.parse(sessionStorage.getItem('js_testing_log_test.warnings') || JSON.stringify([]))"
);
foreach ($warnings as $warning) {