[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
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 arguments transformations. 19 * 20 * This methods are used by Behat CLI command. 21 * 22 * @package core 23 * @category test 24 * @copyright 2012 David Monllaó 25 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 26 */ 27 28 // NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. 29 30 require_once (__DIR__ . '/../../behat/behat_base.php'); 31 32 use Behat\Gherkin\Node\TableNode; 33 34 /** 35 * Transformations to apply to steps arguments. 36 * 37 * This methods are applied to the steps arguments that matches 38 * the regular expressions specified in the @Transform tag. 39 * 40 * @package core 41 * @category test 42 * @copyright 2013 David Monllaó 43 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 44 */ 45 class behat_transformations extends behat_base { 46 47 /** 48 * Removes escaped argument delimiters. 49 * 50 * We use double quotes as arguments delimiters and 51 * to add the " as part of an argument we escape it 52 * with a backslash, this method removes this backslash. 53 * 54 * @Transform /^((.*)"(.*))$/ 55 * @param string $string 56 * @return string The string with the arguments fixed. 57 */ 58 public function arg_replace_slashes($string) { 59 if (!is_scalar($string)) { 60 return $string; 61 } 62 return str_replace('\"', '"', $string); 63 } 64 65 /** 66 * Replaces $NASTYSTRING vars for a nasty string. 67 * 68 * @Transform /^((.*)\$NASTYSTRING(\d)(.*))$/ 69 * @param string $argument The whole argument value. 70 * @return string 71 */ 72 public function arg_replace_nasty_strings($argument) { 73 if (!is_scalar($argument)) { 74 return $argument; 75 } 76 return $this->replace_nasty_strings($argument); 77 } 78 79 /** 80 * Transformations for TableNode arguments. 81 * 82 * Transformations applicable to TableNode arguments should also 83 * be applied, adding them in a different method for Behat API restrictions. 84 * 85 * @Transform /^table:(.*)/ 86 * @param TableNode $tablenode 87 * @return TableNode The transformed table 88 */ 89 public function tablenode_transformations(TableNode $tablenode) { 90 91 // Walk through all values including the optional headers. 92 $rows = $tablenode->getRows(); 93 foreach ($rows as $rowkey => $row) { 94 foreach ($row as $colkey => $value) { 95 96 // Transforms vars into nasty strings. 97 if (preg_match('/\$NASTYSTRING(\d)/', $rows[$rowkey][$colkey])) { 98 $rows[$rowkey][$colkey] = $this->replace_nasty_strings($rows[$rowkey][$colkey]); 99 } 100 } 101 } 102 103 // Return the transformed TableNode. 104 $tablenode->setRows($rows); 105 return $tablenode; 106 } 107 108 /** 109 * Replaces $NASTYSTRING vars for a nasty string. 110 * 111 * Method reused by TableNode tranformation. 112 * 113 * @param string $string 114 * @return string 115 */ 116 public function replace_nasty_strings($string) { 117 return preg_replace_callback( 118 '/\$NASTYSTRING(\d)/', 119 function ($matches) { 120 return nasty_strings::get($matches[0]); 121 }, 122 $string 123 ); 124 } 125 126 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |