Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: CI

on:
push:
branches: [ main, master, develop ]
branches: [ main, master, develop, 2.2 ]
pull_request:
branches: [ main, master, develop ]
branches: [ main, master, develop, 2.2 ]

jobs:
tests:
Expand Down
7 changes: 5 additions & 2 deletions tests/ParseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,11 @@ public function testParseEmailAddresses()
// Check if test specifies use_whitespace_as_separator option
$useWhitespaceAsSeparator = $test['use_whitespace_as_separator'] ?? true;

// Configure Parse to support both comma and semicolon as separators
$options = new ParseOptions(['%', '!'], [',', ';'], $useWhitespaceAsSeparator);
// Check if test specifies custom separators
$separators = $test['separators'] ?? [',', ';'];

// Configure Parse to support configured separators
$options = new ParseOptions(['%', '!'], $separators, $useWhitespaceAsSeparator);
$parser = new Parse(null, $options);

$this->assertSame($result, $parser->parse($emails, $multiple));
Expand Down
198 changes: 198 additions & 0 deletions tests/testspec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1715,3 +1715,201 @@
ip: ''
invalid: false
invalid_reason: null
-
emails: 'john@example.com;jane@example.com'
multiple: true
separators: [',']
use_whitespace_as_separator: false
result:
success: false
reason: 'Invalid email address'
email_addresses:
-
address: ''
simple_address: ''
original_address: 'john@example.com;jane@example.com'
name: ''
name_parsed: ''
local_part: john
local_part_parsed: john
domain_part: 'example.com'
domain: 'example.com'
ip: ''
invalid: true
invalid_reason: 'Invalid character found in domain of email address (please put in quotes if needed): '';'''
-
emails: 'john@example.com, jane@example.com'
multiple: true
separators: [';']
use_whitespace_as_separator: false
result:
success: false
reason: 'Invalid email address'
email_addresses:
-
address: ''
simple_address: ''
original_address: 'john@example.com, jane@example.com'
name: ''
name_parsed: ''
local_part: john
local_part_parsed: john
domain_part: 'example.com'
domain: 'example.com'
ip: ''
invalid: true
invalid_reason: 'Invalid character found in domain of email address (please put in quotes if needed): '','''
-
emails: 'john@example.com, jane@example.com'
multiple: true
separators: [',']
result:
success: true
reason: null
email_addresses:
-
address: john@example.com
simple_address: john@example.com
original_address: john@example.com
name: ''
name_parsed: ''
local_part: john
local_part_parsed: john
domain_part: example.com
domain: example.com
ip: ''
invalid: false
invalid_reason: null
-
address: jane@example.com
simple_address: jane@example.com
original_address: jane@example.com
name: ''
name_parsed: ''
local_part: jane
local_part_parsed: jane
domain_part: example.com
domain: example.com
ip: ''
invalid: false
invalid_reason: null
-
emails: 'john@example.com; jane@example.com'
multiple: true
separators: [';']
result:
success: true
reason: null
email_addresses:
-
address: john@example.com
simple_address: john@example.com
original_address: john@example.com
name: ''
name_parsed: ''
local_part: john
local_part_parsed: john
domain_part: example.com
domain: example.com
ip: ''
invalid: false
invalid_reason: null
-
address: jane@example.com
simple_address: jane@example.com
original_address: jane@example.com
name: ''
name_parsed: ''
local_part: jane
local_part_parsed: jane
domain_part: example.com
domain: example.com
ip: ''
invalid: false
invalid_reason: null
-
emails: '"Smith, John" <john@example.com>'
multiple: true
result:
success: true
reason: null
email_addresses:
-
address: '"Smith, John" <john@example.com>'
simple_address: john@example.com
original_address: '"Smith, John" <john@example.com>'
name: '"Smith, John"'
name_parsed: 'Smith, John'
local_part: john
local_part_parsed: john
domain_part: example.com
domain: example.com
ip: ''
invalid: false
invalid_reason: null
-
emails: '"Smith, John" <john@example.com>, "Doe, Jane" <jane@example.com>'
multiple: true
result:
success: true
reason: null
email_addresses:
-
address: '"Smith, John" <john@example.com>'
simple_address: john@example.com
original_address: '"Smith, John" <john@example.com>'
name: '"Smith, John"'
name_parsed: 'Smith, John'
local_part: john
local_part_parsed: john
domain_part: example.com
domain: example.com
ip: ''
invalid: false
invalid_reason: null
-
address: '"Doe, Jane" <jane@example.com>'
simple_address: jane@example.com
original_address: '"Doe, Jane" <jane@example.com>'
name: '"Doe, Jane"'
name_parsed: 'Doe, Jane'
local_part: jane
local_part_parsed: jane
domain_part: example.com
domain: example.com
ip: ''
invalid: false
invalid_reason: null
-
emails: 'Smith, John <john@example.com>'
multiple: true
result:
success: false
reason: 'Invalid email address'
email_addresses:
-
address: ''
simple_address: ''
original_address: Smith
name: ''
name_parsed: ''
local_part: ''
local_part_parsed: ''
domain_part: ''
domain: ''
ip: ''
invalid: true
invalid_reason: 'Misplaced separator or missing "@" symbol'
-
address: 'John <john@example.com>'
simple_address: john@example.com
original_address: 'John <john@example.com>'
name: John
name_parsed: John
local_part: john
local_part_parsed: john
domain_part: example.com
domain: example.com
ip: ''
invalid: false
invalid_reason: null