Skip to content

Commit

Permalink
Unit tests pass again
Browse files Browse the repository at this point in the history
  • Loading branch information
Vitexus committed Oct 11, 2020
1 parent 3c4d388 commit cad3f91
Show file tree
Hide file tree
Showing 18 changed files with 302 additions and 452 deletions.
6 changes: 5 additions & 1 deletion README.md
Expand Up @@ -77,11 +77,15 @@ To get Docker image:
Framework Constants
===================

* EASE_APPNAME - common name of application. Mainly used in logs.
* EASE_APPNAME - common name of application. Mainly used in logs. (APP_NAME is also recoginsed)
* EASE_LOGGER - one of memory,console,file,syslog,email,std,eventlog or combination eg. "console|syslog"
* EASE_EMAILTO - recipient email address for Ease/Logger/ToMail
* EASE_SMTP - Custom SMTP Settings (JSON Encoded)
* LOG_DIRECTORY - destination for ToFile logger
* LOG_OPTION - syslog option argument
* LOG_FACILITY - syslog facility argument



Logging
-------
Expand Down
6 changes: 3 additions & 3 deletions src/Ease/Logger/Regent.php
Expand Up @@ -56,10 +56,10 @@ class Regent extends \Ease\Atom implements Loggingable {
* @param string $logger class name
*/
public function __construct($logger = null) {
if (empty(\Ease\Functions::cfg('EASE_LOGGER'))) {
$loggers = empty($logger) ? ['syslog'] : [$logger];
if (empty($logger)) {
$loggers = empty(\Ease\Functions::cfg('EASE_LOGGER')) ? ['syslog'] : explode('|', \Ease\Functions::cfg('EASE_LOGGER'));
} else {
$loggers = explode('|', \Ease\Functions::cfg('EASE_LOGGER'));
$loggers = is_array($logger) ? $logger : [$logger];
}

foreach ($loggers as $logger) {
Expand Down
19 changes: 10 additions & 9 deletions src/Ease/Logger/ToConsole.php
Expand Up @@ -77,8 +77,8 @@ public function __construct() {
/**
* Set Ansi Color
*
* @param string $str
* @param string $color
* @param string $str string to colorize
* @param string $color color name
*
* @return string
*/
Expand All @@ -99,29 +99,30 @@ public static function set($str, $color) {
* @param string $message zpráva
* @param string $type typ zprávy (success|info|error|warning|*)
*
* @return boolean|null byl report zapsán ?
* @return int written message length
*/
public function addToLog($caller, $message, $type = 'message') {
$message = $this->set(
$ansiMessage = $this->set(
' ' . Message::getTypeUnicodeSymbol($type) . ' ' . strip_tags($message),
self::getTypeColor($type)
);
$logLine = strftime("%D %T") . ' `' . (is_object($caller) ? get_class($caller) : $caller) . '` ' . $message;

$logLine = strftime("%D %T") . ' ' . (is_object($caller) ? get_class($caller) : $caller) . ' ' . $ansiMessage;
$written = 0;
switch ($type) {
case 'error':
fputs($this->stderr, $logLine . "\n");
$written += fputs($this->stderr, $logLine . "\n");
break;
default:
fputs($this->stdout, $logLine . "\n");
$written += fputs($this->stdout, $logLine . "\n");
break;
}
return $written;
}

/**
* Get color code for given message
*
* @param string $type
* @param string $type mail|warning|error|debug|success
*/
public static function getTypeColor($type) {
switch ($type) {
Expand Down
32 changes: 4 additions & 28 deletions src/Ease/Logger/ToEmail.php
Expand Up @@ -116,10 +116,10 @@ public function __construct($recipient = null, $subject = null) {
public static function singleton() {
if (!isset(self::$_instance)) {
$class = __CLASS__;
if (defined('EASE_APPNAME')) {
if (\Ease\Shared::appName()) {
self::$_instance = new $class(
constant('EASE_EMAILTO'),
constant('EASE_APPNAME')
\Ease\Functions::cfg('EASE_EMAILTO'),
\Ease\Shared::appName()
);
} else {
self::$_instance = new $class('EaseFramework');
Expand Down Expand Up @@ -150,7 +150,7 @@ public function addToLog($caller, $message, $type = 'notice') {

$this->statusMessages[$type][$this->messageID] = $message;

$logLine = strftime("%D %T") . ' `' . $caller . '`: ' . $message;
$logLine = strftime("%D %T") . ' `' . is_object($caller) ? get_class($caller) : $caller . '`: ' . $message;

$this->mailer->textBody .= "\n" . $logLine;
return true;
Expand All @@ -165,28 +165,4 @@ public function __destruct() {
}
}

/**
* Flush Messages.
*
* @param string $caller
*
* @return int how many messages was flushed
*/
public function flush($caller = null) {
$flushed = 0;
if (count($this->statusMessages)) {
foreach ($this->statusMessages as $type => $messages) {
foreach ($messages as $messageID => $message) {
if (!isset($this->flushed[$type][$messageID])) {
$this->addToLog($caller, $message, $type);
$this->flushed[$type][$messageID] = true;
++$flushed;
}
}
}
}

return $flushed;
}

}
37 changes: 12 additions & 25 deletions src/Ease/Logger/ToFile.php
@@ -1,10 +1,10 @@
<?php

/**
* Třída pro logování.
* File Logging class.
*
* @author Vitex <vitex@hippy.cz>
* @copyright 2009-2019 Vitex@hippy.cz (G)
* @copyright 2009-2020 Vitex@hippy.cz (G)
*/

namespace Ease\Logger;
Expand Down Expand Up @@ -94,18 +94,18 @@ public function setupLogFiles($baseLogDir = null) {

$baseLogDir = is_null($baseLogDir) ? ( is_null($this->logPrefix) && defined('LOG_DIRECTORY') ? constant('LOG_DIRECTORY') : null ) : $baseLogDir;

if (!empty($baseLogDir)) {
if (empty($baseLogDir)) {
$this->logType = 'none';
$this->logPrefix = null;
$this->logFileName = null;
} else {
$this->logPrefix = \Ease\Functions::sysFilename($baseLogDir);
if ($this->testDirectory($this->logPrefix)) {
$this->logFileName = $this->logPrefix . $this->logFileName;
} else {
$this->logPrefix = null;
$this->logFileName = null;
}
} else {
$this->logType = 'none';
$this->logPrefix = null;
$this->logFileName = null;
}
}

Expand All @@ -116,15 +116,16 @@ public function setupLogFiles($baseLogDir = null) {
* @param string $message zpráva
* @param string $type typ zprávy (success|info|error|warning|*)
*
* @return null|boolean byl report zapsán ?
* @return int bytes written
*/
public function addToLog($caller, $message, $type = 'notice') {
++$this->messageID;
$written = 0;
$this->statusMessages[$type][$this->messageID] = $message;

$message = htmlspecialchars_decode(strip_tags(stripslashes($message)));

$logLine = date(DATE_ATOM) . ' (' . $caller . ') ' . str_replace(
$logLine = date(DATE_ATOM) . ' (' . is_object($caller) ? get_class($caller) : $caller . ') ' . str_replace(
['notice', 'message',
'debug', 'error', 'warning', 'success', 'info', 'mail',],
['**', '##', '@@', '::'], $type
Expand All @@ -136,13 +137,13 @@ public function addToLog($caller, $message, $type = 'notice') {
$this->_logFileHandle = fopen($this->logFileName, 'a+');
}
if ($this->_logFileHandle !== null) {
fwrite($this->_logFileHandle, $logLine);
$written += fwrite($this->_logFileHandle, $logLine);
}
}
}
}

return true;
return $written;
}

/**
Expand Down Expand Up @@ -179,19 +180,5 @@ public function __destruct() {
}
}

/**
* Vrací styl logování.
*
* @param string $logType typ logu warning|info|success|error|notice|*
*
* @return string
*/
public function getLogStyle($logType = 'notice') {
if (key_exists($logType, $this->logStyles)) {
return $this->logStyles[$logType];
} else {
return '';
}
}

}
34 changes: 7 additions & 27 deletions src/Ease/Logger/ToStd.php
Expand Up @@ -56,7 +56,7 @@ class ToStd extends ToMemory implements Loggingable {
* @param string $logName symbolic name for log
*/
public function __construct($logName = null) {
$this->logName = $logName;
$this->logName = empty($logName) ? \Ease\Shared::appName() : $logName;
}

/**
Expand Down Expand Up @@ -120,20 +120,24 @@ public function addToLog($caller, $message, $type = 'message') {
*
* @param string $type message type 'error' or anything else
* @param string $logLine message to output
*
* @return int bytes written
*/
public function output($type, $logLine) {
$written = 0;
switch ($type) {
case 'error':
$stderr = fopen('php://stderr', 'w');
fwrite($stderr, $this->logName . ': ' . $logLine);
$written += fwrite($stderr, $this->logName . ': ' . $logLine);
fclose($stderr);
break;
default:
$stdout = fopen('php://stdout', 'w');
fwrite($stdout, $this->logName . ': ' . $logLine);
$written += fwrite($stdout, $this->logName . ': ' . $logLine);
fclose($stdout);
break;
}
return $written;
}

/**
Expand All @@ -147,28 +151,4 @@ public function finalizeMessage($messageRaw) {
return trim($messageRaw) . PHP_EOL;
}

/**
* Flush Messages.
*
* @param string $caller
*
* @return int how many messages was flushed
*/
public function flush($caller = null) {
$flushed = 0;
if (count($this->statusMessages)) {
foreach ($this->statusMessages as $type => $messages) {
foreach ($messages as $messageID => $message) {
if (!isset($this->flushed[$type][$messageID])) {
$this->addToLog($caller, $message, $type);
$this->flushed[$type][$messageID] = true;
++$flushed;
}
}
}
}

return $flushed;
}

}
8 changes: 3 additions & 5 deletions src/Ease/Logger/ToSyslog.php
@@ -1,10 +1,10 @@
<?php

/**
* Třída pro logování.
* Syslog logger handler
*
* @author Vitex <vitex@hippy.cz>
* @copyright 2009-2019 Vitex@hippy.cz (G)
* @copyright 2009-2020 Vitex@hippy.cz (G)
*/

namespace Ease\Logger;
Expand Down Expand Up @@ -35,9 +35,7 @@ class ToSyslog extends ToStd implements Loggingable {
* @param string $logName syslog log source identifier
*/
public function __construct($logName = null) {
if (!empty($logName)) {
openlog($logName, constant('LOG_NDELAY'), constant('LOG_USER'));
}
openlog( empty($logName) ? \Ease\Shared::appName() : $logName , \Ease\Functions::cfg('LOG_OPTION'), \Ease\Functions::cfg('LOG_FACILITY'));
}

/**
Expand Down
8 changes: 4 additions & 4 deletions src/Ease/Shared.php
Expand Up @@ -14,7 +14,7 @@
/**
* Common shared object
*
* @copyright 2009-2016 Vitex@hippy.cz (G)
* @copyright 2009-2020 Vitex@hippy.cz (G)
* @author Vitex <vitex@hippy.cz>
*/
class Shared extends Atom {
Expand Down Expand Up @@ -60,14 +60,14 @@ static public function appName() {
* Inicializace sdílené třídy.
*/
public function __construct() {
$webMessages = [];
$sessMsgs = [];
$appName = self::appName();
if (isset($_SESSION[$appName]['EaseMessages'])) {
$webMessages = $_SESSION[$appName]['EaseMessages'];
$sessMsgs = $_SESSION[$appName]['EaseMessages'];
unset($_SESSION[$appName]['EaseMessages']);
}

$this->statusMessages = array_merge(self::loadStatusMessages(), $webMessages);
$this->statusMessages = array_merge(self::loadStatusMessages(), $sessMsgs);
}

public static function msgFile($sessID = 'EaseStatusMessages') {
Expand Down
2 changes: 1 addition & 1 deletion src/Ease/User.php
Expand Up @@ -112,7 +112,7 @@ public function getUserEmail() {
* Vykreslí GrAvatara uživatele.
*/
public function draw() {
echo '<img class="avatar" src="' . $this->getIcon() . '">';
return '<img class="avatar" src="' . $this->getIcon() . '">';
}

/**
Expand Down
7 changes: 5 additions & 2 deletions tests/src/Ease/LocaleTest.php
Expand Up @@ -61,11 +61,13 @@ public function testConstructor()
*/
public function testGetPreferedLocale()
{

global $_REQUEST,$_SESSION;
$this->assertEquals('C', Locale::getPreferedLocale(false));
$_SESSION['locale'] = 'en_US';
$this->assertEquals('en_US', Locale::getPreferedLocale(false));
$this->assertEquals('cs_CZ', Locale::getPreferedLocale(true));
$_REQUEST['locale'] = 'test';
$this->assertEquals('test', Locale::getPreferedLocale(false));


}
Expand All @@ -75,7 +77,8 @@ public function testGetPreferedLocale()
*/
public function testRequestLocale()
{
$this->assertEquals(null, Locale::requestLocale());
unset($_REQUEST['locale']);
$this->assertNull(Locale::requestLocale());
$_REQUEST['locale'] = 'en_US';
$this->assertEquals('en_US', Locale::requestLocale());
}
Expand Down

0 comments on commit cad3f91

Please sign in to comment.