/** * {@inheritdoc} */ protected function tearDown() { // 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 whilst tearing down a test'); } parent::tearDown(); }