diff options
author | Nils Adermann <naderman@naderman.de> | 2011-06-02 08:45:48 +0200 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2011-06-02 08:49:59 +0200 |
commit | 7b10f859decdb5d97ffe97e647db52f29f4661f8 (patch) | |
tree | 7b216715266ec670ee09d8d7edfa1681e08d6ed5 /tests | |
parent | 2159e4f28584ad795515e0c6c509f32f634e698b (diff) | |
download | forums-7b10f859decdb5d97ffe97e647db52f29f4661f8.tar forums-7b10f859decdb5d97ffe97e647db52f29f4661f8.tar.gz forums-7b10f859decdb5d97ffe97e647db52f29f4661f8.tar.bz2 forums-7b10f859decdb5d97ffe97e647db52f29f4661f8.tar.xz forums-7b10f859decdb5d97ffe97e647db52f29f4661f8.zip |
[ticket/10005] Add validation of dropdown custom profile field values
PHPBB3-10005
Diffstat (limited to 'tests')
-rw-r--r-- | tests/profile/custom_test.php | 52 | ||||
-rw-r--r-- | tests/profile/fixtures/profile_fields.xml | 31 |
2 files changed, 83 insertions, 0 deletions
diff --git a/tests/profile/custom_test.php b/tests/profile/custom_test.php new file mode 100644 index 0000000000..06926d4af6 --- /dev/null +++ b/tests/profile/custom_test.php @@ -0,0 +1,52 @@ +<?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( + // novalue, required, value, expected + array(1, 1, '0', 'FIELD_INVALID_VALUE'), + array(1, 1, '1', 'FIELD_REQUIRED'), + array(1, 1, '2', false), + array(1, 0, '0', 'FIELD_INVALID_VALUE'), + array(1, 0, '1', false), + array(1, 0, '2', false), + ); + } + + /** + * @dataProvider dropdownFields + */ + public function test_dropdown_validate($field_novalue, $field_required, $field_value, $expected) + { + global $db; + $db = $this->new_dbal(); + + $field_data = array( + 'field_id' => 1, + 'lang_id' => 1, + 'field_novalue' => $field_novalue, + 'field_required' => $field_required, + ); + + $cp = new custom_profile; + $result = $cp->validate_profile_field(FIELD_DROPDOWN, &$field_value, $field_data); + + $this->assertEquals($expected, $result); + } +} diff --git a/tests/profile/fixtures/profile_fields.xml b/tests/profile/fixtures/profile_fields.xml new file mode 100644 index 0000000000..0b2929f625 --- /dev/null +++ b/tests/profile/fixtures/profile_fields.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<dataset> + <table name="phpbb_profile_fields_lang"> + <column>field_id</column> + <column>lang_id</column> + <column>option_id</column> + <column>field_type</column> + <column>lang_value</column> + <row> + <value>1</value> + <value>1</value> + <value>0</value> + <value>5</value> + <value>Default Option</value> + </row> + <row> + <value>1</value> + <value>1</value> + <value>1</value> + <value>5</value> + <value>First Alternative</value> + </row> + <row> + <value>1</value> + <value>1</value> + <value>2</value> + <value>5</value> + <value>Third Alternative</value> + </row> + </table> +</dataset> |