diff options
author | Olav Morken <olav.morken@uninett.no> | 2015-05-26 13:24:14 +0200 |
---|---|---|
committer | Olav Morken <olav.morken@uninett.no> | 2015-05-26 13:25:22 +0200 |
commit | 33ceceaa796f609f7a8f047982e1f558c9129471 (patch) | |
tree | 2d842784096d2fad03e33b694179770370f17df7 | |
parent | b8e0e07ccf880321d64d7555e895bbb310a830bf (diff) | |
download | simplesamlphp-33ceceaa796f609f7a8f047982e1f558c9129471.zip simplesamlphp-33ceceaa796f609f7a8f047982e1f558c9129471.tar.gz simplesamlphp-33ceceaa796f609f7a8f047982e1f558c9129471.tar.bz2 |
Add test for core:AttributeAdd.
-rw-r--r-- | tests/modules/core/AttributeAddTest.php | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/tests/modules/core/AttributeAddTest.php b/tests/modules/core/AttributeAddTest.php new file mode 100644 index 0000000..20748fa --- /dev/null +++ b/tests/modules/core/AttributeAddTest.php @@ -0,0 +1,138 @@ +<?php + +/** + * Test for the core:AttributeAdd filter. + */ +class Test_Core_Auth_Process_AttributeAdd extends PHPUnit_Framework_TestCase +{ + + /* + * Helper function to run the filter with a given configuration. + * + * @param array $config The filter configuration. + * @param array $request The request state. + * @return array The state array after processing. + */ + private static function processFilter(array $config, array $request) + { + $filter = new sspmod_core_Auth_Process_AttributeAdd($config, NULL); + $filter->process($request); + return $request; + } + + /* + * Test the most basic functionality. + */ + public function testBasic() + { + $config = array( + 'test' => array('value1', 'value2'), + ); + $request = array( + 'Attributes' => array(), + ); + $result = self::processFilter($config, $request); + $attributes = $result['Attributes']; + $this->assertArrayHasKey('test', $attributes); + $this->assertEquals($attributes['test'], array('value1', 'value2')); + } + + /* + * Test that existing attributes are left unmodified. + */ + public function testExistingNotModified() + { + $config = array( + 'test' => array('value1', 'value2'), + ); + $request = array( + 'Attributes' => array( + 'original1' => array('original_value1'), + 'original2' => array('original_value2'), + ), + ); + $result = self::processFilter($config, $request); + $attributes = $result['Attributes']; + $this->assertArrayHasKey('test', $attributes); + $this->assertEquals($attributes['test'], array('value1', 'value2')); + $this->assertArrayHasKey('original1', $attributes); + $this->assertEquals($attributes['original1'], array('original_value1')); + $this->assertArrayHasKey('original2', $attributes); + $this->assertEquals($attributes['original2'], array('original_value2')); + } + + /* + * Test single string as attribute value. + */ + public function testStringValue() + { + $config = array( + 'test' => 'value', + ); + $request = array( + 'Attributes' => array(), + ); + $result = self::processFilter($config, $request); + $attributes = $result['Attributes']; + $this->assertArrayHasKey('test', $attributes); + $this->assertEquals($attributes['test'], array('value')); + } + + /* + * Test the most basic functionality. + */ + public function testAddMultiple() + { + $config = array( + 'test1' => array('value1'), + 'test2' => array('value2'), + ); + $request = array( + 'Attributes' => array(), + ); + $result = self::processFilter($config, $request); + $attributes = $result['Attributes']; + $this->assertArrayHasKey('test1', $attributes); + $this->assertEquals($attributes['test1'], array('value1')); + $this->assertArrayHasKey('test2', $attributes); + $this->assertEquals($attributes['test2'], array('value2')); + } + + /* + * Test behavior when appending attribute values. + */ + public function testAppend() + { + $config = array( + 'test' => array('value2'), + ); + $request = array( + 'Attributes' => array( + 'test' => array('value1'), + ), + ); + $result = self::processFilter($config, $request); + $attributes = $result['Attributes']; + $this->assertEquals($attributes['test'], array('value1', 'value2')); + } + + /* + * Test replacing attribute values. + */ + public function testReplace() + { + $config = array( + '%replace', + 'test' => array('value2'), + ); + $request = array( + 'Attributes' => array( + 'test' => array('value1'), + ), + ); + $result = self::processFilter($config, $request); + $attributes = $result['Attributes']; + $this->assertEquals($attributes['test'], array('value2')); + } + +} |