. /** * Steps definitions related with the database activity. * * @package mod_data * @category test * @copyright 2014 David Monllaó * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ // NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. require_once(__DIR__ . '/../../../../lib/behat/behat_base.php'); use Behat\Gherkin\Node\TableNode as TableNode; /** * Database-related steps definitions. * * @package mod_data * @category test * @copyright 2014 David Monllaó * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class behat_mod_data extends behat_base { /** * Convert page names to URLs for steps like 'When I am on the "[identifier]" "[page type]" page'. * * Recognised page names are: * | pagetype | name meaning | description | * | Add entry | Database name | Add an entry page (view.php) | * * @param string $type identifies which type of page this is, e.g. 'Add entry'. * @param string $identifier identifies the particular page, e.g. 'My database name'. * @return moodle_url the corresponding URL. * @throws Exception with a meaningful error message if the specified page cannot be found. */ protected function resolve_page_instance_url(string $type, string $identifier): moodle_url { global $DB; switch (strtolower($type)) { case 'add entry': return new moodle_url('/mod/data/edit.php', [ 'd' => $this->get_cm_by_activity_name('data', $identifier)->instance, ]); default: throw new Exception("Unrecognised page type '{$type}'"); } } }