示例#1
0
 /**
  * @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);
     }
 }