1<?php 2 3/** 4 * Created by IntelliJ IDEA. 5 * User: clay 6 * Date: 8/23/15 7 * Time: 6:01 PM 8 */ 9 10require("../SpamLogger.php"); 11 12class LoggerTest extends PHPUnit_Framework_TestCase 13{ 14 15 public function testLogFileIsCurrentYearMonth() 16 { 17 $logger = new SpamLogger("/tmp"); 18 19 $expected = "StopForumSpam-" . date("Y-m") . ".csv"; 20 21 $this->assertEquals($expected, $logger->logfile); 22 } 23 24 public function testNewLogFileHasColumnHeaders() 25 { 26 $logger = new SpamLogger("/tmp"); 27 28 $logfile = $logger->logdir . "/" . $logger->logfile; 29 $logger->LogAttempt("bogus", "bogus@fake.org", "192.168.1.1", "test", 11.0, false); 30 31 $contents = file($logfile); 32 $this->assertEquals("DATE,USERNAME,EMAIL,IP,TRIGGER,CONFIDENCE,ACCEPTED", trim($contents[0])); 33 } 34 35 public function testLoggedRecordCanBeReadAsCSV() 36 { 37 $logger = new SpamLogger("/tmp"); 38 $logfile = $logger->logdir . "/" . $logger->logfile; 39 if (file_exists($logfile)) { 40 unlink($logfile); 41 } 42 $logger->LogAttempt("bogus", "bogus@fake.org", "192.168.1.1", "test", 11.0, false); 43 44 $fd = fopen($logfile, "r"); 45 $line = fgetcsv($fd); 46 $line = fgetcsv($fd); 47 48 $this->assertEquals("bogus", $line[1]); 49 $this->assertEquals("bogus@fake.org", $line[2]); 50 $this->assertEquals("192.168.1.1", $line[3]); 51 $this->assertEquals("test", $line[4]); 52 $this->assertEquals("11.0", $line[5]); 53 $this->assertEquals("rejected", $line[6]); 54 55 } 56} 57