2 // This file is part of Moodle - http://moodle.org/
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
18 * Tests for notes library functions.
21 * @copyright 2015 onwards Ankit agarwal <ankit.agrr@gmail.com>
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
25 defined('MOODLE_INTERNAL') ||
die();
28 require_once($CFG->dirroot
. '/notes/lib.php');
30 * Class core_notes_lib_testcase
33 * @copyright 2015 onwards Ankit agarwal <ankit.agrr@gmail.com>
34 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
36 class core_notes_lib_testcase
extends advanced_testcase
{
39 * @var stdClass The user.
44 * @var stdClass The course.
49 * @var \core_user\output\myprofile\tree The navigation tree.
53 public function setUp(): void
{
54 $this->user
= $this->getDataGenerator()->create_user();
55 $this->course
= $this->getDataGenerator()->create_course();
56 $this->tree
= new \core_user\output\myprofile\tree
();
57 $this->resetAfterTest();
61 * Tests the core_notes_myprofile_navigation() function.
63 public function test_core_notes_myprofile_navigation() {
67 $this->setAdminUser();
68 $iscurrentuser = true;
71 set_config('enablenotes', true);
73 // Check the node tree is correct.
74 core_notes_myprofile_navigation($this->tree
, $USER, $iscurrentuser, $this->course
);
75 $reflector = new ReflectionObject($this->tree
);
76 $nodes = $reflector->getProperty('nodes');
77 $nodes->setAccessible(true);
78 $this->assertArrayHasKey('notes', $nodes->getValue($this->tree
));
82 * Tests the core_notes_myprofile_navigation() function.
84 public function test_core_notes_myprofile_navigation_as_guest() {
87 $this->setGuestUser();
88 $iscurrentuser = false;
90 // Check the node tree is correct.
91 core_notes_myprofile_navigation($this->tree
, $USER, $iscurrentuser, $this->course
);
92 $reflector = new ReflectionObject($this->tree
);
93 $nodes = $reflector->getProperty('nodes');
94 $nodes->setAccessible(true);
95 $this->assertArrayNotHasKey('notes', $nodes->getValue($this->tree
));
99 * Tests the core_notes_myprofile_navigation() function.
101 public function test_core_notes_myprofile_navigation_notes_disabled() {
104 $this->setAdminUser();
105 $iscurrentuser = false;
108 set_config('enablenotes', false);
110 // Check the node tree is correct.
111 core_notes_myprofile_navigation($this->tree
, $USER, $iscurrentuser, $this->course
);
112 $reflector = new ReflectionObject($this->tree
);
113 $nodes = $reflector->getProperty('nodes');
114 $nodes->setAccessible(true);
115 $this->assertArrayNotHasKey('notes', $nodes->getValue($this->tree
));