MDL-42362 behat: Passing options to modules generators
authorDavid Monllao <davidm@moodle.com>
Tue, 15 Oct 2013 10:08:31 +0000 (18:08 +0800)
committerDavid Monllao <davidm@moodle.com>
Mon, 21 Oct 2013 03:11:39 +0000 (11:11 +0800)
lib/tests/behat/behat_data_generators.php

index 007ce54..0a5b390 100644 (file)
@@ -224,14 +224,24 @@ class behat_data_generators extends behat_base {
      * @return void
      */
     protected function process_activity($data) {
+        global $DB;
 
         // The the_following_exists() method checks that the field exists.
         $activityname = $data['activity'];
         unset($data['activity']);
 
+        // We split $data in the activity $record and the course module $options.
+        $cmoptions = array();
+        $cmcolumns = $DB->get_columns('course_modules');
+        foreach ($cmcolumns as $key => $value) {
+            if (isset($data[$key])) {
+                $cmoptions[$key] = $data[$key];
+            }
+        }
+
         // Custom exception.
         try {
-            $this->datagenerator->create_module($activityname, $data);
+            $this->datagenerator->create_module($activityname, $data, $cmoptions);
         } catch (coding_exception $e) {
             throw new Exception('\'' . $activityname . '\' activity can not be added using this step,' .
                 ' use the step \'I add a "ACTIVITY_OR_RESOURCE_NAME_STRING" to section "SECTION_NUMBER"\' instead');