diff --git a/.coveralls.yml b/.coveralls.yml deleted file mode 100644 index 9160059..0000000 --- a/.coveralls.yml +++ /dev/null @@ -1 +0,0 @@ -service_name: travis-ci diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..ddf8b8d --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,29 @@ +name: Test +on: [push, pull_request] +jobs: + test: + name: Test PHP ${{ matrix.php-version }} + runs-on: ubuntu-latest + strategy: + matrix: + php-version: ['5.3', '5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0'] + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + - name: PHP Version + run: php --version + - name: Composer Version + run: composer --version + - name: Install Dependencies + run: COMPOSER_MEMORY_LIMIT=-1 composer install + - name: Run Tests + run: vendor/bin/phpunit --coverage-clover ./coverage.xml + - name: Upload Coverage + if: ${{ matrix.php-version == '7.4' }} + uses: codecov/codecov-action@v1 + with: + file: ./coverage.xml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 36d3649..0000000 --- a/.travis.yml +++ /dev/null @@ -1,40 +0,0 @@ -language: php -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: nightly - -install: - - php --version - - composer install - -before_script: - - mkdir -p build/logs - -script: - - vendor/bin/phpunit --coverage-clover build/logs/clover.xml - -after_success: - - | - if [[ $COVERAGE ]]; then - travis_retry php vendor/bin/php-coveralls --config .coveralls.yml -v - fi diff --git a/LICENSE b/LICENSE index 22de71d..be2bff2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Josh Sherman +Copyright (c) 2012-2014 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 diff --git a/composer.json b/composer.json index 87ebba0..ed5854c 100644 --- a/composer.json +++ b/composer.json @@ -1,33 +1,26 @@ { - "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/" + "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": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^9.0" + }, + "autoload": { + "psr-4": {"joshtronic\\": "src/"} + }, + "autoload-dev": { + "psr-4": {"joshtronic\\Tests\\": "tests/"} } - } } diff --git a/phpunit.xml b/phpunit.xml index 6eaac53..82cbb00 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,6 +1,7 @@ - + tests diff --git a/src/ProjectHoneyPot.php b/src/ProjectHoneyPot.php index 7d7098c..a82b243 100644 --- a/src/ProjectHoneyPot.php +++ b/src/ProjectHoneyPot.php @@ -9,7 +9,7 @@ * Redistribution of these files must retain the above copyright notice. * * @author Josh Sherman - * @copyright Copyright 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Josh Sherman + * @copyright Copyright 2012-2015, 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,8 +55,6 @@ 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 @@ -124,7 +122,7 @@ class ProjectHoneyPot /** * DNS Get Record * - * Wrapper method for dns_get_record() to allow fo easy mocking of the + * Wrapper method for dns_get_record() to allow for easy mocking of the * results in our tests. Takes an already reversed IP address and does a * DNS lookup for A records against the http:BL API. * diff --git a/tests/ProjectHoneyPotTest.php b/tests/ProjectHoneyPotTest.php index d0db202..9c5e103 100644 --- a/tests/ProjectHoneyPotTest.php +++ b/tests/ProjectHoneyPotTest.php @@ -1,53 +1,22 @@ 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() { - $threw = false; - try { - new joshtronic\ProjectHoneyPot('foo'); - } catch (Exception $e) { - $threw = true; - - $this->assertEquals( - 'You must specify a valid API key.', - $e->getMessage(), - ); + new ProjectHoneyPot('foo'); + } catch (\Exception $e) { + $this->assertSame('You must specify a valid API key.', $e->getMessage()); } - - $this->assertTrue($threw); } public function testInvalidIP() { - $object = new joshtronic\ProjectHoneyPot('foobarfoobar'); + $object = new ProjectHoneyPot('foobarfoobar'); $this->assertEquals( array('error' => 'Invalid IP address.'), @@ -55,103 +24,78 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase ); } - /** - * @depends testCreateMock - */ - public function testMissingResults($createMock) + public function testMissingResults() { - $mock = $this->$createMock('joshtronic\ProjectHoneyPot'); + $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot') + ->setConstructorArgs(array('foobarfoobar')) + ->setMethods(array('dns_get_record')) + ->getMock(); - $mock - ->expects($this->once()) - ->method('dns_get_record') - ->with($this->equalTo('4.3.2.1')) - ->will($this->returnValue('foo')); + $mock->expects($this->once()) + ->method('dns_get_record') + ->will($this->returnValue('foo')); - var_dump($mock->query('1.2.3.4')); - - $this->assertNull($mock->query('1.2.3.4')); - // $this->assertFalse($mock->query('1.2.3.4')); + $this->assertFalse($mock->query('1.2.3.4')); } - /** - * @depends testCreateMock - */ - public function testCategory0($createMock) + public function testCategory0() { - $mock = $this->$createMock( - 'joshtronic\ProjectHoneyPot', - array('dns_get_record'), - array('foobarfoobar') - ); + $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot') + ->setConstructorArgs(array('foobarfoobar')) + ->setMethods(array('dns_get_record')) + ->getMock(); - $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']); } - /** - * @depends testCreateMock - */ - public function testCategory1($createMock) + public function testCategory1() { - $mock = $this->$createMock( - 'joshtronic\ProjectHoneyPot', - array('dns_get_record'), - array('foobarfoobar') - ); + $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot') + ->setConstructorArgs(array('foobarfoobar')) + ->setMethods(array('dns_get_record')) + ->getMock(); - $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']); } - /** - * @depends testCreateMock - */ - public function testCategory2($createMock) + public function testCategory2() { - $mock = $this->$createMock( - 'joshtronic\ProjectHoneyPot', - array('dns_get_record'), - array('foobarfoobar') - ); + $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot') + ->setConstructorArgs(array('foobarfoobar')) + ->setMethods(array('dns_get_record')) + ->getMock(); - $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']); } - /** - * @depends testCreateMock - */ - public function testCategory3($createMock) + public function testCategory3() { - $mock = $this->$createMock( - 'joshtronic\ProjectHoneyPot', - array('dns_get_record'), - array('foobarfoobar') - ); + $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot') + ->setConstructorArgs(array('foobarfoobar')) + ->setMethods(array('dns_get_record')) + ->getMock(); - $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'); @@ -161,21 +105,16 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase ); } - /** - * @depends testCreateMock - */ - public function testCategory4($createMock) + public function testCategory4() { - $mock = $this->$createMock( - 'joshtronic\ProjectHoneyPot', - array('dns_get_record'), - array('foobarfoobar') - ); + $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot') + ->setConstructorArgs(array('foobarfoobar')) + ->setMethods(array('dns_get_record')) + ->getMock(); - $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'); @@ -185,21 +124,16 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase ); } - /** - * @depends testCreateMock - */ - public function testCategory5($createMock) + public function testCategory5() { - $mock = $this->$createMock( - 'joshtronic\ProjectHoneyPot', - array('dns_get_record'), - array('foobarfoobar') - ); + $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot') + ->setConstructorArgs(array('foobarfoobar')) + ->setMethods(array('dns_get_record')) + ->getMock(); - $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'); @@ -209,21 +143,16 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase ); } - /** - * @depends testCreateMock - */ - public function testCategory6($createMock) + public function testCategory6() { - $mock = $this->$createMock( - 'joshtronic\ProjectHoneyPot', - array('dns_get_record'), - array('foobarfoobar') - ); + $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot') + ->setConstructorArgs(array('foobarfoobar')) + ->setMethods(array('dns_get_record')) + ->getMock(); - $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'); @@ -233,21 +162,16 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase ); } - /** - * @depends testCreateMock - */ - public function testCategory7($createMock) + public function testCategory7() { - $mock = $this->$createMock( - 'joshtronic\ProjectHoneyPot', - array('dns_get_record'), - array('foobarfoobar') - ); + $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot') + ->setConstructorArgs(array('foobarfoobar')) + ->setMethods(array('dns_get_record')) + ->getMock(); - $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'); @@ -257,21 +181,16 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase ); } - /** - * @depends testCreateMock - */ - public function testCategoryDefault($createMock) + public function testCategoryDefault() { - $mock = $this->$createMock( - 'joshtronic\ProjectHoneyPot', - array('dns_get_record'), - array('foobarfoobar') - ); + $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot') + ->setConstructorArgs(array('foobarfoobar')) + ->setMethods(array('dns_get_record')) + ->getMock(); - $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'); @@ -281,21 +200,16 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase ); } - /** - * @depends testCreateMock - */ - public function testWithout127($createMock) + public function testWithout127() { - $mock = $this->$createMock( - 'joshtronic\ProjectHoneyPot', - array('dns_get_record'), - array('foobarfoobar') - ); + $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot') + ->setConstructorArgs(array('foobarfoobar')) + ->setMethods(array('dns_get_record')) + ->getMock(); - $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')); } @@ -303,9 +217,11 @@ class ProjectHoneyPotTest extends PHPUnit_Framework_TestCase // Doesn't serve much purpose aside from helping achieve 100% coverage public function testDnsGetRecord() { - $object = new joshtronic\ProjectHoneyPot('foobarfoobar'); + $object = new ProjectHoneyPot('foobarfoobar'); - $object->dns_get_record('1.2.3.4'); + $result = $object->dns_get_record('1.2.3.4'); + + $this->assertEquals(array(), $result); } }