Fixes bug in serendipity_serverOffsetHour (cp. http://board.s9y.org/viewtopic.php?f=3&t=19963) and adds test case
This commit is contained in:
parent
b515c7f050
commit
becf99ad1f
1
.gitignore
vendored
1
.gitignore
vendored
@ -15,3 +15,4 @@ plugins/additional_plugins*
|
||||
.DS_Store
|
||||
.editorconfig
|
||||
*.git
|
||||
tests/phpunit.xml
|
||||
|
@ -62,7 +62,7 @@ function serendipity_gzCompression() {
|
||||
function serendipity_serverOffsetHour($timestamp = null, $negative = false) {
|
||||
global $serendipity;
|
||||
|
||||
if ($timestamp == null) {
|
||||
if ($timestamp === null) {
|
||||
$timestamp = time();
|
||||
}
|
||||
|
||||
|
2
tests/bootstrap.php
Normal file
2
tests/bootstrap.php
Normal file
@ -0,0 +1,2 @@
|
||||
<?php
|
||||
define('S9Y_INCLUDE_PATH', dirname(__FILE__) . '/../');
|
73
tests/include/functionsTest.php
Normal file
73
tests/include/functionsTest.php
Normal file
@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
$serendipity['dbType'] = 'pdo-sqlite';
|
||||
require_once dirname(__FILE__) . '/../../include/functions.inc.php';
|
||||
|
||||
/**
|
||||
* Class functionsTest
|
||||
*/
|
||||
class functionsTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* @test
|
||||
* @dataProvider serverOffsetHourDataProvider
|
||||
*/
|
||||
public function test_serendipity_serverOffsetHour($serverOffsetHours, $timestamp, $negative, $expected)
|
||||
{
|
||||
global $serendipity;
|
||||
$serendipity['serverOffsetHours'] = $serverOffsetHours;
|
||||
$result = serendipity_serverOffsetHour($timestamp, $negative);
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function serverOffsetHourDataProvider()
|
||||
{
|
||||
return array(
|
||||
array(0, 0, false, 0),
|
||||
array(0, 0, true, 0),
|
||||
array(0, 960793800, false, 960793800),
|
||||
array(0, 960793800, true, 960793800),
|
||||
array(10, 0, false, 36000),
|
||||
array(10, 0, true, -36000),
|
||||
array(10, 960793800, false, 960829800),
|
||||
array(10, 960793800, true, 960757800),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @dataProvider serverOffsetHourWithTimestampNullDataProvider
|
||||
*/
|
||||
public function test_serendipity_serverOffsetHourWithTimestampNull($serverOffsetHours, $negative)
|
||||
{
|
||||
global $serendipity;
|
||||
$now = time();
|
||||
$serendipity['serverOffsetHours'] = $serverOffsetHours;
|
||||
$result = serendipity_serverOffsetHour(null, $negative);
|
||||
if ($serverOffsetHours > 0) {
|
||||
if ($negative) {
|
||||
$this->assertGreaterThanOrEqual($now - ($serverOffsetHours * 3600), $result);
|
||||
} else {
|
||||
$this->assertGreaterThan($now - ($serverOffsetHours * 3600), $result);
|
||||
}
|
||||
} else {
|
||||
$this->assertGreaterThanOrEqual($now, $result);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function serverOffsetHourWithTimestampNullDataProvider()
|
||||
{
|
||||
return array(
|
||||
array(null, false),
|
||||
array(null, true),
|
||||
array(10, false),
|
||||
array(10, true),
|
||||
);
|
||||
}
|
||||
}
|
28
tests/phpunit.xml.dist
Normal file
28
tests/phpunit.xml.dist
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<phpunit bootstrap="bootstrap.php"
|
||||
backupGlobals="true"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
colors="true">
|
||||
<php>
|
||||
<const name="IN_serendipity" value="true"/>
|
||||
<!--<const name="IS_installed" value="true"/>-->
|
||||
<!--<const name="USERLEVEL_ADMIN" value="255"/>-->
|
||||
<!--<const name="USERLEVEL_CHIEF" value="1"/>-->
|
||||
<!--<const name="USERLEVEL_EDITOR" value="0"/>-->
|
||||
<!--<const name="DB_DSN" value="sqlite:dbname=s9y_test;host=localhost" />-->
|
||||
<!--<const name="DB_HOST" value="localhost" />-->
|
||||
<!--<const name="DB_TYPE" value="pdo-sqlite" />-->
|
||||
<!--<const name="DB_USER" value="s9y_test" />-->
|
||||
<!--<const name="DB_PASSWD" value="s9y_test" />-->
|
||||
<!--<const name="DB_DBNAME" value="s9y_test" />-->
|
||||
<!--<const name="TEST_DB" value="test.db" />-->
|
||||
<!--<const name="PATH_SMARTY_COMPILE" value="templates_c" />-->
|
||||
</php>
|
||||
<testsuites>
|
||||
<testsuite name="include">
|
||||
<directory>../tests/include</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
</phpunit>
|
Loading…
x
Reference in New Issue
Block a user