diff --git a/lib/behat/classes/behat_generator_base.php b/lib/behat/classes/behat_generator_base.php index 9b9661f7895..262b6f415a6 100644 --- a/lib/behat/classes/behat_generator_base.php +++ b/lib/behat/classes/behat_generator_base.php @@ -279,6 +279,17 @@ abstract class behat_generator_base { ' data generator is not implemented'); } } + + // Notify that the all the elements have been generated. + if (method_exists($this->componentdatagenerator, 'finish_generate_' . $generatortype)) { + // Using the component's own data generator if it exists. + $this->componentdatagenerator->{'finish_generate_' . $generatortype}(); + + } else if (method_exists($this->datagenerator, 'finish_generate_' . $generatortype)) { + // Use a method on the core data geneator, if there is one. + $this->datagenerator->{'finish_generate_' . $generatortype}(); + + } } /** diff --git a/lib/upgrade.txt b/lib/upgrade.txt index b7da5238c21..87f7ebf48e1 100644 --- a/lib/upgrade.txt +++ b/lib/upgrade.txt @@ -6,6 +6,7 @@ information provided here is intended especially for developers. (via options.pending). This is a backport of patch MDL-78779. * Add a new parameter to the debounce (core/utils) function to allow for cancellation. * Add a new method core_user::get_initials to get the initials of a user in a way compatible with internationalisation. +* Behat generators can now implement the function finish_generate_ to detect when the whole list of elements have been generated. === 4.2.3 === * \moodle_page::set_title() has been updated to append the site name depending on the value of $CFG->sitenameintitle and whether