/** * Test de la méthode tokenVerif() */ public function testTokenVerif() { $_SESSION = array(); $this->mock->setIdForm('test'); $token = $this->mock->tokenCreate(); $_POST['token'] = $token; $this->boolean($this->mock->tokenVerif())->isTrue(); //Test avec la limite des 15 minutes dépassé $token = $this->mock->tokenCreate(); $_POST['token'] = $token; $date = $_SESSION['token']['test']['date']; $date = new \BFW\Date($date); $date->modify('-30 minutes'); $_SESSION['token']['test']['date'] = $date->getDate(); $this->boolean($this->mock->tokenVerif())->isFalse(); //Test avec un mauvais token $this->mock->tokenCreate(); $_POST['token'] = 'test'; $this->boolean($this->mock->tokenVerif())->isFalse(); }
/** * Rotate log file * * @return mixed : archive file path if rotation has been done, false otherwise * @throws Exception : if we can't overwrite log file or if we can't copy it */ public function rotate() { // Get Sql timestamp $date = new \BFW\Date(); $ts = strtr($date->getSql(false), array(':' => '', ' ' => '_')); // Extract raw file name and path plus extension $dotPos = strpos($this->logFile, '.'); $rawFile = substr($this->logFile, 0, $dotPos); $extFile = substr($this->logFile, $dotPos + 1); $archiveFile = $rawFile . '_' . $ts . '.' . $extFile; if (copy($this->logFile, $archiveFile)) { // If we can't overwrite the file, we throw an exception if (file_put_contents($this->logFile, '') === false) { throw new Exception('Impossible d\'écraser le fichier : ' . $this->logFile); } else { return $archiveFile; } } else { throw new Exception('Impossible de créer le fichier : ' . $archiveFile . ', copie du fichier : ' . $this->logFile); } return false; }
/** * Permet de logger une information. En temps normal il s'agit d'écrire ligne par ligne. * Si le fichier indiqué n'existe pas, il est créé, sinon c'est ajouté à la fin du fichier. * * @param string $file : Le lien vers le fichier * @param string $txt : La ligne de texte à écrire * @param boolean $date : (default: true) Si à true, la date est ajouté au début de la ligne. Si false elle n'est pas mise. */ function logfile($file, $txt, $date = true) { if ($date === true) { $date = new \BFW\Date(); $dateTxt = $date->getJour() . '-' . $date->getMois() . '-' . $date->getAnnee() . ' ' . $date->getHeure() . ':' . $date->getMinute() . ':' . $date->getSeconde(); $txt = '[' . $dateTxt . '] ' . $txt; } try { file_put_contents($file, rtrim($txt) . "\n", FILE_APPEND); } catch (\Exception $e) { echo '<br/>Impossible d\'écrire dans le fichier : ' . $file . '<br/>'; } }