Exemple #1
0
 /**
  * Tests constructing and using date condition as part of tree.
  */
 public function test_in_tree()
 {
     global $SITE, $USER, $CFG;
     $this->resetAfterTest();
     $this->setAdminUser();
     // Set server timezone for test. (Important as otherwise the timezone
     // could be anything - this is modified by other unit tests, too.)
     $this->setTimezone('UTC');
     // SEt user to GMT+5.
     $USER->timezone = 5;
     // Construct tree with date condition.
     $time = strtotime('2014-02-18 14:20:00 GMT');
     $structure = (object) array('op' => '|', 'show' => true, 'c' => array((object) array('type' => 'date', 'd' => '>=', 't' => $time)));
     $tree = new \core_availability\tree($structure);
     $info = new \core_availability\mock_info();
     // Check if available (when not available).
     condition::set_current_time_for_test($time - 1);
     $information = '';
     $result = $tree->check_available(false, $info, true, $USER->id);
     $this->assertFalse($result->is_available());
     $information = $tree->get_result_information($info, $result);
     // Note: PM is normally upper-case, but an issue with PHP on Mac means
     // that on that platform, it is reported lower-case.
     $this->assertRegExp('~from.*18 February 2014, 7:20 (PM|pm)~', $information);
     // Check if available (when available).
     condition::set_current_time_for_test($time);
     $result = $tree->check_available(false, $info, true, $USER->id);
     $this->assertTrue($result->is_available());
     $information = $tree->get_result_information($info, $result);
     $this->assertEquals('', $information);
 }
Exemple #2
0
 /**
  * Shortcut function to check availability and also get information.
  *
  * @param stdClass $structure Tree structure
  * @param \core_availability\info $info Location info
  * @param int $userid User id
  */
 protected function get_available_results($structure, \core_availability\info $info, $userid)
 {
     global $PAGE;
     $tree = new tree($structure);
     $result = $tree->check_available(false, $info, true, $userid);
     $information = $tree->get_result_information($info, $result);
     if (!is_string($information)) {
         $renderer = $PAGE->get_renderer('core', 'availability');
         $information = $renderer->render($information);
     }
     return array($result->is_available(), $information);
 }
Exemple #3
0
 /**
  * Shortcut function to check availability and also get information.
  *
  * @param stdClass $structure Tree structure
  * @param \core_availability\info $info Location info
  * @param int $userid User id
  */
 protected function get_available_results($structure, \core_availability\info $info, $userid)
 {
     $tree = new tree($structure);
     $result = $tree->check_available(false, $info, true, $userid);
     return array($result->is_available(), $tree->get_result_information($info, $result));
 }