diff --git a/analytics/tests/manager_test.php b/analytics/tests/manager_test.php index 62a755c0786..eb1bc73e6f3 100644 --- a/analytics/tests/manager_test.php +++ b/analytics/tests/manager_test.php @@ -29,6 +29,7 @@ require_once(__DIR__ . '/fixtures/test_target_course_level_shortname.php'); * @package core_analytics * @copyright 2017 David MonllaĆ³ {@link http://www.davidmonllao.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @covers \core_analytics\manager */ class manager_test extends \advanced_testcase { @@ -491,25 +492,63 @@ class manager_test extends \advanced_testcase { // No potential context restrictions. $this->assertFalse(\core_analytics\manager::get_potential_context_restrictions([])); + $defaultcategory = \core_course_category::get_default(); + $defaultcategorycontext = $defaultcategory->get_context(); + // Include the all context levels so the misc. category get included. - $this->assertCount(1, \core_analytics\manager::get_potential_context_restrictions()); + $this->assertEquals([ + $defaultcategorycontext->id => "Category: {$defaultcategory->name}", + ], manager::get_potential_context_restrictions()); - $this->getDataGenerator()->create_course(); - $this->getDataGenerator()->create_category(); - $this->assertCount(3, \core_analytics\manager::get_potential_context_restrictions()); - $this->assertCount(3, \core_analytics\manager::get_potential_context_restrictions([CONTEXT_COURSE, CONTEXT_COURSECAT])); + $category = $this->getDataGenerator()->create_category(['name' => 'My category']); + $categorycontext = $category->get_context(); - $this->assertCount(1, \core_analytics\manager::get_potential_context_restrictions([CONTEXT_COURSE])); - $this->assertCount(2, \core_analytics\manager::get_potential_context_restrictions([CONTEXT_COURSECAT])); + $courseone = $this->getDataGenerator()->create_course(['fullname' => 'Course one', 'shortname' => 'CS1']); + $courseonecontext = \context_course::instance($courseone->id); - $this->assertCount(1, \core_analytics\manager::get_potential_context_restrictions([CONTEXT_COURSECAT], 'Course category')); - $this->assertCount(1, \core_analytics\manager::get_potential_context_restrictions([CONTEXT_COURSECAT], 'Course category 1')); - $this->assertCount( - 2, - \core_analytics\manager::get_potential_context_restrictions([CONTEXT_COURSECAT], - get_string('defaultcategoryname') - )); - $this->assertCount(1, \core_analytics\manager::get_potential_context_restrictions([CONTEXT_COURSE], 'Test course 1')); - $this->assertCount(1, \core_analytics\manager::get_potential_context_restrictions([CONTEXT_COURSE], 'Test course')); + $coursetwo = $this->getDataGenerator()->create_course(['fullname' => 'Course two', 'shortname' => 'CS2']); + $coursetwocontext = \context_course::instance($coursetwo->id); + + // All context levels. + $this->assertEqualsCanonicalizing([ + $defaultcategorycontext->id => "Category: {$defaultcategory->name}", + $categorycontext->id => "Category: {$category->name}", + $courseonecontext->id => "Course: {$courseone->shortname}", + $coursetwocontext->id => "Course: {$coursetwo->shortname}", + ], manager::get_potential_context_restrictions()); + + // All category/course context levels. + $this->assertEqualsCanonicalizing([ + $defaultcategorycontext->id => "Category: {$defaultcategory->name}", + $categorycontext->id => "Category: {$category->name}", + $courseonecontext->id => "Course: {$courseone->shortname}", + $coursetwocontext->id => "Course: {$coursetwo->shortname}", + ], manager::get_potential_context_restrictions([CONTEXT_COURSECAT, CONTEXT_COURSE])); + + // All category context levels. + $this->assertEqualsCanonicalizing([ + $defaultcategorycontext->id => "Category: {$defaultcategory->name}", + $categorycontext->id => "Category: {$category->name}", + ], manager::get_potential_context_restrictions([CONTEXT_COURSECAT])); + + // Filtered category context levels. + $this->assertEquals([ + $categorycontext->id => "Category: {$category->name}", + ], manager::get_potential_context_restrictions([CONTEXT_COURSECAT], 'My cat')); + + $this->assertEmpty(manager::get_potential_context_restrictions([CONTEXT_COURSECAT], 'nothing')); + + // All course context levels. + $this->assertEqualsCanonicalizing([ + $courseonecontext->id => "Course: {$courseone->shortname}", + $coursetwocontext->id => "Course: {$coursetwo->shortname}", + ], manager::get_potential_context_restrictions([CONTEXT_COURSE])); + + // Filtered course context levels. + $this->assertEquals([ + $courseonecontext->id => "Course: {$courseone->shortname}", + ], manager::get_potential_context_restrictions([CONTEXT_COURSE], 'one')); + + $this->assertEmpty(manager::get_potential_context_restrictions([CONTEXT_COURSE], 'nothing')); } }