Compare commits

..

5 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
Michele Locati 758a77525b [1.x] Fix result of isValid when DNS lookup fails and strict is false (#172)
* Fix result of isValid when DNS lookup fails and strict is false

* Fix TravisCI for PHP 5.3

* Fix tests (isValid now returns false in case of errors in MX DNS lookups)

* Cache composer files

* Run TravisCI tests for PHP 7.1 and 7.2

* Use the PHPUnit installed by composer, not the system one

* Cache only composer packages, not their metadata
2018-09-25 22:59:41 +02:00
12 changed files with 71 additions and 1121 deletions
+2
View File
@@ -1,2 +1,4 @@
.idea
composer.lock
report/
vendor/
+8
View File
@@ -0,0 +1,8 @@
filter:
excluded_paths:
- 'documentation/*'
- 'tests/*'
tools:
external_code_coverage:
runs: 1
+24 -22
View File
@@ -1,35 +1,37 @@
sudo: false
language: php
php:
- 5.3
- 5.4
- 5.5
- 5.6
- 7.0
- hhvm
env:
global:
- deps=high
matrix:
fast_finish: true
include:
- php: 5.3
dist: precise
env: deps=low
- php: 5.3
dist: precise
- php: 5.4
env: deps=no
dist: trusty
- 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:
- if [ "$deps" = "no" ]; then composer install; fi
- if [ "$deps" = "low" ]; then composer update --prefer-lowest; fi
- if [ "$deps" = "high" ]; then composer update; fi
- if [ "$deps" = "low" ]; then composer update --prefer-lowest; else composer install; fi
before_script:
- mkdir -p build/logs
script:
- mkdir -p build/logs
- phpunit --coverage-clover build/logs/clover.xml
- vendor/bin/phpunit --coverage-clover build/logs/clover.xml
after_script:
- php vendor/bin/coveralls
+8 -10
View File
@@ -2,27 +2,25 @@
"name": "egulias/email-validator",
"description": "A library for validating emails",
"homepage": "https://github.com/egulias/EmailValidator",
"type": "Library",
"keywords": ["email", "validation", "validator", "emailvalidation", "emailvalidator"],
"license": "MIT",
"authors": [
{"name": "Eduardo Gulias Davis"}
],
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"require": {
"php": ">= 5.3.3",
"require": {
"php": ">=5.3.3",
"doctrine/lexer": "^1.0.1"
},
"require-dev" : {
"phpunit/phpunit": "^4.8.24"
"require-dev": {
"satooshi/php-coveralls": "^1.0.1",
"phpunit/phpunit": "^4.8.36|^7.5.15"
},
"autoload": {
"psr-0": {
"Egulias\\": "src/"
}
},
"scripts": {
"test": "phpunit"
}
}
Generated
-1078
View File
File diff suppressed because it is too large Load Diff
-1
View File
@@ -8,7 +8,6 @@
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
bootstrap="tests/bootstrap.php"
>
<testsuites>
+15 -1
View File
@@ -77,10 +77,22 @@ class EmailLexer extends AbstractLexer
protected $previous;
private static $nullToken = array(
'value' => '',
'type' => null,
'position' => 0,
);
public function __construct()
{
$this->previous = $this->token = self::$nullToken;
}
public function reset()
{
$this->hasInvalidTokens = false;
parent::reset();
$this->previous = $this->token = self::$nullToken;
}
public function hasInvalidTokens()
@@ -122,8 +134,10 @@ class EmailLexer extends AbstractLexer
public function moveNext()
{
$this->previous = $this->token;
$hasNext = parent::moveNext();
$this->token = $this->token ?: self::$nullToken;
return parent::moveNext();
return $hasNext;
}
/**
@@ -133,7 +133,7 @@ class EmailValidator implements EmailValidatorInterface
return false;
}
return ($strict ? (!$this->hasWarnings() && !$dnsProblemExists) : true);
return !($dnsProblemExists || $strict && $this->hasWarnings());
}
/**
@@ -141,7 +141,7 @@ class DomainPart extends Parser
$domain .= $this->lexer->token['value'];
$this->lexer->moveNext();
} while ($this->lexer->token);
} while (null !== $this->lexer->token['type']);
return $domain;
}
@@ -13,9 +13,12 @@ class LocalPart extends Parser
$closingQuote = false;
$openedParenthesis = 0;
while ($this->lexer->token['type'] !== EmailLexer::S_AT && $this->lexer->token) {
if ($this->lexer->token['type'] === EmailLexer::S_DOT && !$this->lexer->getPrevious()) {
throw new \InvalidArgumentException('ERR_DOT_START');
while ($this->lexer->token['type'] !== EmailLexer::S_AT && null !== $this->lexer->token['type']) {
if ($this->lexer->token['type'] === EmailLexer::S_DOT) {
$previous = $this->lexer->getPrevious();
if (null === $previous['type']) {
throw new \InvalidArgumentException('ERR_DOT_START');
}
}
$closingQuote = $this->checkDQUOTE($closingQuote);
@@ -78,7 +81,7 @@ class LocalPart extends Parser
$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;
if (isset($special[$this->lexer->token['type']]) && $setSpecialsWarning) {
$this->warnings[] = EmailValidator::CFWS_FWS;
@@ -3,8 +3,9 @@
namespace Egulias\EmailValidator\Tests;
use Egulias\EmailValidator\EmailLexer;
use PHPUnit\Framework\TestCase;
class EmailLexerTests extends \PHPUnit_Framework_TestCase
class EmailLexerTests extends TestCase
{
public function testLexerExtendsLib()
@@ -3,8 +3,9 @@
namespace Egulias\Tests\EmailValidator;
use Egulias\EmailValidator\EmailValidator;
use PHPUnit\Framework\TestCase;
class EmailValidatorTest extends \PHPUnit_Framework_TestCase
class EmailValidatorTest extends TestCase
{
protected $validator;
@@ -180,7 +181,7 @@ class EmailValidatorTest extends \PHPUnit_Framework_TestCase
*/
public function testValidEmailsWithWarningsCheck($warnings, $email)
{
$this->assertTrue($this->validator->isValid($email, true));
$this->assertFalse($this->validator->isValid($email, true));
$this->assertEquals($warnings, $this->validator->getWarnings());
}