diff options
author | Jaime Perez Crespo <jaime.perez@uninett.no> | 2016-02-22 15:48:23 +0100 |
---|---|---|
committer | Jaime Perez Crespo <jaime.perez@uninett.no> | 2016-02-22 15:48:23 +0100 |
commit | a6ec24e46a60604ecf5650ed6ec9859dab0cd38d (patch) | |
tree | 53d6a8948736b2db3d061e859e4c7a3e33628dbd /tests/lib/SimpleSAML/ModuleTest.php | |
parent | 08204317f01f221405e787cceea3997ad47a6cdc (diff) | |
download | simplesamlphp-a6ec24e46a60604ecf5650ed6ec9859dab0cd38d.zip simplesamlphp-a6ec24e46a60604ecf5650ed6ec9859dab0cd38d.tar.gz simplesamlphp-a6ec24e46a60604ecf5650ed6ec9859dab0cd38d.tar.bz2 |
Add some tests for SimpleSAML\Module.
Diffstat (limited to 'tests/lib/SimpleSAML/ModuleTest.php')
-rw-r--r-- | tests/lib/SimpleSAML/ModuleTest.php | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/tests/lib/SimpleSAML/ModuleTest.php b/tests/lib/SimpleSAML/ModuleTest.php new file mode 100644 index 0000000..a3abf0e --- /dev/null +++ b/tests/lib/SimpleSAML/ModuleTest.php @@ -0,0 +1,119 @@ +<?php +namespace SimpleSAML\Test; + +use SimpleSAML\Module; + +class ModuleTest extends \PHPUnit_Framework_TestCase +{ + + + /** + * Test for SimpleSAML\Module::isModuleEnabled(). + */ + public function testIsModuleEnabled() + { + // test for the most basic functionality + $this->assertTrue(Module::isModuleEnabled('core')); + } + + + /** + * Test for SimpleSAML\Module::getModuleDir(). + */ + public function testGetModuleDir() + { + // test for the most basic functionality + $this->assertEquals( + dirname(dirname(dirname(dirname(__FILE__)))).'/modules/module', + Module::getModuleDir('module') + ); + } + + + /** + * Test for SimpleSAML\Module::getModuleURL(). + */ + public function testGetModuleURL() + { + \SimpleSAML_Configuration::loadFromArray(array( + 'baseurlpath' => 'https://example.com/simplesaml/' + ), '', 'simplesaml'); + $this->assertEquals( + 'https://example.com/simplesaml/module.php/module/script.php', + Module::getModuleURL('module/script.php') + ); + $this->assertEquals( + 'https://example.com/simplesaml/module.php/module/script.php?param1=value1¶m2=value2', + Module::getModuleURL('module/script.php', array( + 'param1' => 'value1', + 'param2' => 'value2', + )) + ); + } + + + /** + * Test for SimpleSAML\Module::getModules(). + */ + public function testGetModules() + { + $this->assertGreaterThan(0, count(Module::getModules())); + } + + + /** + * Test for SimpleSAML\Module::resolveClass(). It will make sure that an exception is thrown if we are not asking + * for a class inside a module (that is, there is no colon separating the name of the module and the name of the + * class). + * + * @expectedException \Exception + */ + public function testResolveClassNoModule() + { + Module::resolveClass('nomodule', ''); + } + + + /** + * Test for SimpleSAML\Module::resolveClass(). It will make sure that an exception is thrown if the class we are + * asking for cannot be found. + * + * @expectedException \Exception + */ + public function testResolveClassNotFound() + { + Module::resolveClass('core:Missing', ''); + } + + + /** + * Test for SimpleSAML\Module::resolveClass(). It will make sure that an exception is thrown if the class we are + * asking for can be resolved, but does not extend a given class. + * + * @expectedException \Exception + */ + public function testResolveClassNotSubclass() + { + Module::resolveClass('core:PHP', 'Auth_Process', '\Exception'); + } + + + /** + * Test for SimpleSAML\Module::resolveClass(). It covers all the valid use cases. + */ + public function tesstResolveClass() + { + // most basic test + $this->assertEquals('sspmod_core_ACL', Module::resolveClass('core:ACL', '')); + + // test for the $type parameter correctly translated into a path + $this->assertEquals('sspmod_core_Auth_Process_PHP', Module::resolveClass('core:PHP', 'Auth_Process')); + + // test for valid subclasses + $this->assertEquals('sspmod_core_Auth_Process_PHP', Module::resolveClass( + 'core:PHP', + 'Auth_Process', + 'SimpleSAML_Auth_ProcessingFilter' + )); + } +} |