original_string: protected function build_config($parallelruns = 0, $currentrun = 0) {
          global $CFG;
  
          if (!empty($parallelruns) && !empty($currentrun)) {
              $this->set_parallel_run($parallelruns, $currentrun);
          } else {
              $currentrun = $this->get_current_run();
              $parallelruns = $this->get_number_of_parallel_run();
          }
  
          $selenium2wdhost = array('wd_host' => 'http://localhost:4444/wd/hub');
          // If parallel run, then set wd_host if specified.
          if (!empty($currentrun) && !empty($parallelruns)) {
              // Set proper selenium2 wd_host if defined.
              if (!empty($CFG->behat_parallel_run[$currentrun - 1]['wd_host'])) {
                  $selenium2wdhost = array('wd_host' => $CFG->behat_parallel_run[$currentrun - 1]['wd_host']);
              }
          }
  
          // It is possible that it has no value as we don't require a full behat setup to list the step definitions.
          if (empty($CFG->behat_wwwroot)) {
              $CFG->behat_wwwroot = 'http://itwillnotbeused.com';
          }
  
          $suites = $this->get_behat_suites($parallelruns, $currentrun);
  
          $selectortypes = ['named_partial', 'named_exact'];
          $allpaths = [];
          foreach (array_keys($suites) as $theme) {
              // Remove selectors from step definitions.
              foreach ($selectortypes as $selectortype) {
                  // Don't include selector classes.
                  $selectorclass = self::get_behat_theme_selector_override_classname($theme, $selectortype);
                  if (isset($suites[$theme]['contexts'][$selectorclass])) {
                      unset($suites[$theme]['contexts'][$selectorclass]);
                  }
              }
  
              // Get a list of all step definition paths.
              $allpaths = array_merge($allpaths, $suites[$theme]['contexts']);
  
              // Convert the contexts array to a list of names only.
              $suites[$theme]['contexts'] = array_keys($suites[$theme]['contexts']);
          }
  
          // Comments use black color, so failure path is not visible. Using color other then black/white is safer.
          // https://github.com/Behat/Behat/pull/628.
          $config = array(
              'default' => array(
                  'formatters' => array(
                      'moodle_progress' => array(
                          'output_styles' => array(
                              'comment' => array('magenta'))
                      )
                  ),
                  'suites' => $suites,
                  'extensions' => array(
                      'Behat\MinkExtension' => array(
                          'base_url' => $CFG->behat_wwwroot,
                          'goutte' => null,
                          'selenium2' => $selenium2wdhost
                      ),
                      'Moodle\BehatExtension' => array(
                          'moodledirroot' => $CFG->dirroot,
                          'steps_definitions' => $allpaths,
                      )
                  )
              )
          );
  
          return $config;
      }
code: protected function build_config($parallelruns = 0, $currentrun = 0) {
          global $CFG;
  
          if (!empty($parallelruns) && !empty($currentrun)) {
              $this->set_parallel_run($parallelruns, $currentrun);
          } else {
              $currentrun = $this->get_current_run();
              $parallelruns = $this->get_number_of_parallel_run();
          }
  
          $selenium2wdhost = array('wd_host' => 'http://localhost:4444/wd/hub');
          // If parallel run, then set wd_host if specified.
          if (!empty($currentrun) && !empty($parallelruns)) {
              // Set proper selenium2 wd_host if defined.
              if (!empty($CFG->behat_parallel_run[$currentrun - 1]['wd_host'])) {
                  $selenium2wdhost = array('wd_host' => $CFG->behat_parallel_run[$currentrun - 1]['wd_host']);
              }
          }
  
          // It is possible that it has no value as we don't require a full behat setup to list the step definitions.
          if (empty($CFG->behat_wwwroot)) {
              $CFG->behat_wwwroot = 'http://itwillnotbeused.com';
          }
  
          $suites = $this->get_behat_suites($parallelruns, $currentrun);
  
          $selectortypes = ['named_partial', 'named_exact'];
          $allpaths = [];
          foreach (array_keys($suites) as $theme) {
              // Remove selectors from step definitions.
              foreach ($selectortypes as $selectortype) {
                  // Don't include selector classes.
                  $selectorclass = self::get_behat_theme_selector_override_classname($theme, $selectortype);
                  if (isset($suites[$theme]['contexts'][$selectorclass])) {
                      unset($suites[$theme]['contexts'][$selectorclass]);
                  }
              }
  
              // Get a list of all step definition paths.
              $allpaths = array_merge($allpaths, $suites[$theme]['contexts']);
  
              // Convert the contexts array to a list of names only.
              $suites[$theme]['contexts'] = array_keys($suites[$theme]['contexts']);
          }
  
          // Comments use black color, so failure path is not visible. Using color other then black/white is safer.
          // https://github.com/Behat/Behat/pull/628.
          $config = array(
              'default' => array(
                  'formatters' => array(
                      'moodle_progress' => array(
                          'output_styles' => array(
                              'comment' => array('magenta'))
                      )
                  ),
                  'suites' => $suites,
                  'extensions' => array(
                      'Behat\MinkExtension' => array(
                          'base_url' => $CFG->behat_wwwroot,
                          'goutte' => null,
                          'selenium2' => $selenium2wdhost
                      ),
                      'Moodle\BehatExtension' => array(
                          'moodledirroot' => $CFG->dirroot,
                          'steps_definitions' => $allpaths,
                      )
                  )
              )
          );
  
          return $config;
      }
