Compare commits
7 commits
master
...
developmen
Author | SHA1 | Date | |
---|---|---|---|
932e2ca800 | |||
6a70fd2f26 | |||
5a9b6ec5c8 | |||
ddfe2b126a | |||
ba8f480f5e | |||
5d7000bf8a | |||
ac0903530a |
7 changed files with 229 additions and 100 deletions
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
composer.lock
|
||||
composer.phar
|
||||
.phpunit.result.cache
|
||||
/vendor/
|
38
.travis.yml
38
.travis.yml
|
@ -1,26 +1,40 @@
|
|||
language: php
|
||||
|
||||
php:
|
||||
- 5.3
|
||||
- 5.4
|
||||
- 5.5
|
||||
- 5.6
|
||||
- hhvm
|
||||
- hhvm-nightly
|
||||
dist: bionic
|
||||
sudo: required
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- php: 5.3
|
||||
dist: precise
|
||||
- php: 5.4
|
||||
dist: trusty
|
||||
- php: 5.5
|
||||
dist: trusty
|
||||
- php: 5.6
|
||||
dist: trusty
|
||||
- php: 7.0
|
||||
dist: xenial
|
||||
- php: 7.1
|
||||
- php: 7.2
|
||||
- php: 7.3
|
||||
- php: 7.4
|
||||
env: COVERAGE=true
|
||||
- php: nightly
|
||||
allow_failures:
|
||||
- php: hhvm-nightly
|
||||
- php: nightly
|
||||
|
||||
install:
|
||||
- php --version
|
||||
- composer install
|
||||
|
||||
before_script:
|
||||
- mkdir -p build/logs
|
||||
- cd tests
|
||||
|
||||
script:
|
||||
- phpunit --colors --coverage-clover /home/travis/build/joshtronic/php-projecthoneypot/build/logs/clover.xml .
|
||||
- vendor/bin/phpunit --coverage-clover build/logs/clover.xml
|
||||
|
||||
after_success:
|
||||
- php ../vendor/bin/coveralls --config ../.coveralls.yml -v
|
||||
- |
|
||||
if [[ $COVERAGE ]]; then
|
||||
travis_retry php vendor/bin/php-coveralls --config .coveralls.yml -v
|
||||
fi
|
||||
|
|
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2012-2014 Josh Sherman
|
||||
Copyright (c) 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Josh Sherman
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
|
|
|
@ -1,23 +1,33 @@
|
|||
{
|
||||
"name": "joshtronic/php-projecthoneypot",
|
||||
"description": "PHP Wrapper for Project Honey Pot",
|
||||
"version": "1.0.0",
|
||||
"type": "library",
|
||||
"keywords": ["project", "honey", "pot", "api", "spam", "spammer"],
|
||||
"homepage": "https://github.com/joshtronic/php-projecthoneypot",
|
||||
"license": "MIT",
|
||||
"authors": [{
|
||||
"name": "Josh Sherman",
|
||||
"email": "hello@joshtronic.com",
|
||||
"homepage": "http://joshtronic.com"
|
||||
}],
|
||||
"require-dev": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"satooshi/php-coveralls": "dev-master"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {"joshtronic\\": "src/"}
|
||||
"name": "joshtronic/php-projecthoneypot",
|
||||
"description": "PHP Wrapper for Project Honey Pot",
|
||||
"version": "1.0.1",
|
||||
"type": "library",
|
||||
"keywords": [
|
||||
"project",
|
||||
"honey",
|
||||
"pot",
|
||||
"api",
|
||||
"spam",
|
||||
"spammer"
|
||||
],
|
||||
"homepage": "https://github.com/joshtronic/php-projecthoneypot",
|
||||
"license": "MIT",
|
||||
"authors": [{
|
||||
"name": "Josh Sherman",
|
||||
"email": "hello@joshtronic.com",
|
||||
"homepage": "https://joshtronic.com"
|
||||
}],
|
||||
"require": {
|
||||
"php": ">=5.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"php-coveralls/php-coveralls": ">=1",
|
||||
"phpunit/phpunit": ">=4"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"joshtronic\\": "src/"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
23
phpunit.xml
Normal file
23
phpunit.xml
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit
|
||||
colors="true"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
failOnRisky="true"
|
||||
stopOnError="true"
|
||||
stopOnFailure="true"
|
||||
stopOnIncomplete="true"
|
||||
verbose="true"
|
||||
>
|
||||
<testsuites>
|
||||
<testsuite name="Project Honey Pot">
|
||||
<directory>tests</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
<filter>
|
||||
<whitelist addUncoveredFilesFromWhitelist="true">
|
||||
<directory>./src</directory>
|
||||
</whitelist>
|
||||
</filter>
|
||||
</phpunit>
|
|
@ -9,7 +9,7 @@
|
|||
* Redistribution of these files must retain the above copyright notice.
|
||||
*
|
||||
* @author Josh Sherman <hello@joshtronic.com>
|
||||
* @copyright Copyright 2012-2015, Josh Sherman
|
||||
* @copyright Copyright 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Josh Sherman
|
||||
* @license http://www.opensource.org/licenses/mit-license.html
|
||||
* @link https://github.com/joshtronic/php-projecthoneypot
|
||||
* @link http://www.projecthoneypot.org/httpbl_configure.php
|
||||
|
@ -55,6 +55,8 @@ class ProjectHoneyPot
|
|||
*/
|
||||
public function query($ip_address)
|
||||
{
|
||||
var_Dump('ip addy', $ip_address, filter_var($ip_address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE));
|
||||
|
||||
// Validates the IP format
|
||||
if (filter_var($ip_address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)) {
|
||||
// Flips the script, err, IP address
|
||||
|
|
|
@ -1,16 +1,48 @@
|
|||
<?php
|
||||
require_once './src/ProjectHoneyPot.php';
|
||||
|
||||
require_once '../src/ProjectHoneyPot.php';
|
||||
if (
|
||||
!class_exists('\PHPUnit_Framework_TestCase')
|
||||
&& class_exists('\PHPUnit\Framework\TestCase')
|
||||
) {
|
||||
class_alias('\PHPUnit\Framework\TestCase', '\PHPUnit_Framework_TestCase');
|
||||
}
|
||||
|
||||
class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* @expectedException Exception
|
||||
* @expectedExceptionMessage You must specify a valid API key.
|
||||
*/
|
||||
public function testCreateMock()
|
||||
{
|
||||
$this->assertTrue(true);
|
||||
|
||||
if (
|
||||
method_exists('PHPUnit_Runner_Version','id')
|
||||
&& version_compare(PHPUnit_Runner_Version::id(), '5.4', '<=')
|
||||
) {
|
||||
return 'getMock';
|
||||
}
|
||||
|
||||
return 'createMock';
|
||||
}
|
||||
|
||||
// Due to version juggling, did this a bit more manually as the
|
||||
// declarations were being removed entirely and I wasn't sure which
|
||||
// versions supported the suggested methods.
|
||||
public function testInvalidKey()
|
||||
{
|
||||
new joshtronic\ProjectHoneyPot('foo');
|
||||
$threw = false;
|
||||
|
||||
try {
|
||||
new joshtronic\ProjectHoneyPot('foo');
|
||||
} catch (Exception $e) {
|
||||
$threw = true;
|
||||
|
||||
$this->assertEquals(
|
||||
'You must specify a valid API key.',
|
||||
$e->getMessage(),
|
||||
);
|
||||
}
|
||||
|
||||
$this->assertTrue($threw);
|
||||
}
|
||||
|
||||
public function testInvalidIP()
|
||||
|
@ -23,83 +55,103 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase
|
|||
);
|
||||
}
|
||||
|
||||
public function testMissingResults()
|
||||
/**
|
||||
* @depends testCreateMock
|
||||
*/
|
||||
public function testMissingResults($createMock)
|
||||
{
|
||||
$mock = $this->getMock(
|
||||
'joshtronic\ProjectHoneyPot',
|
||||
array('dns_get_record'),
|
||||
array('foobarfoobar')
|
||||
);
|
||||
$mock = $this->$createMock('joshtronic\ProjectHoneyPot');
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue('foo'));
|
||||
$mock
|
||||
->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->with($this->equalTo('4.3.2.1'))
|
||||
->will($this->returnValue('foo'));
|
||||
|
||||
$this->assertFalse($mock->query('1.2.3.4'));
|
||||
var_dump($mock->query('1.2.3.4'));
|
||||
|
||||
$this->assertNull($mock->query('1.2.3.4'));
|
||||
// $this->assertFalse($mock->query('1.2.3.4'));
|
||||
}
|
||||
|
||||
public function testCategory0()
|
||||
/**
|
||||
* @depends testCreateMock
|
||||
*/
|
||||
public function testCategory0($createMock)
|
||||
{
|
||||
$mock = $this->getMock(
|
||||
$mock = $this->$createMock(
|
||||
'joshtronic\ProjectHoneyPot',
|
||||
array('dns_get_record'),
|
||||
array('foobarfoobar')
|
||||
);
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.0'))));
|
||||
$mock
|
||||
->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.0'))));
|
||||
|
||||
$results = $mock->query('1.2.3.4');
|
||||
|
||||
$this->assertEquals(array('Search Engine'), $results['categories']);
|
||||
}
|
||||
|
||||
public function testCategory1()
|
||||
/**
|
||||
* @depends testCreateMock
|
||||
*/
|
||||
public function testCategory1($createMock)
|
||||
{
|
||||
$mock = $this->getMock(
|
||||
$mock = $this->$createMock(
|
||||
'joshtronic\ProjectHoneyPot',
|
||||
array('dns_get_record'),
|
||||
array('foobarfoobar')
|
||||
);
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.1'))));
|
||||
$mock
|
||||
->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.1'))));
|
||||
|
||||
$results = $mock->query('1.2.3.4');
|
||||
|
||||
$this->assertEquals(array('Suspicious'), $results['categories']);
|
||||
}
|
||||
|
||||
public function testCategory2()
|
||||
/**
|
||||
* @depends testCreateMock
|
||||
*/
|
||||
public function testCategory2($createMock)
|
||||
{
|
||||
$mock = $this->getMock(
|
||||
$mock = $this->$createMock(
|
||||
'joshtronic\ProjectHoneyPot',
|
||||
array('dns_get_record'),
|
||||
array('foobarfoobar')
|
||||
);
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.2'))));
|
||||
$mock
|
||||
->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.2'))));
|
||||
|
||||
$results = $mock->query('1.2.3.4');
|
||||
|
||||
$this->assertEquals(array('Harvester'), $results['categories']);
|
||||
}
|
||||
|
||||
public function testCategory3()
|
||||
/**
|
||||
* @depends testCreateMock
|
||||
*/
|
||||
public function testCategory3($createMock)
|
||||
{
|
||||
$mock = $this->getMock(
|
||||
$mock = $this->$createMock(
|
||||
'joshtronic\ProjectHoneyPot',
|
||||
array('dns_get_record'),
|
||||
array('foobarfoobar')
|
||||
);
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.3'))));
|
||||
$mock
|
||||
->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.3'))));
|
||||
|
||||
$results = $mock->query('1.2.3.4');
|
||||
|
||||
|
@ -109,17 +161,21 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase
|
|||
);
|
||||
}
|
||||
|
||||
public function testCategory4()
|
||||
/**
|
||||
* @depends testCreateMock
|
||||
*/
|
||||
public function testCategory4($createMock)
|
||||
{
|
||||
$mock = $this->getMock(
|
||||
$mock = $this->$createMock(
|
||||
'joshtronic\ProjectHoneyPot',
|
||||
array('dns_get_record'),
|
||||
array('foobarfoobar')
|
||||
);
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.4'))));
|
||||
$mock
|
||||
->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.4'))));
|
||||
|
||||
$results = $mock->query('1.2.3.4');
|
||||
|
||||
|
@ -129,17 +185,21 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase
|
|||
);
|
||||
}
|
||||
|
||||
public function testCategory5()
|
||||
/**
|
||||
* @depends testCreateMock
|
||||
*/
|
||||
public function testCategory5($createMock)
|
||||
{
|
||||
$mock = $this->getMock(
|
||||
$mock = $this->$createMock(
|
||||
'joshtronic\ProjectHoneyPot',
|
||||
array('dns_get_record'),
|
||||
array('foobarfoobar')
|
||||
);
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.5'))));
|
||||
$mock
|
||||
->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.5'))));
|
||||
|
||||
$results = $mock->query('1.2.3.4');
|
||||
|
||||
|
@ -149,17 +209,21 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase
|
|||
);
|
||||
}
|
||||
|
||||
public function testCategory6()
|
||||
/**
|
||||
* @depends testCreateMock
|
||||
*/
|
||||
public function testCategory6($createMock)
|
||||
{
|
||||
$mock = $this->getMock(
|
||||
$mock = $this->$createMock(
|
||||
'joshtronic\ProjectHoneyPot',
|
||||
array('dns_get_record'),
|
||||
array('foobarfoobar')
|
||||
);
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.6'))));
|
||||
$mock
|
||||
->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.6'))));
|
||||
|
||||
$results = $mock->query('1.2.3.4');
|
||||
|
||||
|
@ -169,17 +233,21 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase
|
|||
);
|
||||
}
|
||||
|
||||
public function testCategory7()
|
||||
/**
|
||||
* @depends testCreateMock
|
||||
*/
|
||||
public function testCategory7($createMock)
|
||||
{
|
||||
$mock = $this->getMock(
|
||||
$mock = $this->$createMock(
|
||||
'joshtronic\ProjectHoneyPot',
|
||||
array('dns_get_record'),
|
||||
array('foobarfoobar')
|
||||
);
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.7'))));
|
||||
$mock
|
||||
->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.7'))));
|
||||
|
||||
$results = $mock->query('1.2.3.4');
|
||||
|
||||
|
@ -189,17 +257,21 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase
|
|||
);
|
||||
}
|
||||
|
||||
public function testCategoryDefault()
|
||||
/**
|
||||
* @depends testCreateMock
|
||||
*/
|
||||
public function testCategoryDefault($createMock)
|
||||
{
|
||||
$mock = $this->getMock(
|
||||
$mock = $this->$createMock(
|
||||
'joshtronic\ProjectHoneyPot',
|
||||
array('dns_get_record'),
|
||||
array('foobarfoobar')
|
||||
);
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.255'))));
|
||||
$mock
|
||||
->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '127.0.0.255'))));
|
||||
|
||||
$results = $mock->query('1.2.3.4');
|
||||
|
||||
|
@ -209,17 +281,21 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase
|
|||
);
|
||||
}
|
||||
|
||||
public function testWithout127()
|
||||
/**
|
||||
* @depends testCreateMock
|
||||
*/
|
||||
public function testWithout127($createMock)
|
||||
{
|
||||
$mock = $this->getMock(
|
||||
$mock = $this->$createMock(
|
||||
'joshtronic\ProjectHoneyPot',
|
||||
array('dns_get_record'),
|
||||
array('foobarfoobar')
|
||||
);
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '1.0.0.0'))));
|
||||
$mock
|
||||
->expects($this->once())
|
||||
->method('dns_get_record')
|
||||
->will($this->returnValue(array(array('ip' => '1.0.0.0'))));
|
||||
|
||||
$this->assertFalse($mock->query('1.2.3.4'));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue