[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/enrol/tests/behat/ -> behat_enrol.php (source)

   1  <?php
   2  // This file is part of Moodle - http://moodle.org/
   3  //
   4  // Moodle is free software: you can redistribute it and/or modify
   5  // it under the terms of the GNU General Public License as published by
   6  // the Free Software Foundation, either version 3 of the License, or
   7  // (at your option) any later version.
   8  //
   9  // Moodle is distributed in the hope that it will be useful,
  10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  // GNU General Public License for more details.
  13  //
  14  // You should have received a copy of the GNU General Public License
  15  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  16  
  17  /**
  18   * Enrolment steps definitions.
  19   *
  20   * @package    core_enrol
  21   * @category   test
  22   * @copyright  2013 David Monllaó
  23   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  24   */
  25  
  26  // NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php.
  27  
  28  require_once (__DIR__ . '/../../../lib/behat/behat_base.php');
  29  
  30  use Behat\Gherkin\Node\TableNode as TableNode;
  31  
  32  /**
  33   * Steps definitions for general enrolment actions.
  34   *
  35   * @package    core_enrol
  36   * @category   test
  37   * @copyright  2013 David Monllaó
  38   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  39   */
  40  class behat_enrol extends behat_base {
  41  
  42      /**
  43       * Adds the specified enrolment method to the current course filling the form with the provided data.
  44       *
  45       * @Given /^I add "(?P<enrolment_method_name_string>(?:[^"]|\\")*)" enrolment method with:$/
  46       * @param string $enrolmethod
  47       * @param TableNode $table
  48       */
  49      public function i_add_enrolment_method_with($enrolmethod, TableNode $table) {
  50          // Navigate to enrolment method page.
  51          $parentnodes = get_string('courseadministration') . ' > ' . get_string('users', 'admin');
  52          $this->execute("behat_navigation::i_navigate_to_node_in",
  53              array(get_string('type_enrol_plural', 'plugin'), $parentnodes)
  54          );
  55  
  56          // Select enrolment method.
  57          $this->execute('behat_forms::i_select_from_the_singleselect',
  58              array($this->escape($enrolmethod), get_string('addinstance', 'enrol'))
  59          );
  60  
  61          // Wait again, for page to reloaded.
  62          $this->execute('behat_general::i_wait_to_be_redirected');
  63  
  64          // Set form fields.
  65          $this->execute("behat_forms::i_set_the_following_fields_to_these_values", $table);
  66  
  67          // Save changes.
  68          $this->execute("behat_forms::press_button", get_string('addinstance', 'enrol'));
  69  
  70      }
  71  
  72      /**
  73       * Enrols the specified user in the current course without options.
  74       *
  75       * This is a simple step, to set enrolment options would be better to
  76       * create a separate step as a TableNode will be required.
  77       *
  78       * @Given /^I enrol "(?P<user_fullname_string>(?:[^"]|\\")*)" user as "(?P<rolename_string>(?:[^"]|\\")*)"$/
  79       * @param string $userfullname
  80       * @param string $rolename
  81       */
  82      public function i_enrol_user_as($userfullname, $rolename) {
  83  
  84          // Navigate to enrolment page.
  85          $parentnodes = get_string('courseadministration') . ' > ' . get_string('users', 'admin');
  86          $this->execute("behat_navigation::i_navigate_to_node_in",
  87              array(get_string('enrolledusers', 'enrol'), $parentnodes)
  88          );
  89  
  90          $this->execute("behat_forms::press_button", get_string('enrolusers', 'enrol'));
  91  
  92          if ($this->running_javascript()) {
  93              $this->execute('behat_forms::i_set_the_field_to', array(get_string('assignroles', 'role'), $rolename));
  94  
  95              // We have a div here, not a tr.
  96              $userliteral = behat_context_helper::escape($userfullname);
  97              $userrowxpath = "//div[contains(concat(' ',normalize-space(@class),' '),' user ')][contains(., $userliteral)]";
  98  
  99              $this->execute('behat_general::i_click_on_in_the',
 100                  array(get_string('enrol', 'enrol'), "button", $userrowxpath, "xpath_element")
 101              );
 102              $this->execute("behat_forms::press_button", get_string('finishenrollingusers', 'enrol'));
 103  
 104          } else {
 105              $this->execute('behat_forms::i_set_the_field_to', array(get_string('assignrole', 'role'), $rolename));
 106              $this->execute('behat_forms::i_set_the_field_to', array("addselect", $userfullname));
 107              $this->execute("behat_forms::press_button", "add");
 108          }
 109      }
 110  
 111  }


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1