MDL-51834 auth,profile: locks custom fields based on auth settings
[moodle.git] / mod / assign / tests / upgradelib_test.php
blob7de1d2669321bf6c66c0603fd087b221a31d85cb
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 * Unit tests for (some of) mod/assign/upgradelib.php.
20 * @package mod_assign
21 * @category phpunit
22 * @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
27 defined('MOODLE_INTERNAL') || die();
29 global $CFG;
30 require_once($CFG->dirroot . '/mod/assign/locallib.php');
31 require_once($CFG->dirroot . '/mod/assign/upgradelib.php');
32 require_once($CFG->dirroot . '/mod/assignment/lib.php');
33 require_once($CFG->dirroot . '/mod/assign/tests/base_test.php');
35 /**
36 * Unit tests for (some of) mod/assign/upgradelib.php.
38 * @copyright 1999 onwards Martin Dougiamas {@link http://moodle.com}
39 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
41 class mod_assign_upgradelib_testcase extends mod_assign_base_testcase {
43 public function test_upgrade_upload_assignment() {
44 global $DB, $CFG;
46 $commentconfig = false;
47 if (!empty($CFG->usecomments)) {
48 $commentconfig = $CFG->usecomments;
50 $CFG->usecomments = false;
52 $this->setUser($this->editingteachers[0]);
53 $generator = $this->getDataGenerator()->get_plugin_generator('mod_assignment');
54 $params = array('course'=>$this->course->id,
55 'assignmenttype'=>'upload');
56 $assignment = $generator->create_instance($params);
58 $this->setAdminUser();
59 $log = '';
60 $upgrader = new assign_upgrade_manager();
62 $this->assertTrue($upgrader->upgrade_assignment($assignment->id, $log));
63 $record = $DB->get_record('assign', array('course'=>$this->course->id));
65 $cm = get_coursemodule_from_instance('assign', $record->id);
66 $context = context_module::instance($cm->id);
68 $assign = new assign($context, $cm, $this->course);
70 $plugin = $assign->get_submission_plugin_by_type('onlinetext');
71 $this->assertEmpty($plugin->is_enabled());
72 $plugin = $assign->get_submission_plugin_by_type('comments');
73 $this->assertEmpty($plugin->is_enabled());
74 $plugin = $assign->get_submission_plugin_by_type('file');
75 $this->assertNotEmpty($plugin->is_enabled());
76 $plugin = $assign->get_feedback_plugin_by_type('comments');
77 $this->assertNotEmpty($plugin->is_enabled());
78 $plugin = $assign->get_feedback_plugin_by_type('file');
79 $this->assertNotEmpty($plugin->is_enabled());
80 $plugin = $assign->get_feedback_plugin_by_type('offline');
81 $this->assertEmpty($plugin->is_enabled());
83 $CFG->usecomments = $commentconfig;
84 course_delete_module($cm->id);
87 public function test_upgrade_uploadsingle_assignment() {
88 global $DB, $CFG;
90 $commentconfig = false;
91 if (!empty($CFG->usecomments)) {
92 $commentconfig = $CFG->usecomments;
94 $CFG->usecomments = false;
96 $this->setUser($this->editingteachers[0]);
97 $generator = $this->getDataGenerator()->get_plugin_generator('mod_assignment');
98 $params = array('course'=>$this->course->id,
99 'assignmenttype'=>'uploadsingle');
100 $assignment = $generator->create_instance($params);
102 $this->setAdminUser();
103 $log = '';
104 $upgrader = new assign_upgrade_manager();
106 $this->assertTrue($upgrader->upgrade_assignment($assignment->id, $log));
107 $record = $DB->get_record('assign', array('course'=>$this->course->id));
109 $cm = get_coursemodule_from_instance('assign', $record->id);
110 $context = context_module::instance($cm->id);
112 $assign = new assign($context, $cm, $this->course);
114 $plugin = $assign->get_submission_plugin_by_type('onlinetext');
115 $this->assertEmpty($plugin->is_enabled());
116 $plugin = $assign->get_submission_plugin_by_type('comments');
117 $this->assertEmpty($plugin->is_enabled());
118 $plugin = $assign->get_submission_plugin_by_type('file');
119 $this->assertNotEmpty($plugin->is_enabled());
120 $plugin = $assign->get_feedback_plugin_by_type('comments');
121 $this->assertNotEmpty($plugin->is_enabled());
122 $plugin = $assign->get_feedback_plugin_by_type('file');
123 $this->assertNotEmpty($plugin->is_enabled());
124 $plugin = $assign->get_feedback_plugin_by_type('offline');
125 $this->assertEmpty($plugin->is_enabled());
127 $CFG->usecomments = $commentconfig;
128 course_delete_module($cm->id);
131 public function test_upgrade_onlinetext_assignment() {
132 global $DB, $CFG;
134 $commentconfig = false;
135 if (!empty($CFG->usecomments)) {
136 $commentconfig = $CFG->usecomments;
138 $CFG->usecomments = false;
140 $this->setUser($this->editingteachers[0]);
141 $generator = $this->getDataGenerator()->get_plugin_generator('mod_assignment');
142 $params = array('course'=>$this->course->id,
143 'assignmenttype'=>'online');
144 $assignment = $generator->create_instance($params);
146 $this->setAdminUser();
147 $log = '';
148 $upgrader = new assign_upgrade_manager();
150 $this->assertTrue($upgrader->upgrade_assignment($assignment->id, $log));
151 $record = $DB->get_record('assign', array('course'=>$this->course->id));
153 $cm = get_coursemodule_from_instance('assign', $record->id);
154 $context = context_module::instance($cm->id);
156 $assign = new assign($context, $cm, $this->course);
158 $plugin = $assign->get_submission_plugin_by_type('onlinetext');
159 $this->assertNotEmpty($plugin->is_enabled());
160 $plugin = $assign->get_submission_plugin_by_type('comments');
161 $this->assertEmpty($plugin->is_enabled());
162 $plugin = $assign->get_submission_plugin_by_type('file');
163 $this->assertEmpty($plugin->is_enabled());
164 $plugin = $assign->get_feedback_plugin_by_type('comments');
165 $this->assertNotEmpty($plugin->is_enabled());
166 $plugin = $assign->get_feedback_plugin_by_type('file');
167 $this->assertEmpty($plugin->is_enabled());
168 $plugin = $assign->get_feedback_plugin_by_type('offline');
169 $this->assertEmpty($plugin->is_enabled());
171 $CFG->usecomments = $commentconfig;
172 course_delete_module($cm->id);
175 public function test_upgrade_offline_assignment() {
176 global $DB, $CFG;
178 $commentconfig = false;
179 if (!empty($CFG->usecomments)) {
180 $commentconfig = $CFG->usecomments;
182 $CFG->usecomments = false;
184 $this->setUser($this->editingteachers[0]);
185 $generator = $this->getDataGenerator()->get_plugin_generator('mod_assignment');
186 $params = array('course'=>$this->course->id,
187 'assignmenttype'=>'offline');
188 $assignment = $generator->create_instance($params);
190 $this->setAdminUser();
191 $log = '';
192 $upgrader = new assign_upgrade_manager();
194 $this->assertTrue($upgrader->upgrade_assignment($assignment->id, $log));
195 $record = $DB->get_record('assign', array('course'=>$this->course->id));
197 $cm = get_coursemodule_from_instance('assign', $record->id);
198 $context = context_module::instance($cm->id);
200 $assign = new assign($context, $cm, $this->course);
202 $plugin = $assign->get_submission_plugin_by_type('onlinetext');
203 $this->assertEmpty($plugin->is_enabled());
204 $plugin = $assign->get_submission_plugin_by_type('comments');
205 $this->assertEmpty($plugin->is_enabled());
206 $plugin = $assign->get_submission_plugin_by_type('file');
207 $this->assertEmpty($plugin->is_enabled());
208 $plugin = $assign->get_feedback_plugin_by_type('comments');
209 $this->assertNotEmpty($plugin->is_enabled());
210 $plugin = $assign->get_feedback_plugin_by_type('file');
211 $this->assertEmpty($plugin->is_enabled());
212 $plugin = $assign->get_feedback_plugin_by_type('offline');
213 $this->assertEmpty($plugin->is_enabled());
215 $CFG->usecomments = $commentconfig;
216 course_delete_module($cm->id);