/** * @depends GLPIInstallTest::installDatabase */ public function testInstall() { global $DB; $DB->connect(); $this->assertTrue($DB->connected, "Problem connecting to the Database"); // Delete if Table of FusionInventory or Tracker yet in DB $query = "SHOW FULL TABLES WHERE TABLE_TYPE LIKE 'VIEW'"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { if (strstr($data[0], "fusi")) { $DB->query("DROP VIEW " . $data[0]); } } $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]); } } $output = array(); $returncode = 0; exec("php -f " . FUSINV_ROOT . "/scripts/cli_install.php -- --as-user 'glpi'", $output, $returncode); $this->assertEquals(0, $returncode, "Error when installing plugin in CLI mode\n" . implode("\n", $output)); $GLPIlog = new GLPIlogs(); $GLPIlog->testSQLlogs(); $GLPIlog->testPHPlogs(); $FusinvDBTest = new FusinvDB(); $FusinvDBTest->checkInstall("fusioninventory", "install new version"); PluginFusioninventoryConfig::loadCache(); }
/** * @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(); } }