code_tokens: protected function build_config ( $ parallelruns = 0 , $ currentrun = 0 ) { global $ CFG ; if ( ! empty ( $ parallelruns ) && ! empty ( $ currentrun ) ) { $ this -> set_parallel_run ( $ parallelruns , $ currentrun ) ; } else { $ currentrun = $ this -> get_current_run ( ) ; $ parallelruns = $ this -> get_number_of_parallel_run ( ) ; } $ selenium2wdhost = array ( 'wd_host' => 'http://localhost:4444/wd/hub' ) ; // If parallel run, then set wd_host if specified. if ( ! empty ( $ currentrun ) && ! empty ( $ parallelruns ) ) { // Set proper selenium2 wd_host if defined. if ( ! empty ( $ CFG -> behat_parallel_run [ $ currentrun - 1 ] [ 'wd_host' ] ) ) { $ selenium2wdhost = array ( 'wd_host' => $ CFG -> behat_parallel_run [ $ currentrun - 1 ] [ 'wd_host' ] ) ; } } // It is possible that it has no value as we don't require a full behat setup to list the step definitions. if ( empty ( $ CFG -> behat_wwwroot ) ) { $ CFG -> behat_wwwroot = 'http://itwillnotbeused.com' ; } $ suites = $ this -> get_behat_suites ( $ parallelruns , $ currentrun ) ; $ selectortypes = [ 'named_partial' , 'named_exact' ] ; $ allpaths = [ ] ; foreach ( array_keys ( $ suites ) as $ theme ) { // Remove selectors from step definitions. foreach ( $ selectortypes as $ selectortype ) { // Don't include selector classes. $ selectorclass = self :: get_behat_theme_selector_override_classname ( $ theme , $ selectortype ) ; if ( isset ( $ suites [ $ theme ] [ 'contexts' ] [ $ selectorclass ] ) ) { unset ( $ suites [ $ theme ] [ 'contexts' ] [ $ selectorclass ] ) ; } } // Get a list of all step definition paths. $ allpaths = array_merge ( $ allpaths , $ suites [ $ theme ] [ 'contexts' ] ) ; // Convert the contexts array to a list of names only. $ suites [ $ theme ] [ 'contexts' ] = array_keys ( $ suites [ $ theme ] [ 'contexts' ] ) ; } // Comments use black color, so failure path is not visible. Using color other then black/white is safer. // https://github.com/Behat/Behat/pull/628. $ config = array ( 'default' => array ( 'formatters' => array ( 'moodle_progress' => array ( 'output_styles' => array ( 'comment' => array ( 'magenta' ) ) ) ) , 'suites' => $ suites , 'extensions' => array ( 'Behat\MinkExtension' => array ( 'base_url' => $ CFG -> behat_wwwroot , 'goutte' => null , 'selenium2' => $ selenium2wdhost ) , 'Moodle\BehatExtension' => array ( 'moodledirroot' => $ CFG -> dirroot , 'steps_definitions' => $ allpaths , ) ) ) ) ; return $ config ; }
docstring: Build config for behat.yml.
  
  @param int $parallelruns how many parallel runs feature needs to be divided.
  @param int $currentrun current run for which features should be returned.
  @return array
docstring_tokens: Build config for behat . yml .