Skip to content
This repository has been archived by the owner on Jan 12, 2024. It is now read-only.

Commit

Permalink
Merge pull request #47 from xparse/add-php-8
Browse files Browse the repository at this point in the history
Add php8 support
  • Loading branch information
funivan authored Apr 27, 2021
2 parents dedde4f + d52a51c commit c52a017
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 23 deletions.
6 changes: 5 additions & 1 deletion .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ['7.2', '7.3', '7.4']
php-versions: ['7.3', '7.4', '8.0']
package-stability: ['stable', 'alpha']
name: PHP ${{ matrix.php-versions }}
steps:
- name: Checkout
Expand All @@ -28,6 +29,9 @@ jobs:
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Configure stability
run: composer config minimum-stability ${{ matrix.package-stability }}
- name: Install dependencies
run: composer install --prefer-dist --dev

Expand Down
14 changes: 7 additions & 7 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@
"name": "xparse/css-expression-translator",
"description": "Translate css to xpath",
"keywords": [],
"homepage": "https://github.com/",
"homepage": "https://github.com/xparse/CssExpressionTranslator",
"license": "MIT",
"authors": [
{
"name": "funivan",
"email": "dev@funivan.com",
"name": "Ivan Shcherbak @funivan",
"email": "alotofall@gmail.com",
"homepage": "http://funivan.com",
"role": "Developer"
}
],
"require": {
"php": ">=7.1",
"xparse/expression-translator": "0.0.*",
"symfony/css-selector": "^3.0"
"php": "^7.1 || ^8.0",
"symfony/css-selector": "^3.0",
"xparse/expression-translator": "0.0.*"
},
"require-dev": {
"phpunit/phpunit": "^7.0"
"phpunit/phpunit": "^9.3"
},
"autoload": {
"psr-4": {
Expand Down
4 changes: 2 additions & 2 deletions src/CssExpressionTranslator.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ public function convertToXpath(string $expression): string
foreach (explode(', ', $expression) as $part) {
preg_match('!(.+) (@.+|.+\(\))$!', $part, $matchExpression);
if (!array_key_exists(2, $matchExpression)) {
$xpathExpression[] = parent::toXPath($part);
$xpathExpression[] = $this->toXPath($part);
} else {
$xpathExpression[] = parent::toXPath($matchExpression[1]) . '/' . $matchExpression[2];
$xpathExpression[] = $this->toXPath($matchExpression[1]) . '/' . $matchExpression[2];
}
}
return implode(' | ', $xpathExpression);
Expand Down
2 changes: 1 addition & 1 deletion src/CssOrXpathExpressionTranslator.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class CssOrXpathExpressionTranslator implements ExpressionTranslatorInterface
{

/**
* @var ExpressionTranslatorInterface
* @var ?ExpressionTranslatorInterface
*/
private static $translator;

Expand Down
2 changes: 1 addition & 1 deletion tests/CssExpressionTranslatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class CssExpressionTranslatorTest extends TestCase
{

/**
* @return array
* @return string[][]
*/
final public function getConvertWithAttributesDataProvider(): array
{
Expand Down
17 changes: 6 additions & 11 deletions tests/CssOrXpathExpressionTranslatorTest.php
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
<?php
declare(strict_types=1);

namespace Tests\Atl\Http\Parser;
namespace Xparse\CssExpressionTranslator\Test;

use InvalidArgumentException;
use PHPUnit\Framework\TestCase;
use Xparse\CssExpressionTranslator\CssOrXpathExpressionTranslator;

Expand All @@ -13,7 +14,7 @@ final class CssOrXpathExpressionTranslatorTest extends TestCase
{

/**
* @return array
* @return string[][]
*/
public function getQueriesDataProvider(): array
{
Expand Down Expand Up @@ -97,26 +98,20 @@ public function testQueries(string $input, string $expect): void
{
$output = CssOrXpathExpressionTranslator::getTranslator()
->convertToXpath($input);
static::assertEquals($expect, $output);
self::assertEquals($expect, $output);
}


/**
* @expectedException \InvalidArgumentException
*/
public function testEmptyString(): void
{
/** @noinspection UnusedFunctionResultInspection */
self::expectException(InvalidArgumentException::class);
CssOrXpathExpressionTranslator::getTranslator()->convertToXpath('');
}


/**
* @expectedException \InvalidArgumentException
*/
public function testEmptyStringWithSpaces(): void
{
/** @noinspection UnusedFunctionResultInspection */
self::expectException(InvalidArgumentException::class);
CssOrXpathExpressionTranslator::getTranslator()->convertToXpath(' ');
}

Expand Down

0 comments on commit c52a017

Please sign in to comment.