diff --git a/e107_handlers/db_verify_class.php b/e107_handlers/db_verify_class.php index a71d70999..9d4d702ef 100755 --- a/e107_handlers/db_verify_class.php +++ b/e107_handlers/db_verify_class.php @@ -77,34 +77,13 @@ class db_verify function __construct() { - $sql = e107::getDb(); - $sql->gen('SET SQL_QUOTE_SHOW_CREATE = 1'); + $this->backUrl = e_SELF; - if(!deftrue('e_DEBUG') && $tmp = e107::getCache()->retrieve(self::cachetag, 15, true, true)) - { - $cacheData = e107::unserialize($tmp); - $this->sqlFileTables = isset($cacheData['sqlFileTables']) ? $cacheData['sqlFileTables'] : $this->load(); - $this->availableStorageEngines = isset($cacheData['availableStorageEngines']) ? - $cacheData['availableStorageEngines'] : $this->getAvailableStorageEngines(); - } - else - { - $this->sqlFileTables = $this->load(); - $this->availableStorageEngines = $this->getAvailableStorageEngines(); - $cacheData = e107::serialize([ - 'sqlFileTables' => $this->sqlFileTables, - 'availableStorageEngines' => $this->availableStorageEngines, - ], 'json'); - e107::getCache()->set(self::cachetag, $cacheData, true, true, true); - } + $this->init(); - $this->sqlLanguageTables = $this->getSqlLanguages(); - - // $this->loadCreateTableData(); - return $this; } @@ -1565,8 +1544,39 @@ class db_verify return $maybeCharset; } - - + + /** + * Inititalize the class parameters. + * @return void + */ + public function init($clearCache=false): void + { + $sql = e107::getDb(); + $sql->gen('SET SQL_QUOTE_SHOW_CREATE = 1'); + + if(!deftrue('e_DEBUG') && ($clearCache === false) && $tmp = e107::getCache()->retrieve(self::cachetag, 15, true, true)) + { + $cacheData = e107::unserialize($tmp); + $this->sqlFileTables = isset($cacheData['sqlFileTables']) ? $cacheData['sqlFileTables'] : $this->load(); + $this->availableStorageEngines = isset($cacheData['availableStorageEngines']) ? + $cacheData['availableStorageEngines'] : $this->getAvailableStorageEngines(); + } + else + { + $this->sqlFileTables = $this->load(); + $this->availableStorageEngines = $this->getAvailableStorageEngines(); + $cacheData = e107::serialize([ + 'sqlFileTables' => $this->sqlFileTables, + 'availableStorageEngines' => $this->availableStorageEngines, + ], 'json'); + e107::getCache()->set(self::cachetag, $cacheData, true, true, true); + } + + + $this->sqlLanguageTables = $this->getSqlLanguages(); + } + + } diff --git a/e107_tests/tests/unit/db_verifyTest.php b/e107_tests/tests/unit/db_verifyTest.php index 8e1191fcf..75b4d6362 100644 --- a/e107_tests/tests/unit/db_verifyTest.php +++ b/e107_tests/tests/unit/db_verifyTest.php @@ -1113,6 +1113,7 @@ EOF; } // Fix table. + $this->dbv->init(true); $this->dbv->compare('rss'); $this->dbv->compileResults(); $this->dbv->runFix(); diff --git a/e107_tests/tests/unit/pluginsTest.php b/e107_tests/tests/unit/pluginsTest.php index 46c074128..cd8b4404b 100644 --- a/e107_tests/tests/unit/pluginsTest.php +++ b/e107_tests/tests/unit/pluginsTest.php @@ -336,7 +336,12 @@ public function testRss_menu() { $this->pluginInstall('rss_menu'); + $installed = e107::isInstalled('rss_menu'); + self::assertTrue($installed); + $this->pluginUninstall('rss_menu'); + $installed = e107::isInstalled('rss_menu'); + self::assertFalse($installed); } public function testSocial()