/** * @dataProvider provider * @runInSeparateProcess * @preserveGlobalState disabled * @test */ function update($version = '', $verify = FALSE, $nbrules = 0) { self::restore_database(); global $DB; $DB->connect(); if ($version == '') { return; } $query = "SHOW TABLES"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { if (strstr($data[0], "tracker") or strstr($data[0], "fusi")) { $DB->query("DROP TABLE " . $data[0]); } } $query = "DELETE FROM `glpi_displaypreferences`\n WHERE `itemtype` LIKE 'PluginFus%'"; $DB->query($query); $sqlfile = GLPI_ROOT . "/plugins/fusioninventory/phpunit/0_Install/mysql/i-" . $version . ".sql"; // Load specific FusionInventory version in database $result = load_mysql_file($DB->dbuser, $DB->dbhost, $DB->dbdefault, $DB->dbpassword, $sqlfile); $this->assertEquals(0, $result['returncode'], "Failed to install Fusioninventory " . $sqlfile . ":\n" . implode("\n", $result['output'])); $output = array(); $returncode = 0; exec("php -f " . FUSINV_ROOT . "/scripts/cli_install.php -- --as-user 'glpi'", $output, $returncode); $this->assertEquals(0, $returncode, implode("\n", $output)); $GLPIlog = new GLPIlogs(); $GLPIlog->testSQLlogs(); $GLPIlog->testPHPlogs(); $FusinvDB = new FusinvDB(); $FusinvDB->checkInstall("fusioninventory", "upgrade from " . $version); $this->verifyEntityRules($nbrules); if ($verify) { $this->verifyConfig(); } }
/** * @test */ public function installDatabase() { $DBvars = get_class_vars('DB'); drop_database($DBvars['dbuser'], $DBvars['dbhost'], $DBvars['dbdefault'], $DBvars['dbpassword']); $result = load_mysql_file($DBvars['dbuser'], $DBvars['dbhost'], $DBvars['dbdefault'], $DBvars['dbpassword'], GLPI_ROOT . "/install/mysql/glpi-0.90-empty.sql"); $this->assertEquals(0, $result['returncode'], "Failed to install GLPI database:\n" . implode("\n", $result['output'])); }
public static function load_mysql_file($filename) { self::assertFileExists($filename, 'File ' . $filename . ' does not exist!'); $DBvars = get_class_vars('DB'); $result = load_mysql_file($DBvars['dbuser'], $DBvars['dbhost'], $DBvars['dbdefault'], $DBvars['dbpassword'], $filename); self::assertEquals(0, $result['returncode'], "Failed to restore database:\n" . implode("\n", $result['output'])); }
/** * @test */ public function installDatabase() { $DBvars = get_class_vars('DB'); drop_database($DBvars['dbuser'], $DBvars['dbhost'], $DBvars['dbdefault'], $DBvars['dbpassword']); $result = load_mysql_file($DBvars['dbuser'], $DBvars['dbhost'], $DBvars['dbdefault'], $DBvars['dbpassword'], GLPI_ROOT . "/install/mysql/glpi-0.91-empty.sql"); $output = array(); $returncode = 0; exec("php -f " . GLPI_ROOT . "/tools/cliupdate.php -- --upgrade", $output, $returncode); $this->assertEquals(0, $returncode, "Error when update GLPI in CLI mode\n" . implode("\n", $output)); $this->assertEquals(0, $result['returncode'], "Failed to install GLPI database:\n" . implode("\n", $result['output'])); }