[ Index ] |
PHP Cross Reference of Unnamed Project |
[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 calendar-related steps definitions. 19 * 20 * @package core_calendar 21 * @category test 22 * @copyright 2013 Mark Nelson <markn@moodle.com> 23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 24 */ 25 26 // NOTE: no MOODLE_INTERNAL used, this file may be required by behat before including /config.php. 27 require_once (__DIR__ . '/../../../lib/behat/behat_base.php'); 28 29 use Behat\Gherkin\Node\TableNode as TableNode; 30 31 /** 32 * Contains functions used by behat to test functionality. 33 * 34 * @package core_calendar 35 * @category test 36 * @copyright 2013 Mark Nelson <markn@moodle.com> 37 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 38 */ 39 class behat_calendar extends behat_base { 40 41 /** 42 * Create event when starting on the front page. 43 * 44 * @Given /^I create a calendar event with form data:$/ 45 * @param TableNode $data 46 */ 47 public function i_create_a_calendar_event_with_form_data($data) { 48 // Go to current month page. 49 $this->execute("behat_general::click_link", get_string('monththis', 'calendar')); 50 51 // Create event. 52 $this->i_create_a_calendar_event($data); 53 } 54 55 /** 56 * Create event. 57 * 58 * @Given /^I create a calendar event:$/ 59 * @param TableNode $data 60 */ 61 public function i_create_a_calendar_event($data) { 62 // Get the event name. 63 $eventname = $data->getRow(1); 64 $eventname = $eventname[1]; 65 66 // Click to create new event. 67 $this->execute("behat_general::i_click_on", array(get_string('newevent', 'calendar'), "button")); 68 69 // Set form fields. 70 $this->execute("behat_forms::i_set_the_following_fields_to_these_values", $data); 71 72 // Save event. 73 $this->execute("behat_forms::press_button", get_string('savechanges')); 74 75 // Check if event is created. Being last step, don't need to wait or check for exceptions. 76 $this->execute("behat_general::assert_page_contains_text", $eventname); 77 78 } 79 80 /** 81 * Hover over a specific day in the calendar. 82 * 83 * @Given /^I hover over day "(?P<dayofmonth>\d+)" of this month in the calendar$/ 84 * @param int $day The day of the current month 85 */ 86 public function i_hover_over_day_of_this_month_in_calendar($day) { 87 $summarytitle = get_string('calendarheading', 'calendar', userdate(time(), get_string('strftimemonthyear'))); 88 // The current month table. 89 $currentmonth = "table[contains(concat(' ', normalize-space(@summary), ' '), ' {$summarytitle} ')]"; 90 91 // Strings for the class cell match. 92 $cellclasses = "contains(concat(' ', normalize-space(@class), ' '), ' day ')"; 93 $daycontains = "text()[contains(concat(' ', normalize-space(.), ' '), ' {$day} ')]"; 94 $daycell = "td[{$cellclasses}]"; 95 $dayofmonth = "a[{$daycontains}]"; 96 97 $xpath = '//' . $currentmonth . '/descendant::' . $daycell . '/' . $dayofmonth; 98 $this->execute("behat_general::i_hover", array($xpath, "xpath_element")); 99 100 } 101 102 /** 103 * Hover over today in the calendar. 104 * 105 * @Given /^I hover over today in the calendar$/ 106 */ 107 public function i_hover_over_today_in_the_calendar() { 108 // For window's compatibility, using %d and not %e. 109 $todaysday = trim(strftime('%d')); 110 $todaysday = ltrim($todaysday, '0'); 111 return $this->i_hover_over_day_of_this_month_in_calendar($todaysday); 112 } 113 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |