/** * Run all Atto equation upgrade steps between the current DB version and the current version on disk. * @param int $oldversion The old version of atto equation in the DB. * @return bool */ function xmldb_atto_equation_upgrade($oldversion) { require_once __DIR__ . '/upgradelib.php'; if ($oldversion < 2015083100) { atto_equation_update_librarygroup4_setting(); // Atto equation savepoint reached. upgrade_plugin_savepoint(true, 2015083100, 'atto', 'equation'); } return true; }
/** * Run all Atto equation upgrade steps between the current DB version and the current version on disk. * @param int $oldversion The old version of atto equation in the DB. * @return bool */ function xmldb_atto_equation_upgrade($oldversion) { require_once __DIR__ . '/upgradelib.php'; if ($oldversion < 2015083100) { atto_equation_update_librarygroup4_setting(); // Atto equation savepoint reached. upgrade_plugin_savepoint(true, 2015083100, 'atto', 'equation'); } // Moodle v3.0.0 release upgrade line. // Put any upgrade step following this. return true; }
/** * Tests the upgradelib atto_equation_update_librarygroup4_setting function. */ public function test_update_librarygroup4_update() { global $CFG; require_once $CFG->libdir . '/editor/atto/plugins/equation/db/upgradelib.php'; $originaldefaults = ['\\sum{a,b}', '\\int_{a}^{b}{c}', '\\iint_{a}^{b}{c}', '\\iiint_{a}^{b}{c}', '\\oint{a}', '(a)', '[a]', '\\lbrace{a}\\rbrace', '\\left| \\begin{matrix} a_1 & a_2 \\ a_3 & a_4 \\end{matrix} \\right|']; $newconfig = ' \\sum{a,b} \\sqrt[a]{b+c} \\int_{a}^{b}{c} \\iint_{a}^{b}{c} \\iiint_{a}^{b}{c} \\oint{a} (a) [a] \\lbrace{a}\\rbrace \\left| \\begin{matrix} a_1 & a_2 \\ a_3 & a_4 \\end{matrix} \\right| \\frac{a}{b+c} \\vec{a} \\binom {a} {b} {a \\brack b} {a \\brace b} '; // Test successful update using windows line endings. $originaldefaultswindows = "\r\n" . implode("\r\n", $originaldefaults) . "\r\n"; set_config(self::SETTING_NAME, $originaldefaultswindows, self::SETTING_PLUGIN); atto_equation_update_librarygroup4_setting(); $this->assertEquals($newconfig, get_config(self::SETTING_PLUGIN, self::SETTING_NAME)); // Test successful update using linux line . $originaldefaultslinux = "\n" . implode("\n", $originaldefaults) . "\n"; set_config(self::SETTING_NAME, $originaldefaultslinux, self::SETTING_PLUGIN); atto_equation_update_librarygroup4_setting(); $this->assertEquals($newconfig, get_config(self::SETTING_PLUGIN, self::SETTING_NAME)); // Alter the original configuration by removing one of the equations. $alteredconfig = array_slice($originaldefaults, 0, -1); // Test no update using windows line endings. $alteredconfigwindows = "\r\n" . implode("\r\n", $alteredconfig) . "\r\n"; set_config(self::SETTING_NAME, $alteredconfigwindows, self::SETTING_PLUGIN); atto_equation_update_librarygroup4_setting(); $this->assertEquals($alteredconfigwindows, get_config(self::SETTING_PLUGIN, self::SETTING_NAME)); // Test no update using linux line endings. $alteredconfiglinux = "\n" . implode("\n", $alteredconfig) . "\n"; set_config(self::SETTING_NAME, $alteredconfiglinux, self::SETTING_PLUGIN); atto_equation_update_librarygroup4_setting(); $this->assertEquals($alteredconfiglinux, get_config(self::SETTING_PLUGIN, self::SETTING_NAME)); // Test no configuration. unset_config(self::SETTING_NAME, self::SETTING_PLUGIN); atto_equation_update_librarygroup4_setting(); $this->assertFalse(get_config(self::SETTING_PLUGIN, self::SETTING_NAME)); }