/** * @test installing plugins */ public function testInstaller() { $this->__cleanSystem(); $this->assertTrue(App::import('lib', 'Installer.Installer'), 'Could not import the insatller lib'); $this->assertTrue(App::import('Lib', 'Installer.ReleaseVersion'), 'Could not import Versions lib'); $Installer = new InstallerLib(); $Version = new ReleaseVersion(array('connection' => 'test_suite')); $connectionDetails = $Installer->cleanConnectionDetails(array('connection' => $this->db->config)); $this->assertTrue($Installer->installPlugin($Version, $connectionDetails)); $expected = array('0' => 'acos', '1' => 'aros', '2' => 'aros_acos', '3' => 'schema_migrations', '4' => 'sessions'); $this->assertEqual($expected, $this->db->listSources()); $this->assertTrue($Installer->installPlugin($Version, $connectionDetails, 'Installer')); $expected = array('0' => 'acos', '1' => 'aros', '2' => 'aros_acos', '3' => 'core_plugins', '4' => 'schema_migrations', '5' => 'sessions'); $this->assertEqual($expected, $this->db->listSources()); $pluginsToInstall = App::objects('plugin'); natsort($pluginsToInstall); foreach ($pluginsToInstall as $k => $pluginToInstall) { if (in_array($pluginToInstall, array('Migrations'))) { continue; } $this->assertTrue($Installer->installPlugin($Version, $connectionDetails, $pluginToInstall), sprintf('%s could not be installed', $pluginToInstall)); } foreach ($pluginsToInstall as $pluginToInstall) { $this->__checkVersionCount($pluginToInstall); } }