/** * test install application * */ public function testInstallApplications() { try { $result = $this->_uit->installApplications(array('ActiveSync')); } catch (Exception $e) { $this->_uit->uninstallApplications(array('ActiveSync')); $result = $this->_uit->installApplications(array('ActiveSync')); } $apps = $this->_uit->searchApplications(); // get active sync foreach ($apps['results'] as $app) { if ($app['name'] == 'ActiveSync') { $activeSyncApp = $app; break; } } $applicationId = $activeSyncApp['id']; // checks $this->assertTrue(isset($activeSyncApp)); $this->assertTrue(isset($applicationId)); $this->assertEquals('enabled', $activeSyncApp['status']); $this->assertEquals('uptodate', $activeSyncApp['install_status']); //check if user role has the right to run the recently installed app $roles = Tinebase_Acl_Roles::getInstance(); $userRole = $roles->getRoleByName('user role'); $rights = $roles->getRoleRights($userRole->getId()); $hasRight = false; foreach ($rights as $right) { if ($right['application_id'] === $applicationId && $right['right'] === 'run') { $hasRight = true; } } $this->assertTrue($hasRight, 'User role has run right for recently installed app?'); }
/** * testSaveAuthenticationSql */ public function testSaveAuthenticationSql() { $testAuthenticationData = $this->_json->loadAuthenticationData(); $testAuthenticationData['authentication']['backend'] = Tinebase_Auth::SQL; $testAuthenticationData['authentication'][Tinebase_Auth::SQL]['adminLoginName'] = 'phpunit-admin'; $testAuthenticationData['authentication'][Tinebase_Auth::SQL]['adminPassword'] = '******'; $testAuthenticationData['authentication'][Tinebase_Auth::SQL]['adminPasswordConfirmation'] = 'phpunit-password'; $this->_uninstallAllApps(); $result = $this->_json->saveAuthentication($testAuthenticationData); $savedAuthenticationData = $this->_json->loadAuthenticationData(); $adminUser = Tinebase_User::getInstance()->getFullUserByLoginName('phpunit-admin'); $this->assertTrue($adminUser instanceof Tinebase_Model_User); //test if Tinebase stack was installed $apps = $this->_json->searchApplications(); $baseApplicationStack = array('Tinebase', 'Admin', 'Addressbook'); foreach ($apps['results'] as $app) { if ($app['install_status'] === 'uptodate' && false !== ($index = array_search($app['name'], $baseApplicationStack))) { unset($baseApplicationStack[$index]); } } $this->assertTrue(empty($baseApplicationStack), 'Assure that base application stack was installed after saving authentication'); $this->_uninstallAllApps(); //Ensure that all aps get re-installed with default username/password because some tests rely on these values }