Skip to content

Commit

Permalink
Use data providers for data format tests
Browse files Browse the repository at this point in the history
  • Loading branch information
slusarz committed Aug 12, 2014
1 parent 9a943ea commit b6e2754
Show file tree
Hide file tree
Showing 10 changed files with 508 additions and 448 deletions.
6 changes: 4 additions & 2 deletions framework/Imap_Client/package.xml
Expand Up @@ -10,7 +10,7 @@
<email>slusarz@horde.org</email>
<active>yes</active>
</lead>
<date>2014-08-11</date>
<date>2014-08-12</date>
<version>
<release>2.24.3</release>
<api>2.24.0</api>
Expand Down Expand Up @@ -280,6 +280,7 @@
<file name="NstringTest.php" role="test" />
<file name="NumberTest.php" role="test" />
<file name="StringTest.php" role="test" />
<file name="TestBase.php" role="test" />
</dir> <!-- /test/Horde/Imap/Client/Data/Format -->
<file name="CapabilityTest.php" role="test" />
<file name="SearchCharsetTest.php" role="test" />
Expand Down Expand Up @@ -622,6 +623,7 @@
<install as="Horde/Imap/Client/Data/Format/NstringTest.php" name="test/Horde/Imap/Client/Data/Format/NstringTest.php" />
<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/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" />
Expand Down Expand Up @@ -2601,7 +2603,7 @@
<stability>
<release>stable</release>
<api>stable</api></stability>
<date>2014-08-11</date>
<date>2014-08-12</date>
<license uri="http://www.horde.org/licenses/lgpl21">LGPL-2.1</license>
<notes>
*
Expand Down
Expand Up @@ -24,124 +24,127 @@
* @subpackage UnitTests
*/
class Horde_Imap_Client_Data_Format_AstringTest
extends PHPUnit_Framework_TestCase
extends Horde_Imap_Client_Data_Format_TestBase
{
private $ob;
private $ob2;
private $ob3;
private $ob4;

public function setUp()
protected function getTestObs()
{
$this->ob = new Horde_Imap_Client_Data_Format_Astring('Foo');
$this->ob2 = new Horde_Imap_Client_Data_Format_Astring('Foo(');
/* This is an invalid atom, but valid (non-quoted) astring. */
$this->ob3 = new Horde_Imap_Client_Data_Format_Astring('Foo]');
$this->ob4 = new Horde_Imap_Client_Data_Format_Astring('');
return array(
new Horde_Imap_Client_Data_Format_Astring('Foo'),
new Horde_Imap_Client_Data_Format_Astring('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('')
);
}

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

$this->assertEquals(
public function stringRepresentationProvider()
{
return $this->createProviderArray(array(
'Foo',
'Foo(',
strval($this->ob2)
);

$this->assertEquals(
'Foo]',
strval($this->ob3)
);
''
));
}

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

public function testEscape()
public function escapeProvider()
{
$this->assertEquals(
return $this->createProviderArray(array(
'Foo',
$this->ob->escape()
);

// Require quoting
$this->assertEquals(
'"Foo("',
$this->ob2->escape()
);

$this->assertEquals(
'Foo]',
$this->ob3->escape()
);

/* Empty string should be quoted. */
$this->assertEquals(
'""',
$this->ob4->escape()
);
'""'
));
}

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

public function testBinary()
/**
* @dataProvider obsProvider
*/
public function testBinary($ob)
{
$this->assertFalse($this->ob->binary());
$this->assertFalse($this->ob2->binary());
$this->assertFalse($this->ob3->binary());
$this->assertFalse($this->ob4->binary());
$this->assertFalse($ob->binary());
}

public function testLiteral()
/**
* @dataProvider obsProvider
*/
public function testLiteral($ob)
{
$this->assertFalse($this->ob->literal());
$this->assertFalse($this->ob2->literal());
$this->assertFalse($this->ob3->literal());
$this->assertFalse($this->ob4->literal());
$this->assertFalse($ob->literal());
}

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

public function testEscapeStream()
public function quotedProvider()
{
$this->assertEquals(
'"Foo"',
stream_get_contents($this->ob->escapeStream(), -1, 0)
);
return $this->createProviderArray(array(
false,
true,
false,
true
));
}

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

$this->assertEquals(
public function escapeStreamProvider()
{
return $this->createProviderArray(array(
'"Foo"',
'"Foo("',
'"Foo]"',
stream_get_contents($this->ob3->escapeStream(), -1, 0)
);

$this->assertEquals(
'""',
stream_get_contents($this->ob4->escapeStream(), -1, 0)
);
'""'
));
}

}

0 comments on commit b6e2754

Please sign in to comment.