Proyectos de Subversion Moodle

Rev

Rev 11 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 11 Rev 1441
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);