Setup unit tests
This commit is contained in:
parent
e00b208d4a
commit
38b08719da
2
.gitignore
vendored
2
.gitignore
vendored
@ -58,4 +58,4 @@ config.php
|
|||||||
!controllers/*
|
!controllers/*
|
||||||
rules/*.php
|
rules/*.php
|
||||||
data/favicons/*.*
|
data/favicons/*.*
|
||||||
/nbproject/private/
|
/nbproject/private/
|
||||||
|
18
.travis.yml
18
.travis.yml
@ -1,10 +1,16 @@
|
|||||||
language: php
|
language: php
|
||||||
|
sudo: false
|
||||||
|
|
||||||
php:
|
php:
|
||||||
- '5.4'
|
- 7.0
|
||||||
- '5.5'
|
- 5.6
|
||||||
- '5.6'
|
- 5.5
|
||||||
|
- 5.4
|
||||||
|
- 5.3
|
||||||
- hhvm
|
- hhvm
|
||||||
|
|
||||||
install:
|
before_script:
|
||||||
- composer install
|
- composer install
|
||||||
|
|
||||||
|
script:
|
||||||
|
- phpunit -c tests/phpunit.unit.xml
|
||||||
|
@ -2,6 +2,37 @@
|
|||||||
|
|
||||||
namespace Helper;
|
namespace Helper;
|
||||||
|
|
||||||
|
// Get the real IP address of the connected user
|
||||||
|
function get_ip_address()
|
||||||
|
{
|
||||||
|
$keys = array(
|
||||||
|
'HTTP_X_REAL_IP',
|
||||||
|
'HTTP_CLIENT_IP',
|
||||||
|
'HTTP_X_FORWARDED_FOR',
|
||||||
|
'HTTP_X_FORWARDED',
|
||||||
|
'HTTP_X_CLUSTER_CLIENT_IP',
|
||||||
|
'HTTP_FORWARDED_FOR',
|
||||||
|
'HTTP_FORWARDED',
|
||||||
|
'REMOTE_ADDR'
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($keys as $key) {
|
||||||
|
$value = get_server_variable($key);
|
||||||
|
if ($value !== '') {
|
||||||
|
foreach (explode(',', $value) as $ip_address) {
|
||||||
|
return trim($ip_address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return t('Unknown');
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_server_variable($variable)
|
||||||
|
{
|
||||||
|
return isset($_SERVER[$variable]) ? $_SERVER[$variable] : '';
|
||||||
|
}
|
||||||
|
|
||||||
function is_secure_connection()
|
function is_secure_connection()
|
||||||
{
|
{
|
||||||
return ! empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off';
|
return ! empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off';
|
||||||
|
@ -369,37 +369,3 @@ function get_user_agent()
|
|||||||
{
|
{
|
||||||
return empty($_SERVER['HTTP_USER_AGENT']) ? t('Unknown') : $_SERVER['HTTP_USER_AGENT'];
|
return empty($_SERVER['HTTP_USER_AGENT']) ? t('Unknown') : $_SERVER['HTTP_USER_AGENT'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the real IP address of the connected user
|
|
||||||
function get_ip_address($only_public = false)
|
|
||||||
{
|
|
||||||
$keys = array(
|
|
||||||
'HTTP_CLIENT_IP',
|
|
||||||
'HTTP_X_FORWARDED_FOR',
|
|
||||||
'HTTP_X_FORWARDED',
|
|
||||||
'HTTP_X_CLUSTER_CLIENT_IP',
|
|
||||||
'HTTP_FORWARDED_FOR',
|
|
||||||
'HTTP_FORWARDED',
|
|
||||||
'REMOTE_ADDR'
|
|
||||||
);
|
|
||||||
|
|
||||||
foreach ($keys as $key) {
|
|
||||||
if (isset($_SERVER[$key])) {
|
|
||||||
foreach (explode(',', $_SERVER[$key]) as $ip_address) {
|
|
||||||
$ip_address = trim($ip_address);
|
|
||||||
|
|
||||||
if ($only_public) {
|
|
||||||
|
|
||||||
// Return only public IP address
|
|
||||||
if (filter_var($ip_address, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) {
|
|
||||||
return $ip_address;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return $ip_address;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return t('Unknown');
|
|
||||||
}
|
|
||||||
|
@ -6,6 +6,7 @@ use SimpleValidator\Validator;
|
|||||||
use SimpleValidator\Validators;
|
use SimpleValidator\Validators;
|
||||||
use PicoDb\Database;
|
use PicoDb\Database;
|
||||||
use Session;
|
use Session;
|
||||||
|
use Helper;
|
||||||
use Model\Config;
|
use Model\Config;
|
||||||
use Model\RememberMe;
|
use Model\RememberMe;
|
||||||
use Model\Database as DatabaseModel;
|
use Model\Database as DatabaseModel;
|
||||||
@ -61,7 +62,7 @@ function validate_login(array $values)
|
|||||||
|
|
||||||
// Setup the remember me feature
|
// Setup the remember me feature
|
||||||
if (! empty($values['remember_me'])) {
|
if (! empty($values['remember_me'])) {
|
||||||
$cookie = RememberMe\create(DatabaseModel\select(), $values['username'], Config\get_ip_address(), Config\get_user_agent());
|
$cookie = RememberMe\create(DatabaseModel\select(), $values['username'], Helper\get_ip_address(), Config\get_user_agent());
|
||||||
RememberMe\write_cookie($cookie['token'], $cookie['sequence'], $cookie['expiration']);
|
RememberMe\write_cookie($cookie['token'], $cookie['sequence'], $cookie['expiration']);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<phpunit bootstrap="tests/integration/minifluxTestCase.php" >
|
<phpunit bootstrap="tests/integration/minifluxTestCase.php" colors="true">
|
||||||
<php>
|
<php>
|
||||||
<const name="DB_FILENAME" value="unittest.sqlite" />
|
<const name="DB_FILENAME" value="unittest.sqlite" />
|
||||||
<const name="PHPUNIT_TESTSUITE_EXTENSION_SELENIUM_BASEURL" value="http://localhost/miniflux/" />
|
<const name="PHPUNIT_TESTSUITE_EXTENSION_SELENIUM_BASEURL" value="http://localhost/miniflux/" />
|
||||||
@ -28,14 +28,13 @@
|
|||||||
<listeners>
|
<listeners>
|
||||||
<listener class="PHPUnit_Extensions_Selenium2TestCase_ScreenshotListener">
|
<listener class="PHPUnit_Extensions_Selenium2TestCase_ScreenshotListener">
|
||||||
<arguments>
|
<arguments>
|
||||||
<string>./tests/</string>
|
<string>./integration/</string>
|
||||||
</arguments>
|
</arguments>
|
||||||
</listener>
|
</listener>
|
||||||
</listeners>
|
</listeners>
|
||||||
<testsuites>
|
<testsuites>
|
||||||
<testsuite name="Miniflux">
|
<testsuite name="Miniflux">
|
||||||
<directory>tests/</directory>
|
<directory>integration/</directory>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
</testsuites>
|
</testsuites>
|
||||||
|
|
||||||
</phpunit>
|
</phpunit>
|
10
tests/phpunit.unit.xml
Normal file
10
tests/phpunit.unit.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<phpunit stopOnError="true" stopOnFailure="true" colors="true">
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="Miniflux Unit Tests">
|
||||||
|
<directory>unit</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
<php>
|
||||||
|
<const name="DB_FILENAME" value=":memory:" />
|
||||||
|
</php>
|
||||||
|
</phpunit>
|
8
tests/unit/BaseTest.php
Normal file
8
tests/unit/BaseTest.php
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once __DIR__.'/../../vendor/autoload.php';
|
||||||
|
|
||||||
|
abstract class BaseTest extends PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
13
tests/unit/HelperTest.php
Normal file
13
tests/unit/HelperTest.php
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class HelperTest extends PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
public function testGetIpAddress()
|
||||||
|
{
|
||||||
|
$_SERVER = array('HTTP_X_REAL_IP' => '127.0.0.1');
|
||||||
|
$this->assertEquals('127.0.0.1', Helper\get_ip_address());
|
||||||
|
|
||||||
|
$_SERVER = array('HTTP_FORWARDED_FOR' => ' 127.0.0.1, 192.168.0.1');
|
||||||
|
$this->assertEquals('127.0.0.1', Helper\get_ip_address());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user