Compare commits

..

4 Commits

Author SHA1 Message Date
Graham Campbell 19674b35a0 Update .gitignore (#224) 2020-04-11 14:59:45 +02:00
Michele Locati 92fd7ea285 Fix PHP 7.4 support for 1.x (#206) 2019-12-30 09:17:06 +01:00
Graham Campbell 0d6268fde5 [1.2] PHP 7.4 Support (#222)
* Fixes

* Backport PHP 7.4 support from 2.x

Co-Authored-By: mlocati <michele@locati.it>

* Added php-coveralls

Co-authored-by: Michele Locati <michele@locati.it>
2019-12-30 09:16:03 +01:00
Michele Locati e7dacfc97f Fix TravisCI for 1.x (#207)
* Fix TravisCI for 1.x

* Use --ignore-platform-reqs for PHP Nightly

* Move code coverage job to 1st position

So that Scrutinizer receives data as soon as possible
2019-08-08 08:36:44 +02:00
11 changed files with 64 additions and 1125 deletions
+2
View File
@@ -1,2 +1,4 @@
.idea
composer.lock
report/ report/
vendor/ vendor/
+8
View File
@@ -0,0 +1,8 @@
filter:
excluded_paths:
- 'documentation/*'
- 'tests/*'
tools:
external_code_coverage:
runs: 1
+22 -28
View File
@@ -1,43 +1,37 @@
sudo: false
language: php language: php
cache:
directories:
- $HOME/.composer/cache/files
php:
- 5.4
- 5.5
- 5.6
- 7.0
- 7.1
- 7.2
- hhvm
env:
global:
- deps=high
matrix: matrix:
fast_finish: true
include: include:
- php: 5.3 - php: 5.3
dist: precise dist: precise
env: deps=low
- php: 5.3 - php: 5.3
dist: precise dist: precise
env: deps=low
- php: 5.4 - php: 5.4
env: deps=no dist: trusty
- php: 5.5 - php: 5.5
env: deps=no dist: trusty
- php: 5.6
dist: xenial
- php: 7.0
dist: xenial
- php: 7.1
dist: bionic
- php: 7.2
dist: bionic
- php: 7.3
dist: bionic
- php: 7.4
dist: bionic
install: install:
- if [ "$deps" = "no" ]; then composer install; fi - if [ "$deps" = "low" ]; then composer update --prefer-lowest; else composer install; fi
- if [ "$deps" = "low" ]; then composer update --prefer-lowest; fi
- if [ "$deps" = "high" ]; then composer update; fi before_script:
- mkdir -p build/logs
script: script:
- mkdir -p build/logs - vendor/bin/phpunit --coverage-clover build/logs/clover.xml
- composer test -- --coverage-clover build/logs/clover.xml
after_script:
- php vendor/bin/coveralls
+5 -10
View File
@@ -2,23 +2,18 @@
"name": "egulias/email-validator", "name": "egulias/email-validator",
"description": "A library for validating emails", "description": "A library for validating emails",
"homepage": "https://github.com/egulias/EmailValidator", "homepage": "https://github.com/egulias/EmailValidator",
"type": "Library",
"keywords": ["email", "validation", "validator", "emailvalidation", "emailvalidator"], "keywords": ["email", "validation", "validator", "emailvalidation", "emailvalidator"],
"license": "MIT", "license": "MIT",
"authors": [ "authors": [
{"name": "Eduardo Gulias Davis"} {"name": "Eduardo Gulias Davis"}
], ],
"extra": { "require": {
"branch-alias": { "php": ">=5.3.3",
"dev-master": "2.0.x-dev"
}
},
"require": {
"php": ">= 5.3.3",
"doctrine/lexer": "^1.0.1" "doctrine/lexer": "^1.0.1"
}, },
"require-dev" : { "require-dev": {
"phpunit/phpunit": "^4.8.24" "satooshi/php-coveralls": "^1.0.1",
"phpunit/phpunit": "^4.8.36|^7.5.15"
}, },
"autoload": { "autoload": {
"psr-0": { "psr-0": {
Generated
-1078
View File
File diff suppressed because it is too large Load Diff
-1
View File
@@ -8,7 +8,6 @@
convertWarningsToExceptions="true" convertWarningsToExceptions="true"
processIsolation="false" processIsolation="false"
stopOnFailure="false" stopOnFailure="false"
syntaxCheck="false"
bootstrap="tests/bootstrap.php" bootstrap="tests/bootstrap.php"
> >
<testsuites> <testsuites>
+15 -1
View File
@@ -77,10 +77,22 @@ class EmailLexer extends AbstractLexer
protected $previous; protected $previous;
private static $nullToken = array(
'value' => '',
'type' => null,
'position' => 0,
);
public function __construct()
{
$this->previous = $this->token = self::$nullToken;
}
public function reset() public function reset()
{ {
$this->hasInvalidTokens = false; $this->hasInvalidTokens = false;
parent::reset(); parent::reset();
$this->previous = $this->token = self::$nullToken;
} }
public function hasInvalidTokens() public function hasInvalidTokens()
@@ -122,8 +134,10 @@ class EmailLexer extends AbstractLexer
public function moveNext() public function moveNext()
{ {
$this->previous = $this->token; $this->previous = $this->token;
$hasNext = parent::moveNext();
$this->token = $this->token ?: self::$nullToken;
return parent::moveNext(); return $hasNext;
} }
/** /**
@@ -141,7 +141,7 @@ class DomainPart extends Parser
$domain .= $this->lexer->token['value']; $domain .= $this->lexer->token['value'];
$this->lexer->moveNext(); $this->lexer->moveNext();
} while ($this->lexer->token); } while (null !== $this->lexer->token['type']);
return $domain; return $domain;
} }
@@ -13,9 +13,12 @@ class LocalPart extends Parser
$closingQuote = false; $closingQuote = false;
$openedParenthesis = 0; $openedParenthesis = 0;
while ($this->lexer->token['type'] !== EmailLexer::S_AT && $this->lexer->token) { while ($this->lexer->token['type'] !== EmailLexer::S_AT && null !== $this->lexer->token['type']) {
if ($this->lexer->token['type'] === EmailLexer::S_DOT && !$this->lexer->getPrevious()) { if ($this->lexer->token['type'] === EmailLexer::S_DOT) {
throw new \InvalidArgumentException('ERR_DOT_START'); $previous = $this->lexer->getPrevious();
if (null === $previous['type']) {
throw new \InvalidArgumentException('ERR_DOT_START');
}
} }
$closingQuote = $this->checkDQUOTE($closingQuote); $closingQuote = $this->checkDQUOTE($closingQuote);
@@ -78,7 +81,7 @@ class LocalPart extends Parser
$this->lexer->moveNext(); $this->lexer->moveNext();
while ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE && $this->lexer->token) { while ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE && null !== $this->lexer->token['type']) {
$parseAgain = false; $parseAgain = false;
if (isset($special[$this->lexer->token['type']]) && $setSpecialsWarning) { if (isset($special[$this->lexer->token['type']]) && $setSpecialsWarning) {
$this->warnings[] = EmailValidator::CFWS_FWS; $this->warnings[] = EmailValidator::CFWS_FWS;
@@ -3,8 +3,9 @@
namespace Egulias\EmailValidator\Tests; namespace Egulias\EmailValidator\Tests;
use Egulias\EmailValidator\EmailLexer; use Egulias\EmailValidator\EmailLexer;
use PHPUnit\Framework\TestCase;
class EmailLexerTests extends \PHPUnit_Framework_TestCase class EmailLexerTests extends TestCase
{ {
public function testLexerExtendsLib() public function testLexerExtendsLib()
@@ -3,8 +3,9 @@
namespace Egulias\Tests\EmailValidator; namespace Egulias\Tests\EmailValidator;
use Egulias\EmailValidator\EmailValidator; use Egulias\EmailValidator\EmailValidator;
use PHPUnit\Framework\TestCase;
class EmailValidatorTest extends \PHPUnit_Framework_TestCase class EmailValidatorTest extends TestCase
{ {
protected $validator; protected $validator;