aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/extension/acp.php73
-rw-r--r--tests/extension/metadata_manager_test.php101
2 files changed, 107 insertions, 67 deletions
diff --git a/tests/extension/acp.php b/tests/extension/acp.php
index 78a770343b..790df77c0d 100644
--- a/tests/extension/acp.php
+++ b/tests/extension/acp.php
@@ -119,59 +119,40 @@ class acp_test extends phpbb_functional_test_case
{
$crawler = $this->request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=details&ext_name=foo&sid=' . $this->sid);
+ $validation = array(
+ 'DISPLAY_NAME' => 'phpBB Foo Extension',
+ 'CLEAN_NAME' => 'foo/example',
+ 'DESCRIPTION' => 'An example/sample extension to be used for testing purposes in phpBB Development.',
+ 'VERSION' => '1.0.0',
+ 'TIME' => '2012-02-15 01:01:01',
+ 'LICENCE' => 'GPL-2.0',
+ 'PHPBB_VERSION' => '3.1.0-dev',
+ 'PHP_VERSION' => '>=5.3',
+ 'AUTHOR_NAME' => 'Nathan Guse',
+ 'AUTHOR_EMAIL' => 'email@phpbb.com',
+ 'AUTHOR_HOMEPAGE' => 'http://lithiumstudios.org',
+ 'AUTHOR_ROLE' => 'N/A',
+ );
+
for ($i = 0; $i < $crawler->filter('dl')->count(); $i++)
{
$text = $crawler->filter('dl')->eq($i)->text();
- switch (true)
- {
- case (strpos($text, $this->lang('DISPLAY_NAME')) === 0):
- $this->assertContains('phpBB Foo Extension', $text);
- break;
-
- case (strpos($text, $this->lang('CLEAN_NAME')) === 0):
- $this->assertContains('foo/example', $text);
- break;
-
- case (strpos($text, $this->lang('DESCRIPTION')) === 0):
- $this->assertContains('An example/sample extension to be used for testing purposes in phpBB Development.', $text);
- break;
-
- case (strpos($text, $this->lang('VERSION')) === 0):
- $this->assertContains('1.0.0', $text);
- break;
-
- case (strpos($text, $this->lang('TIME')) === 0):
- $this->assertContains('2012-02-15 01:01:01', $text);
- break;
+ $match = false;
- case (strpos($text, $this->lang('LICENCE')) === 0):
- $this->assertContains('GNU GPL v2', $text);
- break;
-
- case (strpos($text, $this->lang('PHPBB_VERSION')) === 0):
- $this->assertContains('3.1.0-dev', $text);
- break;
-
- case (strpos($text, $this->lang('PHP_VERSION')) === 0):
- $this->assertContains('>=5.3', $text);
- break;
-
- case (strpos($text, $this->lang('AUTHOR_NAME')) === 0):
- $this->assertContains('Nathan Guse', $text);
- break;
-
- case (strpos($text, $this->lang('AUTHOR_EMAIL')) === 0):
- $this->assertContains('email@phpbb.com', $text);
- break;
+ foreach ($validation as $language_key => $expected)
+ {
+ if (strpos($text, $this->lang($language_key)) === 0)
+ {
+ $match = true;
- case (strpos($text, $this->lang('AUTHOR_HOMEPAGE')) === 0):
- $this->assertContains('http://lithiumstudios.org', $text);
- break;
+ $this->assertContains($expected, $text);
+ }
+ }
- case (strpos($text, $this->lang('AUTHOR_ROLE')) === 0):
- $this->assertContains('N/A', $text);
- break;
+ if (!$match)
+ {
+ $this->fail('Unexpected field: "' . $text . '"');
}
}
}
diff --git a/tests/extension/metadata_manager_test.php b/tests/extension/metadata_manager_test.php
index 801d4dbeca..9865f14314 100644
--- a/tests/extension/metadata_manager_test.php
+++ b/tests/extension/metadata_manager_test.php
@@ -93,7 +93,7 @@ class metadata_manager_test extends phpbb_database_test_case
$this->assertEquals($metadata, $json);
}
- public function test_validator()
+ public function test_validator_non_existant()
{
$ext_name = 'validator';
@@ -103,37 +103,57 @@ class metadata_manager_test extends phpbb_database_test_case
try
{
$manager->validate('name');
+
+ $this->fail('Exception not triggered');
+ }
+ catch(phpbb_extension_exception $e)
+ {
+ $this->assertEquals((string) $e, 'Required meta field \'name\' has not been set.');
}
- catch(phpbb_extension_exception $e) {}
- $this->assertEquals((string) $e, 'Required meta field \'name\' has not been set.');
try
{
$manager->validate('type');
+
+ $this->fail('Exception not triggered');
+ }
+ catch(phpbb_extension_exception $e)
+ {
+ $this->assertEquals((string) $e, 'Required meta field \'type\' has not been set.');
}
- catch(phpbb_extension_exception $e) {}
- $this->assertEquals((string) $e, 'Required meta field \'type\' has not been set.');
try
{
$manager->validate('licence');
+
+ $this->fail('Exception not triggered');
+ }
+ catch(phpbb_extension_exception $e)
+ {
+ $this->assertEquals((string) $e, 'Required meta field \'licence\' has not been set.');
}
- catch(phpbb_extension_exception $e) {}
- $this->assertEquals((string) $e, 'Required meta field \'licence\' has not been set.');
try
{
$manager->validate('version');
+
+ $this->fail('Exception not triggered');
+ }
+ catch(phpbb_extension_exception $e)
+ {
+ $this->assertEquals((string) $e, 'Required meta field \'version\' has not been set.');
}
- catch(phpbb_extension_exception $e) {}
- $this->assertEquals((string) $e, 'Required meta field \'version\' has not been set.');
try
{
$manager->validate_authors();
+
+ $this->fail('Exception not triggered');
+ }
+ catch(phpbb_extension_exception $e)
+ {
+ $this->assertEquals((string) $e, 'Required meta field \'authors\' has not been set.');
}
- catch(phpbb_extension_exception $e) {}
- $this->assertEquals((string) $e, 'Required meta field \'authors\' has not been set.');
$manager->merge_metadata(array(
'authors' => array(
@@ -144,10 +164,21 @@ class metadata_manager_test extends phpbb_database_test_case
try
{
$manager->validate_authors();
+
+ $this->fail('Exception not triggered');
}
- catch(phpbb_extension_exception $e) {}
- $this->assertEquals((string) $e, 'Required meta field \'author name\' has not been set.');
+ catch(phpbb_extension_exception $e)
+ {
+ $this->assertEquals((string) $e, 'Required meta field \'author name\' has not been set.');
+ }
+ }
+
+
+ public function test_validator_invalid()
+ {
+ $ext_name = 'validator';
+ $manager = $this->get_metadata_manager($ext_name);
// Invalid data
$manager->set_metadata(array(
@@ -160,31 +191,53 @@ class metadata_manager_test extends phpbb_database_test_case
try
{
$manager->validate('name');
+
+ $this->fail('Exception not triggered');
+ }
+ catch(phpbb_extension_exception $e)
+ {
+ $this->assertEquals((string) $e, 'Meta field \'name\' is invalid.');
}
- catch(phpbb_extension_exception $e) {}
- $this->assertEquals((string) $e, 'Meta field \'name\' is invalid.');
try
{
$manager->validate('type');
+
+ $this->fail('Exception not triggered');
+ }
+ catch(phpbb_extension_exception $e)
+ {
+ $this->assertEquals((string) $e, 'Meta field \'type\' is invalid.');
}
- catch(phpbb_extension_exception $e) {}
- $this->assertEquals((string) $e, 'Meta field \'type\' is invalid.');
try
{
$manager->validate('licence');
+
+ $this->fail('Exception not triggered');
+ }
+ catch(phpbb_extension_exception $e)
+ {
+ $this->assertEquals((string) $e, 'Meta field \'licence\' is invalid.');
}
- catch(phpbb_extension_exception $e) {}
- $this->assertEquals((string) $e, 'Meta field \'licence\' is invalid.');
try
{
$manager->validate('version');
+
+ $this->fail('Exception not triggered');
+ }
+ catch(phpbb_extension_exception $e)
+ {
+ $this->assertEquals((string) $e, 'Meta field \'version\' is invalid.');
}
- catch(phpbb_extension_exception $e) {}
- $this->assertEquals((string) $e, 'Meta field \'version\' is invalid.');
+ }
+
+ public function test_validator_valid()
+ {
+ $ext_name = 'validator';
+ $manager = $this->get_metadata_manager($ext_name);
// Valid data
$manager->set_metadata(array(
@@ -202,8 +255,14 @@ class metadata_manager_test extends phpbb_database_test_case
{
$this->fail($e);
}
+ }
+ public function test_validator_requirements()
+ {
+ $ext_name = 'validator';
+
+ $manager = $this->get_metadata_manager($ext_name);
// Too high of requirements
$manager->merge_metadata(array(
'require' => array(