MDL-85400 PHPunit: Hard to test code that uses encryption
This change stops the encryption code setting created key files to read-only during PHPunit runs, which means they will be safely deleted when the system resets after a test.
This commit is contained in:
committed by
Simey Lameze
parent
2ca0fb4886
commit
730e1d0ae0
@@ -80,8 +80,8 @@ class encryption {
|
||||
throw new \moodle_exception('encryption_keyalreadyexists', 'error');
|
||||
}
|
||||
|
||||
// Don't make it read-only in Behat or it will fail to clear for future runs.
|
||||
if (defined('BEHAT_SITE_RUNNING')) {
|
||||
// Don't make it read-only in tests or it will fail to clear for future runs.
|
||||
if (defined('BEHAT_SITE_RUNNING') || PHPUNIT_TEST) {
|
||||
$chmod = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,26 +28,7 @@ use advanced_testcase;
|
||||
*/
|
||||
final class encryption_test extends advanced_testcase {
|
||||
|
||||
/**
|
||||
* Clear junk created by tests.
|
||||
*/
|
||||
protected function tearDown(): void {
|
||||
global $CFG;
|
||||
$keyfile = encryption::get_key_file(encryption::METHOD_OPENSSL);
|
||||
if (file_exists($keyfile)) {
|
||||
chmod($keyfile, 0700);
|
||||
}
|
||||
$keyfile = encryption::get_key_file(encryption::METHOD_SODIUM);
|
||||
if (file_exists($keyfile)) {
|
||||
chmod($keyfile, 0700);
|
||||
}
|
||||
remove_dir($CFG->dataroot . '/secret');
|
||||
unset($CFG->nokeygeneration);
|
||||
}
|
||||
|
||||
protected function setUp(): void {
|
||||
$this->tearDown();
|
||||
|
||||
require_once(__DIR__ . '/fixtures/testable_encryption.php');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user