MOBILE-4061 behat: Handle custom url async function
parent
064ea15f8b
commit
92d4a6a16b
|
@ -731,9 +731,10 @@ class behat_app extends behat_base {
|
||||||
throw new DriverException('Invalid custom link title - ' . $title);
|
throw new DriverException('Invalid custom link title - ' . $title);
|
||||||
}
|
}
|
||||||
|
|
||||||
$url = "moodlemobile://link=" . urlencode($pageurl);
|
$urlscheme = $this->get_mobile_url_scheme();
|
||||||
|
$url = "$urlscheme://link=" . urlencode($pageurl);
|
||||||
|
|
||||||
$this->evaluate_script("return window.urlSchemes.handleCustomURL('$url')");
|
$this->evaluate_async_script("return window.behat.handleCustomURL('$url')");
|
||||||
$this->wait_for_pending_js();
|
$this->wait_for_pending_js();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1180,4 +1181,13 @@ class behat_app extends behat_base {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the current mobile url scheme of the site.
|
||||||
|
*/
|
||||||
|
private function get_mobile_url_scheme() {
|
||||||
|
$mobilesettings = get_config('tool_mobile');
|
||||||
|
|
||||||
|
return !empty($mobilesettings->forcedurlscheme) ? $mobilesettings->forcedurlscheme : 'moodlemobile';
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
import { TestsBehatDomUtils } from './behat-dom';
|
import { TestsBehatDomUtils } from './behat-dom';
|
||||||
import { TestsBehatBlocking } from './behat-blocking';
|
import { TestsBehatBlocking } from './behat-blocking';
|
||||||
|
import { CoreCustomURLSchemes } from '@services/urlschemes';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Behat runtime servive with public API.
|
* Behat runtime servive with public API.
|
||||||
|
@ -35,14 +36,31 @@ export class TestsBehatRuntime {
|
||||||
pressStandard: TestsBehatRuntime.pressStandard,
|
pressStandard: TestsBehatRuntime.pressStandard,
|
||||||
scrollTo: TestsBehatRuntime.scrollTo,
|
scrollTo: TestsBehatRuntime.scrollTo,
|
||||||
setField: TestsBehatRuntime.setField,
|
setField: TestsBehatRuntime.setField,
|
||||||
|
handleCustomURL: TestsBehatRuntime.handleCustomURL,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles a custom URL.
|
||||||
|
*
|
||||||
|
* @param url Url to open.
|
||||||
|
* @return OK if successful, or ERROR: followed by message.
|
||||||
|
*/
|
||||||
|
static async handleCustomURL(url: string): Promise<string> {
|
||||||
|
try {
|
||||||
|
await CoreCustomURLSchemes.handleCustomURL(url);
|
||||||
|
|
||||||
|
return 'OK';
|
||||||
|
} catch (error) {
|
||||||
|
return 'ERROR: ' + error.message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to find and click an app standard button.
|
* Function to find and click an app standard button.
|
||||||
*
|
*
|
||||||
* @param button Type of button to press
|
* @param button Type of button to press.
|
||||||
* @return OK if successful, or ERROR: followed by message
|
* @return OK if successful, or ERROR: followed by message.
|
||||||
*/
|
*/
|
||||||
static pressStandard(button: string): string {
|
static pressStandard(button: string): string {
|
||||||
this.log('Action - Click standard button: ' + button);
|
this.log('Action - Click standard button: ' + button);
|
||||||
|
|
Loading…
Reference in New Issue