Skip to content

Commit

Permalink
Abstract unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
slusarz committed Oct 2, 2014
1 parent 2930b3b commit 145507e
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 45 deletions.
91 changes: 67 additions & 24 deletions framework/Mail/test/Horde/Mail/AddressTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,40 +9,83 @@

class Horde_Mail_AddressTest extends PHPUnit_Framework_TestCase
{
public function testDomainMatch()
/**
* @dataProvider domainMatchProvider
*/
public function testDomainMatch($addr, $tests)
{
$address = new Horde_Mail_Rfc822_Address('Test <test@example.com>');

$this->assertTrue($address->matchDomain('example.com'));
$this->assertFalse($address->matchDomain('foo.example.com'));
$address = new Horde_Mail_Rfc822_Address($addr);

$address2 = new Horde_Mail_Rfc822_Address('Test <test@foo.example.com>');
$this->assertTrue($address2->matchDomain('example.com'));
$this->assertTrue($address2->matchDomain('foo.example.com'));

$address3 = new Horde_Mail_Rfc822_Address('Test <test@example.co.uk>');
$this->assertTrue($address3->matchDomain('example.co.uk'));
$this->assertFalse($address3->matchDomain('foo.example.co.uk'));
$this->assertTrue($address3->matchDomain('co.uk'));
foreach ($tests as $val) {
$match = $address->matchDomain($val[0]);
if ($val[1]) {
$this->assertTrue($match);
} else {
$this->assertFalse($match);
}
}
}

$address4 = new Horde_Mail_Rfc822_Address('Test <test@foo.example.co.uk>');
$this->assertTrue($address4->matchDomain('example.co.uk'));
$this->assertTrue($address4->matchDomain('foo.example.co.uk'));
$this->assertTrue($address4->matchDomain('co.uk'));
public function domainMatchProvider()
{
return array(
array(
'Test <test@example.com>',
array(
array('example.com', true),
array('foo.example.com', false)
)
),
array(
'Test <test@foo.example.com>',
array(
array('example.com', true),
array('foo.example.com', true)
)
),
array(
'Test <test@example.co.uk>',
array(
array('example.co.uk', true),
array('foo.example.co.uk', false),
array('co.uk', true)
)
),
array(
'Test <test@foo.example.co.uk>',
array(
array('example.co.uk', true),
array('foo.example.co.uk', true),
array('co.uk', true)
)
)
);
}

public function testPersonalIsSameAsEmail()
/**
* @dataProvider personalIsSameAsEmailProvider
*/
public function testPersonalIsSameAsEmail($addr, $expected)
{
$address = new Horde_Mail_Rfc822_Address('"test@example.com" <test@example.com>');
$address = new Horde_Mail_Rfc822_Address($addr);

$this->assertEquals(
'test@example.com',
$expected,
strval($address)
);
}

$address = new Horde_Mail_Rfc822_Address('"TEST@EXAMPLE.COM" <test@example.com>');
$this->assertEquals(
'test@example.com',
strval($address)
public function personalIsSameAsEmailProvider()
{
return array(
array(
'"test@example.com" <test@example.com>',
'test@example.com'
),
array(
'"TEST@EXAMPLE.COM" <test@example.com>',
'test@example.com'
)
);
}

Expand Down
48 changes: 27 additions & 21 deletions framework/Mail/test/Horde/Mail/GroupTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,35 +9,41 @@

class Horde_Mail_GroupTest extends PHPUnit_Framework_TestCase
{
public function testWriteAddress()
/**
* @dataProvider writeAddressProvider
*/
public function testWriteAddress($addresses, $groupname, $encode,
$expected)
{
$addresses = array(
'Test <test@example.com>',
'foo@example.com'
);
$groupname = 'Testing';

$group_ob = new Horde_Mail_Rfc822_Group($groupname, $addresses);

$this->assertEquals(
'Testing: Test <test@example.com>, foo@example.com;',
$group_ob->writeAddress()
$expected,
$group_ob->writeAddress(array('encode' => $encode))
);
}

public function testWriteAddressEncode()
public function writeAddressProvider()
{
$addresses = array(
'Fooã <test@example.com>',
'foo@example.com'
);
$groupname = 'Group "Foo"';

$group_ob = new Horde_Mail_Rfc822_Group($groupname, $addresses);

$this->assertEquals(
'"Group \"Foo\"": =?utf-8?b?Rm9vw6M=?= <test@example.com>, foo@example.com;',
$group_ob->writeAddress(array('encode' => true))
return array(
array(
array(
'Test <test@example.com>',
'foo@example.com'
),
'Testing',
false,
'Testing: Test <test@example.com>, foo@example.com;'
),
array(
array(
'Fooã <test@example.com>',
'foo@example.com'
),
'Group "Foo"',
true,
'"Group \"Foo\"": =?utf-8?b?Rm9vw6M=?= <test@example.com>, foo@example.com;'
)
);
}

Expand Down

0 comments on commit 145507e

Please sign in to comment.