[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/grade/tests/behat/ -> behat_grade.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   * Behat grade related steps definitions.
  19   *
  20   * @package    core_grades
  21   * @category   test
  22   * @copyright  2014 Mark Nelson <[email protected]>
  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\Behat\Context\Step\Given as Given,
  31      Behat\Gherkin\Node\TableNode as TableNode;
  32  
  33  class behat_grade extends behat_base {
  34  
  35      /**
  36       * Enters a grade via the gradebook for a specific grade item and user when viewing the 'Grader report' with editing mode turned on.
  37       *
  38       * @Given /^I give the grade "(?P<grade_number>(?:[^"]|\\")*)" to the user "(?P<username_string>(?:[^"]|\\")*)" for the grade item "(?P<grade_activity_string>(?:[^"]|\\")*)"$/
  39       * @param int $grade
  40       * @param string $userfullname the user's fullname as returned by fullname()
  41       * @param string $itemname
  42       * @return Given
  43       */
  44      public function i_give_the_grade($grade, $userfullname, $itemname) {
  45          $gradelabel = $userfullname . ' ' . $itemname;
  46          $fieldstr = get_string('useractivitygrade', 'gradereport_grader', $gradelabel);
  47  
  48          return new Given('I set the field "' . $this->escape($fieldstr) . '" to "' . $grade . '"');
  49      }
  50  
  51      /**
  52       * Changes the settings of a grade item or category or the course.
  53       *
  54       * Teacher must be either on the grade setup page or on the Grader report page with editing mode turned on.
  55       *
  56       * @Given /^I set the following settings for grade item "(?P<grade_item_string>(?:[^"]|\\")*)":$/
  57       * @param string $gradeitem
  58       * @param TableNode $data
  59       * @return Given[]
  60       */
  61      public function i_set_the_following_settings_for_grade_item($gradeitem, TableNode $data) {
  62  
  63          $steps = array();
  64          $gradeitem = $this->getSession()->getSelectorsHandler()->xpathLiteral($gradeitem);
  65  
  66          if ($this->running_javascript()) {
  67              $xpath = "//tr[contains(.,$gradeitem)]//*[contains(@class,'moodle-actionmenu')]//a[contains(@class,'toggle-display')]";
  68              if ($this->getSession()->getPage()->findAll('xpath', $xpath)) {
  69                  $steps[] = new Given('I click on "' . $this->escape($xpath) . '" "xpath_element"');
  70              }
  71          }
  72  
  73          $savechanges = get_string('savechanges', 'grades');
  74          $edit = $this->getSession()->getSelectorsHandler()->xpathLiteral(get_string('edit') . '  ');
  75          $linkxpath = "//a[./img[starts-with(@title,$edit) and contains(@title,$gradeitem)]]";
  76          $steps[] = new Given('I click on "' . $this->escape($linkxpath) . '" "xpath_element"');
  77          $steps[] = new Given('I set the following fields to these values:', $data);
  78          $steps[] = new Given('I press "' . $this->escape($savechanges) . '"');
  79          return $steps;
  80      }
  81  
  82      /**
  83       * Resets the weights for the grade category
  84       *
  85       * Teacher must be on the grade setup page.
  86       *
  87       * @Given /^I reset weights for grade category "(?P<grade_item_string>(?:[^"]|\\")*)"$/
  88       * @param $gradeitem
  89       * @return array
  90       */
  91      public function i_reset_weights_for_grade_category($gradeitem) {
  92  
  93          $steps = array();
  94  
  95          if ($this->running_javascript()) {
  96              $gradeitemliteral = $this->getSession()->getSelectorsHandler()->xpathLiteral($gradeitem);
  97              $xpath = "//tr[contains(.,$gradeitemliteral)]//*[contains(@class,'moodle-actionmenu')]//a[contains(@class,'toggle-display')]";
  98              if ($this->getSession()->getPage()->findAll('xpath', $xpath)) {
  99                  $steps[] = new Given('I click on "' . $this->escape($xpath) . '" "xpath_element"');
 100              }
 101          }
 102  
 103          $linktext = get_string('resetweights', 'grades', (object)array('itemname' => $gradeitem));
 104          $steps[] = new Given('I click on "' . $this->escape($linktext) . '" "link"');
 105          return $steps;
 106      }
 107  }


Generated: Fri Nov 28 20:29:05 2014 Cross-referenced by PHPXref 0.7.1