MDL-48063 behat: Fixed JS Exception

M is not created on all pages, like cron and
Steps which check for exported data. So we need
to ensure M is defined, before using it in
behat_hooks::wait_for_pending_js()
This commit is contained in:
Rajesh Taneja
2014-11-21 11:01:35 +08:00
parent ca0e301c7b
commit 2ca7f4e649
+12 -1
View File
@@ -406,7 +406,18 @@ class behat_hooks extends behat_base {
for ($i = 0; $i < self::EXTENDED_TIMEOUT * 10; $i++) {
$pending = '';
try {
$jscode = 'return ' . self::PAGE_READY_JS . ' ? "" : M.util.pending_js.join(":");';
$jscode =
'if (typeof M === "undefined") {
if (document.readyState === "complete") {
return "";
} else {
return "incomplete";
}
} else if (' . self::PAGE_READY_JS . ') {
return "";
} else {
return M.util.pending_js.join(":");
}';
$pending = $this->getSession()->evaluateScript($jscode);
} catch (NoSuchWindow $nsw) {
// We catch an exception here, in case we just closed the window we were interacting with.