/** * This test shows that accents are maybe not in the right encoding in the message file. This is just an example * of something that was not working in windows correctly. The result was the label would not display in the * input box in the browser in the module general in designer. */ public function testAccentsAreEncodingProperly() { $this->assertEquals('Opportunité', ZurmoHtml::encode('Opportunité')); //First we need to activate French, to import the message Yii::app()->languageHelper->load(); Yii::app()->languageHelper->activateLanguagesForTesting(); Yii::app()->languageHelper->importMessagesForTesting(); $label = OpportunitiesModule::getModuleLabelByTypeAndLanguage('SingularLowerCase', 'fr'); $this->assertEquals('opportunité', $label); $this->assertEquals('opportunité', ZurmoHtml::encode($label)); }
public function testSuperUserOpportunityDefaultControllerActions() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); //Default Controller actions requiring some sort of parameter via POST or GET //Load Opportunity Modules Menu. $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/modulesMenu'); //Load AttributesList for Opportunity module. $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/attributesList'); //Load ModuleLayoutsList for Opportunity module. $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/moduleLayoutsList'); //Load ModuleEdit view for each applicable module. $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/moduleEdit'); //Now validate save with failed validation. $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule')); $this->setPostArray(array('ajax' => 'edit-form', 'OpportunitiesModuleForm' => $this->createModuleEditBadValidationPostData())); $content = $this->runControllerWithExitExceptionAndGetContent('designer/default/moduleEdit'); $this->assertTrue(strlen($content) > 50); //approximate, but should definetely be larger than 50. //Now validate save with successful validation. $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule')); $this->setPostArray(array('ajax' => 'edit-form', 'OpportunitiesModuleForm' => $this->createModuleEditGoodValidationPostData('opp new name'))); $content = $this->runControllerWithExitExceptionAndGetContent('designer/default/moduleEdit'); $this->assertEquals('[]', $content); //Now save successfully. $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule')); $this->setPostArray(array('save' => 'Save', 'OpportunitiesModuleForm' => $this->createModuleEditGoodValidationPostData('opp new name'))); $this->runControllerWithRedirectExceptionAndGetContent('designer/default/moduleEdit'); //Now confirm everything did in fact save correctly. $this->assertEquals('Opp New Name', OpportunitiesModule::getModuleLabelByTypeAndLanguage('Singular')); $this->assertEquals('Opp New Names', OpportunitiesModule::getModuleLabelByTypeAndLanguage('Plural')); $this->assertEquals('opp new name', OpportunitiesModule::getModuleLabelByTypeAndLanguage('SingularLowerCase')); $this->assertEquals('opp new names', OpportunitiesModule::getModuleLabelByTypeAndLanguage('PluralLowerCase')); //Load LayoutEdit for each applicable module and applicable layout $this->resetPostArray(); $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule', 'viewClassName' => 'OpportunitiesListView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule', 'viewClassName' => 'OpportunitiesModalListView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule', 'viewClassName' => 'OpportunitiesModalSearchView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule', 'viewClassName' => 'OpportunitiesMassEditView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule', 'viewClassName' => 'OpportunitiesRelatedListView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule', 'viewClassName' => 'OpportunitiesSearchView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'OpportunitiesModule', 'viewClassName' => 'OpportunityEditAndDetailsView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); }
/** * Action called in the event that the mass delete quantity is larger than the pageSize. * This action is called after the pageSize quantity has been delted and continues to be * called until the mass delete action is complete. For example, if there are 20 records to delete * and the pageSize is 5, then this action will be called 3 times. The first 5 are updated when * the actionMassDelete is called upon the initial form submission. */ public function actionMassDeleteProgress() { $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('massDeleteProgressPageSize'); $opportunity = new Opportunity(false); $dataProvider = $this->getDataProviderByResolvingSelectAllFromGet(new OpportunitiesSearchForm($opportunity), $pageSize, Yii::app()->user->userModel->id, null, 'OpportunitiesSearchView'); $this->processMassDeleteProgress('Opportunity', $pageSize, OpportunitiesModule::getModuleLabelByTypeAndLanguage('Plural'), $dataProvider); }
protected function resolveConfirmAlertInHtmlOptions($htmlOptions) { $htmlOptions['confirm'] = Zurmo::t('Core', 'Are you sure you want to delete this {modelLabel}?', array('{modelLabel}' => OpportunitiesModule::getModuleLabelByTypeAndLanguage('SingularLowerCase'))); return $htmlOptions; }