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