Skip to content

Commit

Permalink
Add testing for Nonascii data format objects
Browse files Browse the repository at this point in the history
  • Loading branch information
slusarz committed Aug 12, 2014
1 parent 10a8223 commit 3dcee36
Show file tree
Hide file tree
Showing 9 changed files with 377 additions and 218 deletions.
1 change: 1 addition & 0 deletions framework/Imap_Client/doc/Horde/Imap/Client/UPGRADING
Expand Up @@ -14,6 +14,7 @@ This lists the API changes between releases of the package.
Upgrading to 2.25.0
===================

- Horde_Imap_Client_Data_Format_Astring_Nonascii
- Horde_Imap_Client_Data_Format_Nstring_Nonascii
- Horde_Imap_Client_Data_Format_String_Nonascii

Expand Down
14 changes: 14 additions & 0 deletions framework/Imap_Client/package.xml
Expand Up @@ -276,13 +276,23 @@
<file name="ImapTest.php" role="test" />
</dir> <!-- /test/Horde/Imap/Client/Data/Capability -->
<dir name="Format">
<dir name="Astring">
<file name="NonasciiTest.php" role="test" />
</dir> <!-- /test/Horde/Imap/Client/Data/Format/Astring -->
<dir name="Mailbox">
<file name="ListMailboxTest.php" role="test" />
<file name="ListMailboxUtf8Test.php" role="test" />
<file name="MailboxTest.php" role="test" />
<file name="MailboxUtf8Test.php" role="test" />
<file name="TestBase.php" role="test" />
</dir> <!-- /test/Horde/Imap/Client/Data/Format/Mailbox -->
<dir name="Nstring">
<file name="NonasciiTest.php" role="test" />
</dir> <!-- /test/Horde/Imap/Client/Data/Format/Nstring -->
<dir name="String">
<file name="NonasciiTest.php" role="test" />
<file name="TestBase.php" role="test" />
</dir> <!-- /test/Horde/Imap/Client/Data/Format/String -->
<file name="AstringTest.php" role="test" />
<file name="AtomTest.php" role="test" />
<file name="DateTest.php" role="test" />
Expand Down Expand Up @@ -640,11 +650,15 @@
<install as="Horde/Imap/Client/Data/Format/NumberTest.php" name="test/Horde/Imap/Client/Data/Format/NumberTest.php" />
<install as="Horde/Imap/Client/Data/Format/StringTest.php" name="test/Horde/Imap/Client/Data/Format/StringTest.php" />
<install as="Horde/Imap/Client/Data/Format/TestBase.php" name="test/Horde/Imap/Client/Data/Format/TestBase.php" />
<install as="Horde/Imap/Client/Data/Format/Astring/NonasciiTest.php" name="test/Horde/Imap/Client/Data/Format/Astring/NonasciiTest.php" />
<install as="Horde/Imap/Client/Data/Format/Mailbox/ListMailboxTest.php" name="test/Horde/Imap/Client/Data/Format/Mailbox/ListMailboxTest.php" />
<install as="Horde/Imap/Client/Data/Format/Mailbox/ListMailboxUtf8Test.php" name="test/Horde/Imap/Client/Data/Format/Mailbox/ListMailboxUtf8Test.php" />
<install as="Horde/Imap/Client/Data/Format/Mailbox/MailboxTest.php" name="test/Horde/Imap/Client/Data/Format/Mailbox/MailboxTest.php" />
<install as="Horde/Imap/Client/Data/Format/Mailbox/MailboxUtf8Test.php" name="test/Horde/Imap/Client/Data/Format/Mailbox/MailboxUtf8Test.php" />
<install as="Horde/Imap/Client/Data/Format/Mailbox/TestBase.php" name="test/Horde/Imap/Client/Data/Format/Mailbox/TestBase.php" />
<install as="Horde/Imap/Client/Data/Format/Nstring/NonasciiTest.php" name="test/Horde/Imap/Client/Data/Format/Nstring/NonasciiTest.php" />
<install as="Horde/Imap/Client/Data/Format/String/NonasciiTest.php" name="test/Horde/Imap/Client/Data/Format/String/NonasciiTest.php" />
<install as="Horde/Imap/Client/Data/Format/String/TestBase.php" name="test/Horde/Imap/Client/Data/Format/String/TestBase.php" />
<install as="Horde/Imap/Client/fixtures/bug_10503.txt" name="test/Horde/Imap/Client/fixtures/bug_10503.txt" />
<install as="Horde/Imap/Client/fixtures/remote1.txt" name="test/Horde/Imap/Client/fixtures/remote1.txt" />
<install as="Horde/Imap/Client/fixtures/remote2.txt" name="test/Horde/Imap/Client/fixtures/remote2.txt" />
Expand Down
@@ -0,0 +1,38 @@
<?php
/**
* Copyright 2011-2014 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
*
* @category Horde
* @copyright 2011-2014 Horde LLC
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Imap_Client
* @subpackage UnitTests
*/

