Línea 26... |
Línea 26... |
26 |
* @package quizaccess_seb
|
26 |
* @package quizaccess_seb
|
27 |
* @author Dmitrii Metelkin <dmitriim@catalyst-au.net>
|
27 |
* @author Dmitrii Metelkin <dmitriim@catalyst-au.net>
|
28 |
* @copyright 2020 Catalyst IT
|
28 |
* @copyright 2020 Catalyst IT
|
29 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
29 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
30 |
*/
|
30 |
*/
|
31 |
class backup_restore_test extends \advanced_testcase {
|
31 |
final class backup_restore_test extends \advanced_testcase {
|
32 |
use \quizaccess_seb_test_helper_trait;
|
32 |
use \quizaccess_seb_test_helper_trait;
|
Línea 33... |
Línea 33... |
33 |
|
33 |
|
34 |
|
34 |
|
Línea 192... |
Línea 192... |
192 |
$newcm = $this->backup_and_restore_quiz();
|
192 |
$newcm = $this->backup_and_restore_quiz();
|
193 |
$this->validate_backup_restore($newcm);
|
193 |
$this->validate_backup_restore($newcm);
|
194 |
}
|
194 |
}
|
Línea 195... |
Línea 195... |
195 |
|
195 |
|
- |
|
196 |
/**
|
- |
|
197 |
* Test backup and restore when using template when said template is disabled.
|
- |
|
198 |
*
|
- |
|
199 |
* @covers \quizaccess_seb\seb_quiz_settings::get_record
|
- |
|
200 |
* @covers \restore_quizaccess_seb_subplugin::process_quizaccess_seb_quizsettings
|
- |
|
201 |
*/
|
- |
|
202 |
public function test_backup_restore_disabled_template_config(): void {
|
- |
|
203 |
$this->quiz = $this->create_test_quiz($this->course, settings_provider::USE_SEB_CONFIG_MANUALLY);
|
- |
|
204 |
|
- |
|
205 |
$expected = seb_quiz_settings::get_record(['quizid' => $this->quiz->id]);
|
- |
|
206 |
$template = $this->create_template();
|
- |
|
207 |
$expected->set('requiresafeexambrowser', settings_provider::USE_SEB_TEMPLATE);
|
- |
|
208 |
$expected->set('templateid', $template->get('id'));
|
- |
|
209 |
$expected->save();
|
- |
|
210 |
|
- |
|
211 |
// Disable template.
|
- |
|
212 |
$template->set('enabled', 0);
|
- |
|
213 |
$template->save();
|
- |
|
214 |
|
- |
|
215 |
$this->assertEquals(1, seb_quiz_settings::count_records());
|
- |
|
216 |
|
- |
|
217 |
$newcm = $this->backup_and_restore_quiz();
|
- |
|
218 |
|
- |
|
219 |
$this->assertEquals(2, seb_quiz_settings::count_records());
|
- |
|
220 |
$actual = seb_quiz_settings::get_record(['quizid' => $newcm->instance]);
|
- |
|
221 |
|
- |
|
222 |
// Test that the restored quiz no longer uses SEB.
|
- |
|
223 |
$expected = seb_quiz_settings::get_record(['quizid' => $this->quiz->id]);
|
- |
|
224 |
$this->assertEquals(0, $actual->get('templateid'));
|
- |
|
225 |
$this->assertEquals(settings_provider::USE_SEB_NO, $actual->get('requiresafeexambrowser'));
|
- |
|
226 |
$this->assertEquals($expected->get('showsebdownloadlink'), $actual->get('showsebdownloadlink'));
|
- |
|
227 |
$this->assertEquals($expected->get('allowuserquitseb'), $actual->get('allowuserquitseb'));
|
- |
|
228 |
$this->assertEquals($expected->get('quitpassword'), $actual->get('quitpassword'));
|
- |
|
229 |
$this->assertEquals($expected->get('allowedbrowserexamkeys'), $actual->get('allowedbrowserexamkeys'));
|
- |
|
230 |
|
- |
|
231 |
// Validate specific SEB config settings.
|
- |
|
232 |
foreach (settings_provider::get_seb_config_elements() as $name => $notused) {
|
- |
|
233 |
$name = preg_replace("/^seb_/", "", $name);
|
- |
|
234 |
$this->assertEquals($expected->get($name), $actual->get($name));
|
- |
|
235 |
}
|
- |
|
236 |
}
|
- |
|
237 |
|
196 |
/**
|
238 |
/**
|
197 |
* Test backup and restore when using uploaded file.
|
239 |
* Test backup and restore when using uploaded file.
|
198 |
*/
|
240 |
*/
|
199 |
public function test_backup_restore_uploaded_config(): void {
|
241 |
public function test_backup_restore_uploaded_config(): void {
|
Línea 200... |
Línea 242... |
200 |
$this->quiz = $this->create_test_quiz($this->course, settings_provider::USE_SEB_CONFIG_MANUALLY);
|
242 |
$this->quiz = $this->create_test_quiz($this->course, settings_provider::USE_SEB_CONFIG_MANUALLY);
|
201 |
|
243 |
|
202 |
$expected = seb_quiz_settings::get_record(['quizid' => $this->quiz->id]);
|
244 |
$expected = seb_quiz_settings::get_record(['quizid' => $this->quiz->id]);
|
203 |
$expected->set('requiresafeexambrowser', settings_provider::USE_SEB_UPLOAD_CONFIG);
|
245 |
$expected->set('requiresafeexambrowser', settings_provider::USE_SEB_UPLOAD_CONFIG);
|
204 |
$xml = file_get_contents(__DIR__ . '/fixtures/unencrypted.seb');
|
246 |
$xml = file_get_contents(self::get_fixture_path(__NAMESPACE__, 'unencrypted.seb'));
|
Línea 205... |
Línea 247... |
205 |
$this->create_module_test_file($xml, $this->quiz->cmid);
|
247 |
$this->create_module_test_file($xml, $this->quiz->cmid);
|