public function testMakeFormAndSetConfigurationFromForm() { $form = ZurmoSystemConfigurationFormAdapter::makeFormFromSystemConfiguration(); $this->assertEquals(AutoresponderOrCampaignBatchSizeConfigUtil::CONFIG_DEFAULT_VALUE, $form->autoresponderOrCampaignBatchSize); $this->assertEquals(AutoresponderOrCampaignBatchSizeConfigUtil::getBatchSize(), $form->autoresponderOrCampaignBatchSize); $this->assertEquals(OutboundEmailBatchSizeConfigUtil::getBatchSize(), $form->outboundEmailBatchSize); $this->assertEquals(ZurmoSystemConfigurationUtil::getBatchSize(), $form->listPageSizeMaxLimit); //User is not root so he cant change batch size $form->autoresponderOrCampaignBatchSize = 20; $form->outboundEmailBatchSize = 30; $form->listPageSizeMaxLimit = 10; ZurmoSystemConfigurationFormAdapter::setConfigurationFromForm($form); $form = ZurmoSystemConfigurationFormAdapter::makeFormFromSystemConfiguration(); $this->assertEquals(AutoresponderOrCampaignBatchSizeConfigUtil::CONFIG_DEFAULT_VALUE, $form->autoresponderOrCampaignBatchSize); $this->assertEquals(OutboundEmailBatchSizeConfigUtil::getBatchSize(), $form->outboundEmailBatchSize); $this->assertEquals(ZurmoSystemConfigurationUtil::getBatchSize(), $form->listPageSizeMaxLimit); //User is root so he can change batch size $super = User::getByUsername('super'); $super->setIsRootUser(); Yii::app()->user->userModel = $super; $form->autoresponderOrCampaignBatchSize = 20; $form->outboundEmailBatchSize = 30; $form->listPageSizeMaxLimit = 10; ZurmoSystemConfigurationFormAdapter::setConfigurationFromForm($form); $form = ZurmoSystemConfigurationFormAdapter::makeFormFromSystemConfiguration(); $this->assertEquals(20, $form->autoresponderOrCampaignBatchSize); $this->assertEquals(30, $form->outboundEmailBatchSize); $this->assertEquals(10, $form->listPageSizeMaxLimit); }
/** * Given a SystemConfigurationForm, save the system configuration global values. */ public static function setConfigurationFromForm(ZurmoSystemConfigurationForm $form) { if (Yii::app()->user->userModel->isRootUser) { AutoresponderOrCampaignBatchSizeConfigUtil::setBatchSize((int) $form->autoresponderOrCampaignBatchSize); OutboundEmailBatchSizeConfigUtil::setBatchSize((int) $form->outboundEmailBatchSize); ZurmoSystemConfigurationUtil::setBatchSize((int) $form->listPageSizeMaxLimit); } }
protected function resolveBatchSize() { return OutboundEmailBatchSizeConfigUtil::getBatchSize(); }
public function generateAndProcessEmailMessages($count) { $box = EmailBox::resolveAndGetByName(EmailBox::NOTIFICATIONS_NAME); $outboxFolder = EmailFolder::getByBoxAndType($box, EmailFolder::TYPE_OUTBOX); $sentFolder = EmailFolder::getByBoxAndType($box, EmailFolder::TYPE_SENT); $fileNames = array('testImage.png', 'testZip.zip', 'testPDF.pdf'); $emailMessageIds = array(); $files = array(); for ($i = 0; $i < $count; $i++) { $emailMessage = EmailMessageTestHelper::createDraftSystemEmail('My Email Message ' . $i, $this->user); foreach ($fileNames as $index => $fileName) { $file = ZurmoTestHelper::createFileModel($fileName); $files[$index]['name'] = $fileName; $files[$index]['type'] = $file->type; $files[$index]['size'] = $file->size; $files[$index]['contents'] = $file->fileContent->content; $emailMessage->files->add($file); } $emailMessage->folder = $outboxFolder; $saved = $emailMessage->save(false); $this->assertTrue($saved); $emailMessageIds[] = $emailMessage->id; $emailMessage->forget(); unset($emailMessage); } OutboundEmailBatchSizeConfigUtil::setBatchSize($count + 1); Yii::app()->jobQueue->deleteAll(); ForgetAllCacheUtil::forgetAllCaches(); $job = new ProcessOutboundEmailJob(); $startedAt = microtime(true); $this->assertTrue($job->run()); $timeTaken = microtime(true) - $startedAt; ForgetAllCacheUtil::forgetAllCaches(); $emailMessages = EmailMessage::getAll(); $this->assertEquals($count, count($emailMessages)); foreach ($emailMessageIds as $i => $emailMessageId) { $emailMessage = EmailMessage::getById($emailMessageId); $this->assertEquals('My Email Message ' . $i, $emailMessage->subject); $this->assertEquals(1, $emailMessage->sendAttempts); $this->assertEquals($sentFolder->id, $emailMessage->folder->id); $this->assertNotEmpty($emailMessage->files); $this->assertCount(count($files), $emailMessage->files); foreach ($emailMessage->files as $index => $file) { $this->assertEquals($file->name, $emailMessage->files[$index]->name); $this->assertEquals($file->type, $emailMessage->files[$index]->type); $this->assertEquals($file->size, $emailMessage->files[$index]->size); $this->assertEquals($file->fileContent->content, $emailMessage->files[$index]->fileContent->content); $this->assertEquals($file->fileContent->id, $emailMessage->files[$index]->fileContent->id); } } return $timeTaken; }