public function init() { if (AccountsModule::shouldUpdateLatestActivityDateTimeWhenATaskIsCompleted()) { $eventHandler = array($this, 'updateAccountLatestActivityDateTimeByTask'); Task::model()->attachEventHandler('onAfterSave', $eventHandler); $this->attachedEventHandlersIndexedByModelClassName['Task'] = array('onAfterSave', $eventHandler); } if (AccountsModule::shouldUpdateLatestActivityDateTimeWhenANoteIsCreated()) { $eventHandler = array($this, 'updateAccountLatestActivityDateTimeByNote'); Note::model()->attachEventHandler('onAfterSave', $eventHandler); $this->attachedEventHandlersIndexedByModelClassName['Note'] = array('onAfterSave', $eventHandler); } if (AccountsModule::shouldUpdateLatestActivityDateTimeWhenAnEmailIsSentOrArchived()) { $eventHandler = array($this, 'updateAccountLatestActivityDateTimeByEmailMessage'); EmailMessage::model()->attachEventHandler('onAfterSave', $eventHandler); $this->attachedEventHandlersIndexedByModelClassName['EmailMessage'] = array('onAfterSave', $eventHandler); } if (AccountsModule::shouldUpdateLatestActivityDateTimeWhenAMeetingIsInThePast()) { $eventHandler = array($this, 'resolveModelLatestActivityDateTimeProcessFlagByMeeting'); Meeting::model()->attachEventHandler('onBeforeSave', $eventHandler); $this->attachedEventHandlersIndexedByModelClassName['Meeting'] = array('onBeforeSave', $eventHandler); } }
public function testUpdateLatestActivityDateTimeMethods() { $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenATaskIsCompleted(); $this->assertTrue($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenANoteIsCreated(); $this->assertTrue($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAnEmailIsSentOrArchived(); $this->assertTrue($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAMeetingIsInThePast(); $this->assertTrue($value); $metadata = AccountsModule::getMetadata(); $metadata['global']['updateLatestActivityDateTimeWhenATaskIsCompleted'] = false; AccountsModule::setMetadata($metadata); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenATaskIsCompleted(); $this->assertFalse($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenANoteIsCreated(); $this->assertTrue($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAnEmailIsSentOrArchived(); $this->assertTrue($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAMeetingIsInThePast(); $this->assertTrue($value); $metadata = AccountsModule::getMetadata(); $metadata['global']['updateLatestActivityDateTimeWhenANoteIsCreated'] = false; AccountsModule::setMetadata($metadata); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenATaskIsCompleted(); $this->assertFalse($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenANoteIsCreated(); $this->assertFalse($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAnEmailIsSentOrArchived(); $this->assertTrue($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAMeetingIsInThePast(); $this->assertTrue($value); $metadata = AccountsModule::getMetadata(); $metadata['global']['updateLatestActivityDateTimeWhenAnEmailIsSentOrArchived'] = false; AccountsModule::setMetadata($metadata); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenATaskIsCompleted(); $this->assertFalse($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenANoteIsCreated(); $this->assertFalse($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAnEmailIsSentOrArchived(); $this->assertFalse($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAMeetingIsInThePast(); $this->assertTrue($value); $metadata = AccountsModule::getMetadata(); $metadata['global']['updateLatestActivityDateTimeWhenAMeetingIsInThePast'] = false; AccountsModule::setMetadata($metadata); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenATaskIsCompleted(); $this->assertFalse($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenANoteIsCreated(); $this->assertFalse($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAnEmailIsSentOrArchived(); $this->assertFalse($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAMeetingIsInThePast(); $this->assertFalse($value); }
public function testSuperUserAccountDefaultControllerActions() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); //Default Controller actions requiring some sort of parameter via POST or GET //Load Account Modules Menu. $this->resetPostArray(); $this->setGetArray(array('moduleClassName' => 'AccountsModule')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/modulesMenu'); //Load AttributesList for Account module. $this->resetPostArray(); $this->setGetArray(array('moduleClassName' => 'AccountsModule')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/attributesList'); //Load ModuleLayoutsList for Account module. $this->resetPostArray(); $this->setGetArray(array('moduleClassName' => 'AccountsModule')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/moduleLayoutsList'); //Load ModuleEdit view for each applicable module. $this->resetPostArray(); $this->setGetArray(array('moduleClassName' => 'AccountsModule')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/moduleEdit'); //Now validate save with failed validation. $this->setGetArray(array('moduleClassName' => 'AccountsModule')); $this->setPostArray(array('ajax' => 'edit-form', 'AccountsModuleForm' => $this->createModuleEditBadValidationPostData())); $content = $this->runControllerWithExitExceptionAndGetContent('designer/default/moduleEdit'); //Now validate save with successful validation. $this->setGetArray(array('moduleClassName' => 'AccountsModule')); $this->setPostArray(array('ajax' => 'edit-form', 'AccountsModuleForm' => $this->createModuleEditGoodValidationPostData('acc new name'))); $content = $this->runControllerWithExitExceptionAndGetContent('designer/default/moduleEdit'); $this->assertEquals('[]', $content); //Now save successfully. $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenATaskIsCompleted(); $this->assertTrue($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenANoteIsCreated(); $this->assertTrue($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAnEmailIsSentOrArchived(); $this->assertTrue($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAMeetingIsInThePast(); $this->assertTrue($value); $postDataForForm = $this->createModuleEditGoodValidationPostData('acc new name'); $postDataForForm['updateLatestActivityDateTimeWhenATaskIsCompleted'] = ''; $postDataForForm['updateLatestActivityDateTimeWhenANoteIsCreated'] = ''; $postDataForForm['updateLatestActivityDateTimeWhenAnEmailIsSentOrArchived'] = ''; $postDataForForm['updateLatestActivityDateTimeWhenAMeetingIsInThePast'] = ''; $this->setGetArray(array('moduleClassName' => 'AccountsModule')); $this->setPostArray(array('save' => 'Save', 'AccountsModuleForm' => $postDataForForm)); $this->runControllerWithRedirectExceptionAndGetContent('designer/default/moduleEdit'); //Now confirm everything did in fact save correctly. $this->assertEquals('Acc New Name', AccountsModule::getModuleLabelByTypeAndLanguage('Singular')); $this->assertEquals('Acc New Names', AccountsModule::getModuleLabelByTypeAndLanguage('Plural')); $this->assertEquals('acc new name', AccountsModule::getModuleLabelByTypeAndLanguage('SingularLowerCase')); $this->assertEquals('acc new names', AccountsModule::getModuleLabelByTypeAndLanguage('PluralLowerCase')); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenATaskIsCompleted(); $this->assertFalse($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenANoteIsCreated(); $this->assertFalse($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAnEmailIsSentOrArchived(); $this->assertFalse($value); $value = AccountsModule::shouldUpdateLatestActivityDateTimeWhenAMeetingIsInThePast(); $this->assertFalse($value); //Load LayoutEdit for each applicable module and applicable layout $this->resetPostArray(); $this->setGetArray(array('moduleClassName' => 'AccountsModule', 'viewClassName' => 'AccountEditAndDetailsView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'AccountsModule', 'viewClassName' => 'AccountsListView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'AccountsModule', 'viewClassName' => 'AccountsMassEditView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'AccountsModule', 'viewClassName' => 'AccountsModalListView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'AccountsModule', 'viewClassName' => 'AccountsModalSearchView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'AccountsModule', 'viewClassName' => 'AccountsRelatedListView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'AccountsModule', 'viewClassName' => 'AccountsSearchView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); $this->setGetArray(array('moduleClassName' => 'AccountsModule', 'viewClassName' => 'AccountConvertToView')); $this->runControllerWithNoExceptionsAndGetContent('designer/default/LayoutEdit'); }