2012-04-21 17:47:30 +02:00
|
|
|
<?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/>.
|
|
|
|
|
|
|
|
/**
|
2013-07-28 00:14:14 +02:00
|
|
|
* Tests for the moodle_page class.
|
2012-04-21 17:47:30 +02:00
|
|
|
*
|
|
|
|
* @package core
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
* @category test
|
2012-04-21 17:47:30 +02:00
|
|
|
* @copyright 2009 Tim Hunt
|
|
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
|
|
*/
|
|
|
|
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
namespace core;
|
|
|
|
|
|
|
|
use moodle_page;
|
|
|
|
|
2012-04-21 17:47:30 +02:00
|
|
|
defined('MOODLE_INTERNAL') || die();
|
|
|
|
|
|
|
|
global $CFG;
|
|
|
|
require_once($CFG->libdir . '/pagelib.php');
|
|
|
|
require_once($CFG->libdir . '/blocklib.php');
|
|
|
|
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
/**
|
|
|
|
* Tests for the moodle_page class.
|
|
|
|
*
|
|
|
|
* @package core
|
|
|
|
* @category test
|
|
|
|
* @copyright 2009 Tim Hunt
|
|
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
|
|
* @coversDefaultClass \moodle_page
|
|
|
|
*/
|
|
|
|
class moodle_page_test extends \advanced_testcase {
|
2013-09-12 09:51:58 +12:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @var testable_moodle_page
|
|
|
|
*/
|
2012-04-21 17:47:30 +02:00
|
|
|
protected $testpage;
|
|
|
|
|
2020-08-02 10:59:12 +02:00
|
|
|
public function setUp(): void {
|
2012-05-12 21:06:24 +02:00
|
|
|
parent::setUp();
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->resetAfterTest();
|
|
|
|
$this->testpage = new testable_moodle_page();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_course_returns_site_before_set() {
|
|
|
|
global $SITE;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertSame($SITE, $this->testpage->course);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_setting_course_works() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance()); // Avoid trying to set the context.
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_course($course);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertEquals($course, $this->testpage->course);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_global_course_and_page_course_are_same_with_global_page() {
|
|
|
|
global $COURSE, $PAGE;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance()); // Avoid trying to set the context.
|
2012-04-21 17:47:30 +02:00
|
|
|
$PAGE = $this->testpage;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_course($course);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame($COURSE, $this->testpage->course);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_global_course_not_changed_with_non_global_page() {
|
|
|
|
global $COURSE;
|
|
|
|
$originalcourse = $COURSE;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance()); // Avoid trying to set the context.
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_course($course);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertSame($originalcourse, $COURSE);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_cannot_set_course_once_theme_set() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->force_theme(\theme_config::DEFAULT_THEME);
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
2016-07-05 13:26:31 +08:00
|
|
|
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->expectException(\coding_exception::class);
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_course($course);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_cannot_set_category_once_theme_set() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->force_theme(\theme_config::DEFAULT_THEME);
|
2016-07-05 13:26:31 +08:00
|
|
|
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->expectException(\coding_exception::class);
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_category_by_id(123);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_cannot_set_category_once_course_set() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance()); // Avoid trying to set the context.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_course($course);
|
2016-07-05 13:26:31 +08:00
|
|
|
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->expectException(\coding_exception::class);
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_category_by_id(123);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_categories_array_empty_for_front_page() {
|
|
|
|
global $SITE;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance()); // Avoid trying to set the context.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_course($SITE);
|
|
|
|
// Exercise SUT and validate.
|
|
|
|
$this->assertEquals(array(), $this->testpage->categories);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_state_normal_path() {
|
|
|
|
$course = $this->getDataGenerator()->create_course();
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance());
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_course($course);
|
|
|
|
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->assertEquals(\moodle_page::STATE_BEFORE_HEADER, $this->testpage->state);
|
2012-04-21 17:47:30 +02:00
|
|
|
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_state(\moodle_page::STATE_PRINTING_HEADER);
|
|
|
|
$this->assertEquals(\moodle_page::STATE_PRINTING_HEADER, $this->testpage->state);
|
2012-04-21 17:47:30 +02:00
|
|
|
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_state(\moodle_page::STATE_IN_BODY);
|
|
|
|
$this->assertEquals(\moodle_page::STATE_IN_BODY, $this->testpage->state);
|
2012-04-21 17:47:30 +02:00
|
|
|
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_state(\moodle_page::STATE_DONE);
|
|
|
|
$this->assertEquals(\moodle_page::STATE_DONE, $this->testpage->state);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_state_cannot_skip_one() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->expectException(\coding_exception::class);
|
|
|
|
$this->testpage->set_state(\moodle_page::STATE_IN_BODY);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_header_printed_false_initially() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertFalse($this->testpage->headerprinted);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_header_printed_becomes_true() {
|
|
|
|
$course = $this->getDataGenerator()->create_course();
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance());
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_course($course);
|
|
|
|
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_state(\moodle_page::STATE_PRINTING_HEADER);
|
|
|
|
$this->testpage->set_state(\moodle_page::STATE_IN_BODY);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertTrue($this->testpage->headerprinted);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_context() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$context = \context_course::instance($course->id);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_context($context);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertSame($context, $this->testpage->context);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_pagetype_defaults_to_script() {
|
2012-11-19 22:16:17 +01:00
|
|
|
global $SCRIPT;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT and validate.
|
2012-11-19 22:16:17 +01:00
|
|
|
$SCRIPT = '/index.php';
|
|
|
|
$this->testpage->initialise_default_pagetype();
|
2013-07-28 00:14:14 +02:00
|
|
|
$this->assertSame('site-index', $this->testpage->pagetype);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_pagetype() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_pagetype('a-page-type');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('a-page-type', $this->testpage->pagetype);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_initialise_default_pagetype() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->initialise_default_pagetype('admin/tool/unittest/index.php');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('admin-tool-unittest-index', $this->testpage->pagetype);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_initialise_default_pagetype_fp() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->initialise_default_pagetype('index.php');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('site-index', $this->testpage->pagetype);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_get_body_classes_empty() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('', $this->testpage->bodyclasses);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_get_body_classes_single() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->add_body_class('aclassname');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('aclassname', $this->testpage->bodyclasses);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_get_body_classes() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->add_body_classes(array('aclassname', 'anotherclassname'));
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('aclassname anotherclassname', $this->testpage->bodyclasses);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_url_to_class_name() {
|
2013-07-28 00:14:14 +02:00
|
|
|
$this->assertSame('example-com', $this->testpage->url_to_class_name('http://example.com'));
|
|
|
|
$this->assertSame('example-com--80', $this->testpage->url_to_class_name('http://example.com:80'));
|
|
|
|
$this->assertSame('example-com--moodle', $this->testpage->url_to_class_name('https://example.com/moodle'));
|
|
|
|
$this->assertSame('example-com--8080--nested-moodle', $this->testpage->url_to_class_name('https://example.com:8080/nested/moodle'));
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_docs_path() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_docs_path('a/file/path');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('a/file/path', $this->testpage->docspath);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_docs_path_defaults_from_pagetype() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_pagetype('a-page-type');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('a/page/type', $this->testpage->docspath);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_url_root() {
|
|
|
|
global $CFG;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_url('/');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame($CFG->wwwroot . '/', $this->testpage->url->out());
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_url_one_param() {
|
|
|
|
global $CFG;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_url('/mod/quiz/attempt.php', array('attempt' => 123));
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame($CFG->wwwroot . '/mod/quiz/attempt.php?attempt=123', $this->testpage->url->out());
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_url_two_params() {
|
|
|
|
global $CFG;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_url('/mod/quiz/attempt.php', array('attempt' => 123, 'page' => 7));
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame($CFG->wwwroot . '/mod/quiz/attempt.php?attempt=123&page=7', $this->testpage->url->out());
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_url_using_moodle_url() {
|
|
|
|
global $CFG;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Fixture setup.
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$url = new \moodle_url('/mod/workshop/allocation.php', array('cmid' => 29, 'method' => 'manual'));
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_url($url);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame($CFG->wwwroot . '/mod/workshop/allocation.php?cmid=29&method=manual', $this->testpage->url->out());
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_url_sets_page_type() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_url('/mod/quiz/attempt.php', array('attempt' => 123, 'page' => 7));
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('mod-quiz-attempt', $this->testpage->pagetype);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_url_does_not_change_explicit_page_type() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_pagetype('a-page-type');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_url('/mod/quiz/attempt.php', array('attempt' => 123, 'page' => 7));
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('a-page-type', $this->testpage->pagetype);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_subpage() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_subpage('somestring');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('somestring', $this->testpage->subpage);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_heading() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_heading('a heading');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('a heading', $this->testpage->heading);
|
2020-08-13 12:23:33 +02:00
|
|
|
|
|
|
|
// By default formatting is applied and tags are removed.
|
|
|
|
$this->testpage->set_heading('a heading <a href="#">edit</a><p>');
|
|
|
|
$this->assertSame('a heading edit', $this->testpage->heading);
|
2020-08-25 13:21:26 +08:00
|
|
|
|
2020-08-13 12:23:33 +02:00
|
|
|
// Without formatting the tags are preserved but cleaned.
|
2023-12-18 13:59:45 +01:00
|
|
|
$this->testpage->set_heading('<div data-param1="value1">a heading <a href="#">edit</a><p></div>', false);
|
|
|
|
$this->assertSame('<div>a heading <a href="#">edit</a><p></p></div>', $this->testpage->heading);
|
|
|
|
|
|
|
|
// Without formatting nor clean.
|
|
|
|
$this->testpage->set_heading('<div data-param1="value1">a heading <a href="#">edit</a><p></div>', false, false);
|
|
|
|
$this->assertSame('<div data-param1="value1">a heading <a href="#">edit</a><p></div>', $this->testpage->heading);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
2023-08-03 15:57:39 +08:00
|
|
|
/**
|
|
|
|
* Data provider for {@see test_set_title}.
|
|
|
|
*
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function set_title_provider(): array {
|
|
|
|
return [
|
|
|
|
'Do not append the site name' => [
|
|
|
|
'shortname', false, '', false
|
|
|
|
],
|
|
|
|
'Site not yet installed not configured defaults to site shortname' => [
|
|
|
|
null, true, 'shortname'
|
|
|
|
],
|
|
|
|
'$CFG->sitenameintitle not configured defaults to site shortname' => [
|
|
|
|
null, true, 'shortname'
|
|
|
|
],
|
|
|
|
'$CFG->sitenameintitle set to shortname' => [
|
|
|
|
'shortname', true, 'shortname'
|
|
|
|
],
|
|
|
|
'$CFG->sitenameintitle set to fullname' => [
|
|
|
|
'fullname', true, 'fullname'
|
|
|
|
],
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Test for set_title
|
|
|
|
*
|
|
|
|
* @dataProvider set_title_provider
|
|
|
|
* @param string|null $config The config value for $CFG->sitenameintitle.
|
|
|
|
* @param bool $appendsitename The $appendsitename parameter
|
|
|
|
* @param string $expected The expected site name to be appended to the title.
|
|
|
|
* @param bool $sitenameset To simulate the absence of the site name being set in the site.
|
|
|
|
* @return void
|
|
|
|
* @covers ::set_title
|
|
|
|
*/
|
|
|
|
public function test_set_title(?string $config, bool $appendsitename, string $expected, bool $sitenameset = true): void {
|
|
|
|
global $CFG, $SITE;
|
|
|
|
|
|
|
|
if ($config !== null) {
|
|
|
|
$CFG->sitenameintitle = $config;
|
|
|
|
}
|
|
|
|
|
|
|
|
$title = "A title";
|
|
|
|
if ($appendsitename) {
|
|
|
|
if ($sitenameset) {
|
|
|
|
$expectedtitle = $title . moodle_page::TITLE_SEPARATOR . $SITE->{$expected};
|
|
|
|
} else {
|
|
|
|
// Simulate site fullname and shortname being empty for any reason.
|
|
|
|
$SITE->fullname = null;
|
|
|
|
$SITE->shortname = null;
|
|
|
|
$expectedtitle = $title . moodle_page::TITLE_SEPARATOR . 'Moodle';
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$expectedtitle = $title;
|
|
|
|
}
|
|
|
|
|
|
|
|
$this->testpage->set_title($title, $appendsitename);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2023-08-03 15:57:39 +08:00
|
|
|
$this->assertSame($expectedtitle, $this->testpage->title);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_default_pagelayout() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT and Validate.
|
|
|
|
$this->assertSame('base', $this->testpage->pagelayout);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_pagelayout() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_pagelayout('type');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('type', $this->testpage->pagelayout);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_setting_course_sets_context() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$context = \context_course::instance($course->id);
|
2012-04-21 17:47:30 +02:00
|
|
|
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_course($course);
|
|
|
|
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertSame($context, $this->testpage->context);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_category_top_level() {
|
2013-02-21 11:30:12 +11:00
|
|
|
global $DB;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$cat = $this->getDataGenerator()->create_category();
|
2013-02-21 11:30:12 +11:00
|
|
|
$catdbrecord = $DB->get_record('course_categories', array('id' => $cat->id));
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_category_by_id($cat->id);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2013-02-21 11:30:12 +11:00
|
|
|
$this->assertEquals($catdbrecord, $this->testpage->category);
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->assertSame(\context_coursecat::instance($cat->id), $this->testpage->context);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_nested_categories() {
|
2013-02-21 11:30:12 +11:00
|
|
|
global $DB;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$topcat = $this->getDataGenerator()->create_category();
|
2013-02-21 11:30:12 +11:00
|
|
|
$topcatdbrecord = $DB->get_record('course_categories', array('id' => $topcat->id));
|
2012-04-21 17:47:30 +02:00
|
|
|
$subcat = $this->getDataGenerator()->create_category(array('parent'=>$topcat->id));
|
2013-02-21 11:30:12 +11:00
|
|
|
$subcatdbrecord = $DB->get_record('course_categories', array('id' => $subcat->id));
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_category_by_id($subcat->id);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$categories = $this->testpage->categories;
|
2013-07-28 00:14:14 +02:00
|
|
|
$this->assertCount(2, $categories);
|
2013-02-21 11:30:12 +11:00
|
|
|
$this->assertEquals($topcatdbrecord, array_pop($categories));
|
|
|
|
$this->assertEquals($subcatdbrecord, array_pop($categories));
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_cm_null_initially() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertNull($this->testpage->cm);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_cm() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
|
|
|
$forum = $this->getDataGenerator()->create_module('forum', array('course'=>$course->id));
|
|
|
|
$cm = get_coursemodule_from_id('forum', $forum->cmid);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_cm($cm);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertEquals($cm->id, $this->testpage->cm->id);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_cannot_set_activity_record_before_cm() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
|
|
|
$forum = $this->getDataGenerator()->create_module('forum', array('course'=>$course->id));
|
|
|
|
$cm = get_coursemodule_from_id('forum', $forum->cmid);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->expectException(\coding_exception::class);
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_activity_record($forum);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_setting_cm_sets_context() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
|
|
|
$forum = $this->getDataGenerator()->create_module('forum', array('course'=>$course->id));
|
|
|
|
$cm = get_coursemodule_from_id('forum', $forum->cmid);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_cm($cm);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->assertSame(\context_module::instance($cm->id), $this->testpage->context);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function test_activity_record_loaded_if_not_set() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
|
|
|
$forum = $this->getDataGenerator()->create_module('forum', array('course'=>$course->id));
|
|
|
|
$cm = get_coursemodule_from_id('forum', $forum->cmid);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_cm($cm);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
unset($forum->cmid);
|
|
|
|
$this->assertEquals($forum, $this->testpage->activityrecord);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_activity_record() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
|
|
|
$forum = $this->getDataGenerator()->create_module('forum', array('course'=>$course->id));
|
|
|
|
$cm = get_coursemodule_from_id('forum', $forum->cmid);
|
|
|
|
$this->testpage->set_cm($cm);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_activity_record($forum);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
unset($forum->cmid);
|
|
|
|
$this->assertEquals($forum, $this->testpage->activityrecord);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_cannot_set_inconsistent_activity_record_course() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
|
|
|
$forum = $this->getDataGenerator()->create_module('forum', array('course'=>$course->id));
|
|
|
|
$cm = get_coursemodule_from_id('forum', $forum->cmid);
|
|
|
|
$this->testpage->set_cm($cm);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$forum->course = 13;
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->expectException(\coding_exception::class);
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_activity_record($forum);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_cannot_set_inconsistent_activity_record_instance() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
|
|
|
$forum = $this->getDataGenerator()->create_module('forum', array('course'=>$course->id));
|
|
|
|
$cm = get_coursemodule_from_id('forum', $forum->cmid);
|
|
|
|
$this->testpage->set_cm($cm);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$forum->id = 13;
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->expectException(\coding_exception::class);
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_activity_record($forum);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_setting_cm_sets_course() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
|
|
|
$forum = $this->getDataGenerator()->create_module('forum', array('course'=>$course->id));
|
|
|
|
$cm = get_coursemodule_from_id('forum', $forum->cmid);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_cm($cm);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertEquals($course->id, $this->testpage->course->id);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_set_cm_with_course_and_activity_no_db() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
|
|
|
$forum = $this->getDataGenerator()->create_module('forum', array('course'=>$course->id));
|
|
|
|
$cm = get_coursemodule_from_id('forum', $forum->cmid);
|
|
|
|
// This only works without db if we already have modinfo cache
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_cm($cm, $course, $forum);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertEquals($cm->id, $this->testpage->cm->id);
|
|
|
|
$this->assertEquals($course->id, $this->testpage->course->id);
|
|
|
|
unset($forum->cmid);
|
|
|
|
$this->assertEquals($forum, $this->testpage->activityrecord);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_cannot_set_cm_with_inconsistent_course() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
|
|
|
$forum = $this->getDataGenerator()->create_module('forum', array('course'=>$course->id));
|
|
|
|
$cm = get_coursemodule_from_id('forum', $forum->cmid);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$cm->course = 13;
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->expectException(\coding_exception::class);
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_cm($cm, $course);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_get_activity_name() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
$course = $this->getDataGenerator()->create_course();
|
|
|
|
$forum = $this->getDataGenerator()->create_module('forum', array('course'=>$course->id));
|
|
|
|
$cm = get_coursemodule_from_id('forum', $forum->cmid);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_cm($cm, $course, $forum);
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
|
|
|
$this->assertSame('forum', $this->testpage->activityname);
|
2012-04-21 17:47:30 +02:00
|
|
|
}
|
|
|
|
|
2013-07-28 00:14:14 +02:00
|
|
|
public function test_user_is_editing_on() {
|
|
|
|
// We are relying on the fact that unit tests are always run by admin, to
|
|
|
|
// ensure the user_allows_editing call returns true.
|
2012-04-21 17:47:30 +02:00
|
|
|
|
2013-07-28 00:14:14 +02:00
|
|
|
// Setup fixture.
|
|
|
|
global $USER;
|
2012-04-21 17:47:30 +02:00
|
|
|
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance());
|
2013-07-28 00:14:14 +02:00
|
|
|
$this->setAdminUser();
|
2012-04-21 17:47:30 +02:00
|
|
|
|
|
|
|
$USER->editing = true;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertTrue($this->testpage->user_is_editing());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_user_is_editing_off() {
|
2013-07-28 00:14:14 +02:00
|
|
|
// We are relying on the fact that unit tests are always run by admin, to
|
|
|
|
// ensure the user_allows_editing call returns true.
|
|
|
|
|
|
|
|
// Setup fixture.
|
2012-04-21 17:47:30 +02:00
|
|
|
global $USER;
|
2013-07-28 00:14:14 +02:00
|
|
|
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance());
|
2013-07-28 00:14:14 +02:00
|
|
|
$this->setAdminUser();
|
|
|
|
|
2012-04-21 17:47:30 +02:00
|
|
|
$USER->editing = false;
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertFalse($this->testpage->user_is_editing());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_default_editing_capabilities() {
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance());
|
2013-07-28 00:14:14 +02:00
|
|
|
$this->setAdminUser();
|
|
|
|
|
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertEquals(array('moodle/site:manageblocks'), $this->testpage->all_editing_caps());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_other_block_editing_cap() {
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance());
|
2013-07-28 00:14:14 +02:00
|
|
|
$this->setAdminUser();
|
|
|
|
|
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_blocks_editing_capability('moodle/my:manageblocks');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->assertEquals(array('moodle/my:manageblocks'), $this->testpage->all_editing_caps());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_other_editing_cap() {
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance());
|
2013-07-28 00:14:14 +02:00
|
|
|
$this->setAdminUser();
|
|
|
|
|
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_other_editing_capability('moodle/course:manageactivities');
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$actualcaps = $this->testpage->all_editing_caps();
|
|
|
|
$expectedcaps = array('moodle/course:manageactivities', 'moodle/site:manageblocks');
|
|
|
|
$this->assertEquals(array_values($expectedcaps), array_values($actualcaps));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function test_other_editing_caps() {
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance());
|
2013-07-28 00:14:14 +02:00
|
|
|
$this->setAdminUser();
|
|
|
|
|
|
|
|
// Exercise SUT.
|
2012-04-21 17:47:30 +02:00
|
|
|
$this->testpage->set_other_editing_capability(array('moodle/course:manageactivities', 'moodle/site:other'));
|
2013-07-28 00:14:14 +02:00
|
|
|
// Validated.
|
2012-04-21 17:47:30 +02:00
|
|
|
$actualcaps = $this->testpage->all_editing_caps();
|
|
|
|
$expectedcaps = array('moodle/course:manageactivities', 'moodle/site:other', 'moodle/site:manageblocks');
|
|
|
|
$this->assertEquals(array_values($expectedcaps), array_values($actualcaps));
|
|
|
|
}
|
|
|
|
|
2013-09-12 09:51:58 +12:00
|
|
|
/**
|
|
|
|
* Test getting a renderer.
|
|
|
|
*/
|
|
|
|
public function test_get_renderer() {
|
|
|
|
global $OUTPUT, $PAGE;
|
|
|
|
$oldoutput = $OUTPUT;
|
|
|
|
$oldpage = $PAGE;
|
|
|
|
$PAGE = $this->testpage;
|
|
|
|
|
|
|
|
$this->testpage->set_pagelayout('standard');
|
|
|
|
$this->assertEquals('standard', $this->testpage->pagelayout);
|
|
|
|
// Initialise theme and output for the next tests.
|
|
|
|
$this->testpage->initialise_theme_and_output();
|
|
|
|
// Check the generated $OUTPUT object is a core renderer.
|
|
|
|
$this->assertInstanceOf('core_renderer', $OUTPUT);
|
|
|
|
// Check we can get a core renderer if we explicitly request one (no component).
|
|
|
|
$this->assertInstanceOf('core_renderer', $this->testpage->get_renderer('core'));
|
|
|
|
// Check we get a CLI renderer if we request a maintenance renderer. The CLI target should take precedence.
|
|
|
|
$this->assertInstanceOf('core_renderer_cli',
|
|
|
|
$this->testpage->get_renderer('core', null, RENDERER_TARGET_MAINTENANCE));
|
|
|
|
|
|
|
|
// Check we can get a coures renderer if we explicitly request one (valid component).
|
|
|
|
$this->assertInstanceOf('core_course_renderer', $this->testpage->get_renderer('core', 'course'));
|
|
|
|
|
|
|
|
// Check a properly invalid component.
|
|
|
|
try {
|
|
|
|
$this->testpage->get_renderer('core', 'monkeys');
|
|
|
|
$this->fail('Request for renderer with invalid component didn\'t throw expected exception.');
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
} catch (\coding_exception $exception) {
|
2013-09-12 09:51:58 +12:00
|
|
|
$this->assertEquals('monkeys', $exception->debuginfo);
|
|
|
|
}
|
|
|
|
|
|
|
|
$PAGE = $oldpage;
|
|
|
|
$OUTPUT = $oldoutput;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Tests getting a renderer with a maintenance layout.
|
|
|
|
*
|
|
|
|
* This layout has special hacks in place in order to deliver a "maintenance" renderer.
|
|
|
|
*/
|
|
|
|
public function test_get_renderer_maintenance() {
|
|
|
|
global $OUTPUT, $PAGE;
|
|
|
|
$oldoutput = $OUTPUT;
|
|
|
|
$oldpage = $PAGE;
|
|
|
|
$PAGE = $this->testpage;
|
|
|
|
|
|
|
|
$this->testpage->set_pagelayout('maintenance');
|
|
|
|
$this->assertEquals('maintenance', $this->testpage->pagelayout);
|
|
|
|
// Initialise theme and output for the next tests.
|
|
|
|
$this->testpage->initialise_theme_and_output();
|
|
|
|
// Check the generated $OUTPUT object is a core cli renderer.
|
|
|
|
// It shouldn't be maintenance because there the cli target should take greater precedence.
|
|
|
|
$this->assertInstanceOf('core_renderer_cli', $OUTPUT);
|
|
|
|
// Check we can get a core renderer if we explicitly request one (no component).
|
|
|
|
$this->assertInstanceOf('core_renderer', $this->testpage->get_renderer('core'));
|
|
|
|
// Check we get a CLI renderer if we request a maintenance renderer. The CLI target should take precedence.
|
|
|
|
$this->assertInstanceOf('core_renderer_cli',
|
|
|
|
$this->testpage->get_renderer('core', null, RENDERER_TARGET_MAINTENANCE));
|
|
|
|
// Check we can get a coures renderer if we explicitly request one (valid component).
|
|
|
|
$this->assertInstanceOf('core_course_renderer', $this->testpage->get_renderer('core', 'course'));
|
|
|
|
|
|
|
|
try {
|
|
|
|
$this->testpage->get_renderer('core', 'monkeys');
|
|
|
|
$this->fail('Request for renderer with invalid component didn\'t throw expected exception.');
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
} catch (\coding_exception $exception) {
|
2013-09-12 09:51:58 +12:00
|
|
|
$this->assertEquals('monkeys', $exception->debuginfo);
|
|
|
|
}
|
|
|
|
|
|
|
|
$PAGE = $oldpage;
|
|
|
|
$OUTPUT = $oldoutput;
|
|
|
|
}
|
2014-10-22 14:32:15 +11:00
|
|
|
|
|
|
|
public function test_render_to_cli() {
|
|
|
|
global $OUTPUT;
|
|
|
|
|
|
|
|
$footer = $OUTPUT->footer();
|
|
|
|
$this->assertEmpty($footer, 'cli output does not have a footer.');
|
|
|
|
}
|
2018-04-09 10:16:54 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Validate the theme value depending on the user theme and cohorts.
|
|
|
|
*
|
|
|
|
* @dataProvider get_user_theme_provider
|
|
|
|
*/
|
|
|
|
public function test_cohort_get_user_theme($usertheme, $sitetheme, $cohortthemes, $expected) {
|
|
|
|
global $DB, $PAGE, $USER;
|
|
|
|
|
|
|
|
$this->resetAfterTest();
|
|
|
|
|
|
|
|
// Enable cohort themes.
|
|
|
|
set_config('allowuserthemes', 1);
|
|
|
|
set_config('allowcohortthemes', 1);
|
|
|
|
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$systemctx = \context_system::instance();
|
2018-04-09 10:16:54 +08:00
|
|
|
|
|
|
|
set_config('theme', $sitetheme);
|
|
|
|
// Create user.
|
|
|
|
$user = $this->getDataGenerator()->create_user(array('theme' => $usertheme));
|
|
|
|
|
|
|
|
// Create cohorts and add user as member.
|
|
|
|
$cohorts = array();
|
|
|
|
foreach ($cohortthemes as $cohorttheme) {
|
|
|
|
$cohort = $this->getDataGenerator()->create_cohort(array('contextid' => $systemctx->id, 'name' => 'Cohort',
|
|
|
|
'idnumber' => '', 'description' => '', 'theme' => $cohorttheme));
|
|
|
|
$cohorts[] = $cohort;
|
|
|
|
cohort_add_member($cohort->id, $user->id);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Get the theme and compare to the expected.
|
|
|
|
$this->setUser($user);
|
|
|
|
|
|
|
|
// Initialise user theme.
|
|
|
|
$USER = get_complete_user_data('id', $user->id);
|
|
|
|
|
|
|
|
// Initialise site theme.
|
|
|
|
$PAGE->reset_theme_and_output();
|
|
|
|
$PAGE->initialise_theme_and_output();
|
|
|
|
$result = $PAGE->theme->name;
|
|
|
|
$this->assertEquals($expected, $result);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Some user cases for validating the expected theme depending on the cohorts, site and user values.
|
|
|
|
*
|
|
|
|
* The result is an array of:
|
|
|
|
* 'User case description' => [
|
|
|
|
* 'usertheme' => '', // User theme.
|
|
|
|
* 'sitetheme' => '', // Site theme.
|
|
|
|
* 'cohorts' => [], // Cohort themes.
|
|
|
|
* 'expected' => '', // Expected value returned by cohort_get_user_cohort_theme.
|
|
|
|
* ]
|
|
|
|
*
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function get_user_theme_provider() {
|
|
|
|
return [
|
|
|
|
'User not a member of any cohort' => [
|
|
|
|
'usertheme' => '',
|
|
|
|
'sitetheme' => 'boost',
|
|
|
|
'cohorts' => [],
|
|
|
|
'expected' => 'boost',
|
|
|
|
],
|
|
|
|
'User member of one cohort which has a theme set' => [
|
|
|
|
'usertheme' => '',
|
|
|
|
'sitetheme' => 'boost',
|
|
|
|
'cohorts' => [
|
2019-02-28 13:42:23 +08:00
|
|
|
'classic',
|
2018-04-09 10:16:54 +08:00
|
|
|
],
|
2019-02-28 13:42:23 +08:00
|
|
|
'expected' => 'classic',
|
2018-04-09 10:16:54 +08:00
|
|
|
],
|
|
|
|
'User member of one cohort which has a theme set, and one without a theme' => [
|
|
|
|
'usertheme' => '',
|
|
|
|
'sitetheme' => 'boost',
|
|
|
|
'cohorts' => [
|
2019-02-28 13:42:23 +08:00
|
|
|
'classic',
|
2018-04-09 10:16:54 +08:00
|
|
|
'',
|
|
|
|
],
|
2019-02-28 13:42:23 +08:00
|
|
|
'expected' => 'classic',
|
2018-04-09 10:16:54 +08:00
|
|
|
],
|
|
|
|
'User member of one cohort which has a theme set, and one with a different theme' => [
|
|
|
|
'usertheme' => '',
|
|
|
|
'sitetheme' => 'boost',
|
|
|
|
'cohorts' => [
|
2019-02-28 13:42:23 +08:00
|
|
|
'classic',
|
2018-04-09 10:16:54 +08:00
|
|
|
'someother',
|
|
|
|
],
|
|
|
|
'expected' => 'boost',
|
|
|
|
],
|
|
|
|
'User with a theme but not a member of any cohort' => [
|
2019-02-28 13:42:23 +08:00
|
|
|
'usertheme' => 'classic',
|
2018-04-09 10:16:54 +08:00
|
|
|
'sitetheme' => 'boost',
|
|
|
|
'cohorts' => [],
|
2019-02-28 13:42:23 +08:00
|
|
|
'expected' => 'classic',
|
2018-04-09 10:16:54 +08:00
|
|
|
],
|
|
|
|
'User with a theme and member of one cohort which has a theme set' => [
|
2019-02-28 13:42:23 +08:00
|
|
|
'usertheme' => 'classic',
|
2018-04-09 10:16:54 +08:00
|
|
|
'sitetheme' => 'boost',
|
|
|
|
'cohorts' => [
|
2019-02-28 13:42:23 +08:00
|
|
|
'boost',
|
2018-04-09 10:16:54 +08:00
|
|
|
],
|
2019-02-28 13:42:23 +08:00
|
|
|
'expected' => 'classic',
|
2018-04-09 10:16:54 +08:00
|
|
|
],
|
|
|
|
];
|
|
|
|
}
|
2022-03-24 18:26:54 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Tests user_can_edit_blocks() returns the expected response.
|
|
|
|
* @covers ::user_can_edit_blocks()
|
|
|
|
*/
|
|
|
|
public function test_user_can_edit_blocks() {
|
|
|
|
global $DB;
|
|
|
|
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$systemcontext = \context_system::instance();
|
2022-03-24 18:26:54 +08:00
|
|
|
$this->testpage->set_context($systemcontext);
|
|
|
|
|
|
|
|
$user = $this->getDataGenerator()->create_user();
|
|
|
|
$role = $DB->get_record('role', ['shortname' => 'teacher']);
|
|
|
|
role_assign($role->id, $user->id, $systemcontext->id);
|
|
|
|
$this->setUser($user);
|
|
|
|
|
|
|
|
// Confirm expected response (false) when user does not have access to edit blocks.
|
|
|
|
$capability = $this->testpage->all_editing_caps()[0];
|
|
|
|
assign_capability($capability, CAP_PROHIBIT, $role->id, $systemcontext, true);
|
|
|
|
$this->assertFalse($this->testpage->user_can_edit_blocks());
|
|
|
|
|
|
|
|
// Give capability and confirm expected response (true) now user has access to edit blocks.
|
|
|
|
assign_capability($capability, CAP_ALLOW, $role->id, $systemcontext, true);
|
|
|
|
$this->assertTrue($this->testpage->user_can_edit_blocks());
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Tests that calling force_lock_all_blocks() will cause user_can_edit_blocks() to return false, regardless of capabilities.
|
|
|
|
* @covers ::force_lock_all_blocks()
|
|
|
|
*/
|
|
|
|
public function test_force_lock_all_blocks() {
|
MDL-75111 phpunit: Move tests to use correct names and ns (take#4)
Applied the following changes to various testcase classes:
- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Remove file phpdoc block
- Remove MOODLE_INTERNAL if not needed.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.
Special mention to:
- The following task tests have been moved within the level2 directory:
- \core\adhoc_task_test => \core\task\adhoc_task_test
- \core\scheduled_task_test => \core\task\scheduled_task_test
- \core\calendar_cron_task_test => \core\task\calendar_cron_task_test
- \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test
- \core\task_database_logger_test => \core\task\database_logger_test
- \core\task_logging_test => \core\task\logging_test
- The following event tests have been moved within level2 directory:
- \core\event_context_locked_test => \core\event\context_locked_test
- \core\event_deprecated_test => \core\event\deprecated_test
- \core\event_grade_deleted_test => \core\event\grade_deleted_test
- \core\event_profile_field_test => \core\event\profile_field_test
- \core\event_unknown_logged_test => \core\event\unknown_logged_test
- \core\event_user_graded_test => \core\event\user_graded_test
- \core\event_user_password_updated_test => \core\event\user_password_updated_test
- The following output tests have been moved within level2 directory:
- \core\mustache_template_finder_test => \core\output\mustache_template_finder_test
- \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test
- \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test
- The following tests have been moved to their correct tests directories:
- lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php
- All the classes and tests under lib/filebrowser and lib/filestorage
belong to core, not to core_files. Some day we should move
them to their correct subsystem.
- All the classes and tests under lib/grade belong to core, not
to core_grades. Some day we should move them to their correct
subsystem.
- The core_grades_external class and its \core\grades_external_test
unit test should belong to the grades subsystem or, alternatively,
to \core\external, they both should be moved together.
- The core_grading_external class and its \core\grading_external_test
unit test should belong to the grading subsystem or, alternatively,
to \core\external, they both should be moved together.
- The \core\message\message and \core\message\inbound (may be others)
classes, and their associated tests should go to the core_message
subsystem.
- The core_user class, and its associated tests should go to the
core_user subsystem.
- The \core\update namespace is plain wrong (update is not valid API)
and needs action 1) create it or 2) move elsewhere.
2022-07-01 16:43:34 +02:00
|
|
|
$this->testpage->set_context(\context_system::instance());
|
2022-03-24 18:26:54 +08:00
|
|
|
$this->setAdminUser();
|
|
|
|
|
|
|
|
// Confirm admin user has access to edit blocks.
|
|
|
|
$this->assertTrue($this->testpage->user_can_edit_blocks());
|
|
|
|
|
|
|
|
// Force lock and confirm user can no longer edit, despite having the capability.
|
|
|
|
$this->testpage->force_lock_all_blocks();
|
|
|
|
$this->assertFalse($this->testpage->user_can_edit_blocks());
|
|
|
|
}
|
2024-01-28 14:59:28 +07:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Test the method to set and retrieve the show_course_index property.
|
|
|
|
*
|
|
|
|
* @covers ::set_show_course_index
|
|
|
|
* @covers ::get_show_course_index
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function test_show_course_index(): void {
|
|
|
|
$page = new \moodle_page();
|
|
|
|
$page->set_show_course_index(false);
|
|
|
|
$this->assertFalse($page->get_show_course_index());
|
|
|
|
}
|
2013-09-12 09:51:58 +12:00
|
|
|
}
|
2013-07-28 00:14:14 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Test-specific subclass to make some protected things public.
|
|
|
|
*/
|
|
|
|
class testable_moodle_page extends moodle_page {
|
|
|
|
public function initialise_default_pagetype($script = null) {
|
|
|
|
parent::initialise_default_pagetype($script);
|
|
|
|
}
|
|
|
|
public function url_to_class_name($url) {
|
|
|
|
return parent::url_to_class_name($url);
|
|
|
|
}
|
|
|
|
public function all_editing_caps() {
|
|
|
|
return parent::all_editing_caps();
|
|
|
|
}
|
|
|
|
}
|