public function testGetSetSeverityInvalid() { $exception = new CM_Exception(); try { $exception->setSeverity(9999); $this->fail('Could set invalid severity'); } catch (CM_Exception_Invalid $e) { $this->assertSame('Invalid severity `9999`', $e->getMessage()); } try { $exception->setSeverity('1'); $this->fail('Could set invalid severity'); } catch (CM_Exception_Invalid $e) { $this->assertSame('Invalid severity `1`', $e->getMessage()); } }
protected function _registerCallbacks() { $this->_registerClockworkCallbacks('10 seconds', array('CM_Model_User::offlineDelayed' => function () { CM_Model_User::offlineDelayed(); })); $this->_registerClockworkCallbacks('1 minute', array('CM_Model_User::offlineOld' => function () { CM_Model_User::offlineOld(); }, 'CM_ModelAsset_User_Roles::deleteOld' => function () { CM_ModelAsset_User_Roles::deleteOld(); }, 'CM_Paging_Useragent_Abstract::deleteOlder' => function () { CM_Paging_Useragent_Abstract::deleteOlder(100 * 86400); }, 'CM_File_UserContent_Temp::deleteOlder' => function () { CM_File_UserContent_Temp::deleteOlder(86400); }, 'CM_SVM_Model::deleteOldTrainings' => function () { CM_SVM_Model::deleteOldTrainings(3000); }, 'CM_Paging_Ip_Blocked::deleteOlder' => function () { CM_Paging_Ip_Blocked::deleteOld(); }, 'CM_Captcha::deleteOlder' => function () { CM_Captcha::deleteOlder(3600); }, 'CM_Session::deleteExpired' => function () { CM_Session::deleteExpired(); }, 'CM_Stream_Video::synchronize' => function () { CM_Stream_Video::getInstance()->synchronize(); }, 'CM_Stream_Video::checkStreams' => function () { CM_Stream_Video::getInstance()->checkStreams(); }, 'CM_MessageStream_Service::synchronize' => function () { CM_Service_Manager::getInstance()->getStreamMessage()->synchronize(); })); $this->_registerClockworkCallbacks('15 minutes', array('CM_Mail::processQueue' => function () { CM_Mail::processQueue(500); }, 'CM_Action_Abstract::aggregate' => function () { CM_Action_Abstract::aggregate(); }, 'CM_Action_Abstract::deleteTransgressionsOlder' => function () { CM_Action_Abstract::deleteTransgressionsOlder(3 * 31 * 86400); }, 'CM_Paging_Log_Abstract::cleanup' => function () { foreach (CM_Paging_Log_Abstract::getClassChildren() as $logClass) { /** @var CM_Paging_Log_Abstract $log */ $log = new $logClass(); $log->cleanUp(); } })); $this->_registerClockworkCallbacks('8 days', array('CMService_MaxMind::upgrade' => function () { try { $maxMind = new CMService_MaxMind(); $maxMind->upgrade(); } catch (Exception $exception) { if (!is_a($exception, 'CM_Exception')) { $exception = new CM_Exception($exception->getMessage(), ['file' => $exception->getFile(), 'line' => $exception->getLine(), 'trace' => $exception->getTraceAsString()]); } $exception->setSeverity(CM_Exception::FATAL); throw $exception; } })); }
/** * @param CM_I18n_Phrase $messagePublic */ public function __construct(CM_I18n_Phrase $messagePublic) { parent::__construct('FormField Validation failed', null, null, ['messagePublic' => $messagePublic]); }
/** * @param Exception $exception */ protected function _handleException(Exception $exception) { if ('RuntimeException' === get_class($exception) && false !== strpos($exception->getMessage(), ' timed out ')) { $exception = new CM_Exception($exception->getMessage(), CM_Exception::WARN); } $this->_logException($exception); }
/** * @param string $messagePublic * @param array|null $variables */ public function __construct($messagePublic, array $variables = null) { parent::__construct('FormField Validation failed', null, array('messagePublic' => $messagePublic, 'messagePublicVariables' => $variables)); }
protected function _registerCallbacks() { $this->_registerClockworkCallbacks('1 second', ['CM_Jobdistribution_DelayedQueue::queueOutstanding' => function () { $delayedQueue = $this->getServiceManager()->getDelayedJobQueue(); $delayedQueue->queueOutstanding(); }]); $this->_registerClockworkCallbacks('1 minute', array('CM_Model_User::offlineOld' => function () { CM_Model_User::offlineOld(); }, 'CM_ModelAsset_User_Roles::deleteOld' => function () { CM_ModelAsset_User_Roles::deleteOld(); }, 'CM_Paging_Useragent_Abstract::deleteOlder' => function () { CM_Paging_Useragent_Abstract::deleteOlder(100 * 86400); }, 'CM_File_UserContent_Temp::deleteOlder' => function () { CM_File_UserContent_Temp::deleteOlder(86400); }, 'CM_SVM_Model::deleteOldTrainings' => function () { CM_SVM_Model::deleteOldTrainings(3000); }, 'CM_Paging_Ip_Blocked::deleteOlder' => function () { CM_Paging_Ip_Blocked::deleteOld(); }, 'CM_Captcha::deleteOlder' => function () { CM_Captcha::deleteOlder(3600); }, 'CM_Session::deleteExpired' => function () { CM_Session::deleteExpired(); }, 'CM_MessageStream_Service::synchronize' => function () { CM_Service_Manager::getInstance()->getStreamMessage()->synchronize(); })); if ($this->getServiceManager()->has('janus')) { $this->_registerClockworkCallbacks('1 minute', array('CM_Janus_Service::synchronize' => function () { $this->getServiceManager()->getJanus('janus')->synchronize(); }, 'CM_Janus_Service::checkStreams' => function () { $this->getServiceManager()->getJanus('janus')->checkStreams(); })); } $this->_registerClockworkCallbacks('15 minutes', array('CM_Action_Abstract::aggregate' => function () { CM_Action_Abstract::aggregate(); }, 'CM_Action_Abstract::deleteTransgressionsOlder' => function () { CM_Action_Abstract::deleteTransgressionsOlder(3 * 31 * 86400); }, 'CM_Paging_Log::cleanup' => function () { $allLevelsList = array_values(CM_Log_Logger::getLevels()); foreach (CM_Paging_Log::getClassChildren() as $pagingLogClass) { /** @type CM_Paging_Log $log */ $log = new $pagingLogClass($allLevelsList); $log->cleanUp(); } (new CM_Paging_Log($allLevelsList, false))->cleanUp(); //deletes all untyped records })); if ($this->getServiceManager()->has('maxmind')) { $this->_registerClockworkCallbacks('8 days', array('CMService_MaxMind::upgrade' => function () { try { /** @var CMService_MaxMind $maxMind */ $maxMind = $this->getServiceManager()->get('maxmind', 'CMService_MaxMind'); $maxMind->upgrade(); } catch (Exception $exception) { if (!is_a($exception, 'CM_Exception')) { $exception = new CM_Exception($exception->getMessage(), null, ['file' => $exception->getFile(), 'line' => $exception->getLine(), 'trace' => $exception->getTraceAsString()]); } $exception->setSeverity(CM_Exception::FATAL); throw $exception; } })); } }
/** * @param string $message * @param Exception $originalException */ public function __construct($message, Exception $originalException) { $this->_originalException = $originalException; parent::__construct($message, CM_Exception::ERROR); }
/** * @param CM_Model_User $user */ public function __construct(CM_Model_User $user) { parent::__construct('Blocked', null, array('messagePublic' => '{$username} has blocked you.', 'messagePublicVariables' => array('username' => $user->getDisplayName()))); }
/** * @param Exception $exception */ protected function _logException(Exception $exception) { if ('RuntimeException' === get_class($exception) && false !== strpos($exception->getMessage(), ' timed out ')) { $exception = new CM_Exception($exception->getMessage(), CM_Exception::WARN); } CM_Bootloader::getInstance()->getExceptionHandler()->logException($exception); }
/** * @param CM_Model_User $user */ public function __construct(CM_Model_User $user) { parent::__construct('Blocked', null, null, ['messagePublic' => new CM_I18n_Phrase('{$username} has blocked you.', ['username' => $user->getDisplayName()])]); }
public function testHandleException() { $mockLogHandler = $this->mockInterface('CM_Log_Handler_HandlerInterface')->newInstance(); $mockHandleRecord = $mockLogHandler->mockMethod('handleRecord'); $logger = $this->_getLoggerMock(new CM_Log_Context(), new CM_Log_Handler_Layered([new CM_Log_Handler_Layered_Layer([$mockLogHandler])])); $exception = new Exception('foo'); $mockHandleRecord->set(function (CM_Log_Record $record) use($exception) { $this->assertTrue(!!$record->getContext()->getException()); $recordException = $record->getContext()->getException(); $this->assertSame('foo', $recordException->getMessage()); $this->assertSame($exception->getLine(), $recordException->getLine()); $this->assertSame($exception->getFile(), $recordException->getFile()); $this->assertSame('Error happened', $record->getMessage()); $this->assertSame(CM_Log_Logger::ERROR, $record->getLevel()); }); $context = new CM_Log_Context(); $context->setException($exception); $logger->error('Error happened', $context); $this->assertSame(1, $mockHandleRecord->getCallCount()); $exception = new CM_Exception('bar'); $mockHandleRecord->set(function (CM_Log_Record $record) use($exception) { $recordException = $record->getContext()->getException(); $this->assertSame('bar', $recordException->getMessage()); $this->assertSame($exception->getLine(), $recordException->getLine()); $this->assertSame($exception->getFile(), $recordException->getFile()); $this->assertSame('Warning alert', $record->getMessage()); $this->assertSame(CM_Log_Logger::WARNING, $record->getLevel()); }); $context = new CM_Log_Context(); $context->setException($exception); $logger->warning('Warning alert', $context); $this->assertSame(2, $mockHandleRecord->getCallCount()); }