Merge branch 'MDL-62426-master' of https://github.com/snake/moodle
[moodle.git] / notes / tests / lib_test.php
blob69b0001967be2a2e5e0ed9f61af86816738b513a
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
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.
8 //
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/>.
17 /**
18 * Tests for notes library functions.
20 * @package core_notes
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();
27 global $CFG;
28 require_once($CFG->dirroot . '/notes/lib.php');
29 /**
30 * Class core_notes_lib_testcase
32 * @package core_notes
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 {
38 /**
39 * @var stdClass The user.
41 private $user;
43 /**
44 * @var stdClass The course.
46 private $course;
48 /**
49 * @var \core_user\output\myprofile\tree The navigation tree.
51 private $tree;
53 public function setUp() {
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();
60 /**
61 * Tests the core_notes_myprofile_navigation() function.
63 public function test_core_notes_myprofile_navigation() {
64 global $USER;
66 // Set up the test.
67 $this->setAdminUser();
68 $iscurrentuser = true;
70 // Enable notes.
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));
81 /**
82 * Tests the core_notes_myprofile_navigation() function.
84 public function test_core_notes_myprofile_navigation_as_guest() {
85 global $USER;
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));
98 /**
99 * Tests the core_notes_myprofile_navigation() function.
101 public function test_core_notes_myprofile_navigation_notes_disabled() {
102 global $USER;
104 $this->setAdminUser();
105 $iscurrentuser = false;
107 // Disable notes.
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));