/**
* Tests for the Astring/Nonascii data format object.
*
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @copyright 2011-2014 Horde LLC
* @ignore
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Imap_Client
* @subpackage UnitTests
*/
class Horde_Imap_Client_Data_Format_Astring_NonasciiTest
extends Horde_Imap_Client_Data_Format_AstringTest
{
protected $cname = 'Horde_Imap_Client_Data_Format_Astring_Nonascii';

public function nonasciiInputProvider()
{
return array(
array(true)
);
}

}
Expand Up @@ -24,27 +24,18 @@
* @subpackage UnitTests
*/
class Horde_Imap_Client_Data_Format_AstringTest
extends Horde_Imap_Client_Data_Format_TestBase
extends Horde_Imap_Client_Data_Format_String_TestBase
{
protected $cname = 'Horde_Imap_Client_Data_Format_Astring';

protected function getTestObs()
{
return array(
new Horde_Imap_Client_Data_Format_Astring('Foo'),
new Horde_Imap_Client_Data_Format_Astring('Foo('),
new $this->cname('Foo'),
new $this->cname('Foo('),
/* This is an invalid atom, but valid (non-quoted) astring. */
new Horde_Imap_Client_Data_Format_Astring('Foo]'),
new Horde_Imap_Client_Data_Format_Astring('')
);
}

/**
* @dataProvider stringRepresentationProvider
*/
public function testStringRepresentation($ob, $expected)
{
$this->assertEquals(
$expected,
strval($ob)
new $this->cname('Foo]'),
new $this->cname('')
);
}

Expand All @@ -58,17 +49,6 @@ public function stringRepresentationProvider()
));
}

/**
* @dataProvider escapeProvider
*/
public function testEscape($ob, $expected)
{
$this->assertEquals(
$expected,
$ob->escape()
);
}

public function escapeProvider()
{
return $this->createProviderArray(array(
Expand All @@ -79,41 +59,29 @@ public function escapeProvider()
));
}

/**
* @dataProvider obsProvider
*/
public function testVerify($ob)
{
// Don't throw Exception
$ob->verify();
}

/**
* @dataProvider obsProvider
*/
public function testBinary($ob)
public function verifyProvider()
{
$this->assertFalse($ob->binary());
return $this->createProviderArray(array(
true,
true,
true,
true
));
}

/**
* @dataProvider obsProvider
*/
public function testLiteral($ob)
public function binaryProvider()
{
$this->assertFalse($ob->literal());
return $this->createProviderArray(array(
false,
false,
false,
false
));
}

/**
* @dataProvider quotedProvider
*/
public function testQuoted($ob, $expected)
public function literalProvider()
{
if ($expected) {
$this->assertTrue($ob->quoted());
} else {
$this->assertFalse($ob->quoted());
}
return $this->binaryProvider();
}

public function quotedProvider()
Expand All @@ -126,17 +94,6 @@ public function quotedProvider()
));
}

/**
* @dataProvider escapeStreamProvider
*/
public function testEscapeStream($ob, $expected)
{
$this->assertEquals(
$expected,
stream_get_contents($ob->escapeStream(), -1, 0)
);
}

public function escapeStreamProvider()
{
return $this->createProviderArray(array(
Expand All @@ -147,4 +104,11 @@ public function escapeStreamProvider()
));
}

public function nonasciiInputProvider()
{
return array(
array(false)
);
}

}
@@ -0,0 +1,38 @@
<?php
/**
* Copyright 2011-2014 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
*
* @category Horde
* @copyright 2011-2014 Horde LLC
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Imap_Client
* @subpackage UnitTests
*/

/**
* Tests for the Nstring/Nonascii data format object.
*
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @copyright 2011-2014 Horde LLC
* @ignore
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Imap_Client
* @subpackage UnitTests
*/
class Horde_Imap_Client_Data_Format_Nstring_NonasciiTest
extends Horde_Imap_Client_Data_Format_NstringTest
{
protected $cname = 'Horde_Imap_Client_Data_Format_Nstring_Nonascii';

public function nonasciiInputProvider()
{
return array(
array(true)
);
}

}

0 comments on commit 3dcee36

Please sign in to comment.