Skip to content
This repository was archived by the owner on May 2, 2023. It is now read-only.

Commit 0c34a4a

Browse files
committed
Add PHP 8.0 compatibility, fix iterating JSArray
Due to the usage of each() in JSArray::valid() the internal array pointer would be advanced every time valid was called. This resulted in every odd element to be skipped (e.g. 1st, 3rd, 5th...) when iterating.
1 parent a88bc44 commit 0c34a4a

File tree

10 files changed

+65
-26
lines changed

10 files changed

+65
-26
lines changed

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
tests:
1111
strategy:
1212
matrix:
13-
php-versions: ['7.3', '7.4']
13+
php-versions: ['7.3', '7.4', '8.0', '8.1']
1414

1515
runs-on: ubuntu-latest
1616

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/.phpunit.cache
2+
/composer.lock
3+
/vendor

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"php": ">=5.3.0"
1515
},
1616
"require-dev": {
17-
"phpunit/phpunit": "~4"
17+
"phpunit/phpunit": "^9.5.21"
1818
},
1919
"autoload": {
2020
"psr-0": {

phpunit.xml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd"
4+
bootstrap="vendor/autoload.php"
5+
cacheResultFile=".phpunit.cache/test-results"
6+
executionOrder="depends,defects"
7+
beStrictAboutCoversAnnotation="true"
8+
beStrictAboutOutputDuringTests="true"
9+
beStrictAboutTodoAnnotatedTests="true"
10+
convertDeprecationsToExceptions="true"
11+
failOnRisky="true"
12+
failOnWarning="true"
13+
verbose="true">
14+
<testsuites>
15+
<testsuite name="default">
16+
<directory>tests</directory>
17+
</testsuite>
18+
</testsuites>
19+
20+
<coverage cacheDirectory=".phpunit.cache/code-coverage"
21+
processUncoveredFiles="true">
22+
<include>
23+
<directory suffix=".php">src</directory>
24+
</include>
25+
</coverage>
26+
</phpunit>

phpunit.xml.dist

Lines changed: 0 additions & 18 deletions
This file was deleted.

src/vierbergenlars/LibJs/JSArray.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ public function rewind()
194194

195195
public function valid()
196196
{
197-
return each($this->array)!== false;
197+
return key($this->array) !== null;
198198
}
199199

200200
public function valueOf()

tests/JSArrayTest.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace vierbergenlars\SemVer\Tests;
4+
5+
use PHPUnit\Framework\TestCase;
6+
use vierbergenlars\LibJs\JSArray;
7+
use vierbergenlars\LibJs\JString;
8+
9+
/**
10+
* @copyright ResearchGate GmbH
11+
*/
12+
class JSArrayTest extends TestCase
13+
{
14+
15+
public function testIterableJSArray()
16+
{
17+
$jsArray = new JSArray(array('1.0.0', '2.0.0'));
18+
$versions = array();
19+
foreach ($jsArray as $version) {
20+
$versions[] = $version;
21+
}
22+
23+
$this->assertEquals(array(new JString('1.0.0'), new JString('2.0.0')), $versions);
24+
}
25+
}

tests/RegressionTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
namespace vierbergenlars\SemVer\Tests;
44

5+
use PHPUnit\Framework\TestCase;
56
use vierbergenlars\SemVer;
67

7-
class RegressionTest extends \PHPUnit_Framework_TestCase
8+
class RegressionTest extends TestCase
89
{
910
public function testBug23()
1011
{

tests/SemVerTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
namespace vierbergenlars\SemVer\Tests\Internal;
44

5+
use PHPUnit\Framework\TestCase;
56
use vierbergenlars\SemVer\Internal as SemVer;
67

7-
class SemVerTest extends \PHPUnit_Framework_TestCase
8+
class SemVerTest extends TestCase
89
{
910
public function testComparison()
1011
{

tests/VersionTest.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
namespace vierbergenlars\SemVer\Tests;
44

5+
use PHPUnit\Framework\TestCase;
56
use vierbergenlars\SemVer;
67

7-
class VersionTest extends \PHPUnit_Framework_TestCase
8+
class VersionTest extends TestCase
89
{
910
public function testKeepSimpleversion()
1011
{
@@ -238,19 +239,19 @@ public function testNotSatisfiedBy()
238239

239240
/**
240241
* @dataProvider invalidSemanticVersionProvider
241-
* @expectedException \vierbergenlars\SemVer\SemVerException
242242
*/
243243
public function testInvalidExpressionString($version)
244244
{
245+
$this->expectException(SemVer\SemVerException::class);
245246
new SemVer\expression($version);
246247
}
247248

248249
/**
249250
* @dataProvider invalidSemanticVersionProvider
250-
* @expectedException \vierbergenlars\SemVer\SemVerException
251251
*/
252252
public function testInvalidVersionString($version)
253253
{
254+
$this->expectException(SemVer\SemVerException::class);
254255
new SemVer\version($version);
255256
}
256257

0 commit comments

Comments
 (0)