diff options
| author | Andreas Fischer <bantu@phpbb.com> | 2011-06-09 12:47:27 +0200 |
|---|---|---|
| committer | Andreas Fischer <bantu@phpbb.com> | 2011-06-09 12:47:27 +0200 |
| commit | c49dce2be34064ffe66829cbb34e2bed9ed03492 (patch) | |
| tree | f7a8836bca1513408f01d82e2ebf4268e4abab67 /tests/profile/custom_test.php | |
| parent | d64ec4f765bd5fa082cc9eecff927ac2bf153f24 (diff) | |
| parent | f7578e29b3c4c4b7b66226f8c159e5e40363162f (diff) | |
| download | forums-c49dce2be34064ffe66829cbb34e2bed9ed03492.tar forums-c49dce2be34064ffe66829cbb34e2bed9ed03492.tar.gz forums-c49dce2be34064ffe66829cbb34e2bed9ed03492.tar.bz2 forums-c49dce2be34064ffe66829cbb34e2bed9ed03492.tar.xz forums-c49dce2be34064ffe66829cbb34e2bed9ed03492.zip | |
Merge branch 'develop-olympus' into develop
* develop-olympus:
[ticket/10005] Add description to test cases
[ticket/10005] Add validation of dropdown custom profile field values
Diffstat (limited to 'tests/profile/custom_test.php')
| -rw-r--r-- | tests/profile/custom_test.php | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/profile/custom_test.php b/tests/profile/custom_test.php new file mode 100644 index 0000000000..0e0a851243 --- /dev/null +++ b/tests/profile/custom_test.php @@ -0,0 +1,55 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2011 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +require_once dirname(__FILE__) . '/../../phpBB/includes/functions_profile_fields.php'; + +class phpbb_profile_custom_test extends phpbb_database_test_case +{ + public function getDataSet() + { + return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/profile_fields.xml'); + } + + static public function dropdownFields() + { + return array( + // note, there is an offset of 1 between option_id (0-indexed) + // in the database and values (1-indexed) to avoid problems with + // transmitting 0 in an HTML form + // required, value, expected + array(1, '0', 'FIELD_INVALID_VALUE', 'Required field should throw error for out-of-range value'), + array(1, '1', 'FIELD_REQUIRED', 'Required field should throw error for default value'), + array(1, '2', false, 'Required field should accept non-default value'), + array(0, '0', 'FIELD_INVALID_VALUE', 'Optional field should throw error for out-of-range value'), + array(0, '1', false, 'Optional field should accept default value'), + array(0, '2', false, 'Optional field should accept non-default value'), + ); + } + + /** + * @dataProvider dropdownFields + */ + public function test_dropdown_validate($field_required, $field_value, $expected, $description) + { + global $db; + $db = $this->new_dbal(); + + $field_data = array( + 'field_id' => 1, + 'lang_id' => 1, + 'field_novalue' => 1, + 'field_required' => $field_required, + ); + + $cp = new custom_profile; + $result = $cp->validate_profile_field(FIELD_DROPDOWN, &$field_value, $field_data); + + $this->assertEquals($expected, $result, $description); + } +} |
