function WebformTestCase::testWebformComponents in Webform 6.2
Same name and namespace in other branches
- 6.3 tests/webform.test \WebformTestCase::testWebformComponents()
- 7.3 tests/webform.test \WebformTestCase::testWebformComponents()
Provide a list of components to test throughout the suite.
Each component provides:
- A default configuration for the component.
- Values to try setting via POST
- Values that should match the database storage when set via POST
- Values that should match the database storage when using the default values.
Return value
array An array of each component settings.
3 calls to WebformTestCase::testWebformComponents()
- WebformSubmissionTestCase::webformSubmissionExecute in tests/
submission.test - Execute the submission test.
- WebformTestCase::testWebformForm in tests/
webform.test - WebformTestCase::testWebformPost in tests/
webform.test
File
- tests/
webform.test, line 110 - Webform module tests.
Class
- WebformTestCase
- @file Webform module tests.
Code
function testWebformComponents() {
if (isset($this->_webform_components)) {
return $this->_webform_components;
}
// Time components use a lot of conversion factors, generate a list of times
// equal to 10:30pm (the default value used as a sample).
$timestamp = strtotime('10:30pm');
$site_hour12 = gmdate('g', $timestamp + (int) variable_get('date_default_timezone', 0));
$site_hour24 = gmdate('G', $timestamp + (int) variable_get('date_default_timezone', 0));
$site_minute = gmdate('i', $timestamp + (int) variable_get('date_default_timezone', 0));
$site_ampm = gmdate('a', $timestamp + (int) variable_get('date_default_timezone', 0));
$this->_webform_components = array(
// Test date components.
'date' => array(
'component' => array(
'form_key' => 'date',
'name' => 'Date',
'type' => 'date',
'value' => '19 Nov 1978',
'extra' => array(
'timezone' => 'site',
'year_start' => '1950',
'year_end' => '2020',
),
'mandatory' => '0',
'email' => '1',
'pid' => '0',
'weight' => '-15',
'page_num' => 1,
),
'sample values' => array(
'day' => '30',
'month' => '9',
'year' => '1982',
),
'database values' => array(
'9',
'30',
'1982',
),
'database default values' => array(
'11',
'19',
'1978',
),
),
// Test grid components.
'grid' => array(
'component' => array(
'form_key' => 'grid',
'name' => 'Grid',
'type' => 'grid',
'value' => '',
'extra' => array(
'questions' => "Ålphå\nıé†å\nÎ鬆å",
// Left side
'options' => "øne\ntwö\nǼBƇ\n€Euro",
),
'mandatory' => '0',
'email' => '1',
'pid' => '2',
'weight' => '-19',
'page_num' => 1,
),
'sample values' => array(
'Ålphå' => 'øne',
'ıé†å' => 'twö',
'Î鬆å' => 'ǼBƇ',
),
'database values' => array(
'øne',
'twö',
'ǼBƇ',
),
'database default values' => array(
'',
'',
'',
),
),
'grid_keyed' => array(
'component' => array(
'form_key' => 'grid_keyed',
'name' => 'Grid Keyed',
'type' => 'grid',
'value' => '',
'extra' => array(
'questions' => "What's your option?\nAgåin?\nOne more time!",
// Left side.
'options' => "one|Option one\ntwo|Option 2\nthree| Three is me",
),
'mandatory' => '0',
'email' => '1',
'pid' => '0',
'weight' => '-15',
'page_num' => 1,
),
'sample values' => array(
'Whats your option?' => 'one',
// Quotes removed from values.
'Agåin?' => 'two',
'One more time!' => 'three',
),
'database values' => array(
'one',
'two',
'three',
),
'database default values' => array(
'',
'',
'',
),
),
'grid_mixed' => array(
'component' => array(
'form_key' => 'grid_mixed',
'name' => 'Grid Mixed',
'type' => 'grid',
'value' => '',
'extra' => array(
'questions' => "Ålphå\nıé†å\nÎ鬆å",
// Left side
'options' => "øne\ntwö\nǼBƇ\n€Euro",
// Top
'optrand' => 1,
'qrand' => 1,
),
'mandatory' => '0',
'email' => '1',
'pid' => '2',
'weight' => '-19',
'page_num' => 1,
),
'sample values' => array(
'Ålphå' => 'øne',
'ıé†å' => 'twö',
'Î鬆å' => 'ǼBƇ',
),
'database values' => array(
'øne',
'twö',
'ǼBƇ',
),
'database default values' => array(
'',
'',
'',
),
),
'grid_keyed_mixed' => array(
'component' => array(
'form_key' => 'grid_keyed_mixed',
'name' => 'Grid Keyed',
'type' => 'grid',
'value' => '',
'extra' => array(
'questions' => "What's your option?\nAgåin?\nOne more time!",
// Left side.
'options' => "one|Option one\ntwo|Option 2\nthree| Three is me",
// Top
'optrand' => 1,
'qrand' => 1,
),
'mandatory' => '0',
'email' => '1',
'pid' => '0',
'weight' => '-15',
'page_num' => 1,
),
'sample values' => array(
'Whats your option?' => 'one',
// Quotes removed from values.
'Agåin?' => 'two',
'One more time!' => 'three',
),
'database values' => array(
'one',
'two',
'three',
),
'database default values' => array(
'',
'',
'',
),
),
// Test select components.
'checkboxes' => array(
'component' => array(
'form_key' => 'checkboxes',
'name' => 'Checkboxes',
'type' => 'select',
'value' => 'two',
'extra' => array(
'items' => "one\ntwo\nthree",
'multiple' => 'Y',
'email' => 0,
),
'mandatory' => '0',
'email' => '1',
'pid' => '0',
'weight' => '-15',
'page_num' => 1,
),
'sample values' => array(
'one' => TRUE,
'two' => FALSE,
'three' => TRUE,
),
'database values' => array(
'one',
'three',
),
'database default values' => array(
'two',
),
),
'radios' => array(
'component' => array(
'form_key' => 'radios',
'name' => 'Radios',
'type' => 'select',
'value' => 'two',
'extra' => array(
'items' => "one\ntwo\nthree",
'email' => 0,
),
'mandatory' => '1',
'email' => '1',
'pid' => '0',
'weight' => '-9',
'page_num' => 1,
),
'sample values' => 'one',
'database values' => array(
'one',
),
'database default values' => array(
'two',
),
),
'radios_zero' => array(
'component' => array(
'form_key' => 'radios_zero',
'name' => 'Radios',
'type' => 'select',
'value' => '0',
'extra' => array(
'items' => "0|zero\n1|one\n2|two",
'email' => 0,
),
'mandatory' => '1',
'email' => '1',
'pid' => '0',
'weight' => '-9',
'page_num' => 1,
),
'sample values' => '0',
'database values' => array(
'0',
),
'database default values' => array(
'0',
),
),
'select' => array(
'component' => array(
'form_key' => 'select',
'name' => 'Select',
'type' => 'select',
'value' => 'one',
'extra' => array(
'description' => '<p>Description here</p>',
'items' => "one\ntwo\nthree\nfour\nfive\nsix",
'aslist' => 'Y',
'email' => 0,
),
'mandatory' => '1',
'email' => '1',
'pid' => '0',
'weight' => '-15',
'page_num' => 1,
),
'sample values' => 'two',
'database values' => array(
'two',
),
'database default values' => array(
'one',
),
),
'select_zero' => array(
'component' => array(
'form_key' => 'select_zero',
'name' => 'Select',
'type' => 'select',
'value' => '0',
'extra' => array(
'description' => '<p>Tests saving zero as a value.</p>',
'items' => "0|zero\n1|one\n2|two",
'aslist' => 'Y',
'email' => 0,
),
'mandatory' => '1',
'email' => '1',
'pid' => '0',
'weight' => '-15',
'page_num' => 1,
),
'sample values' => '0',
'database values' => array(
'0',
),
'database default values' => array(
'0',
),
),
'select_optgroup' => array(
'component' => array(
'form_key' => 'select_optgroup',
'name' => 'Select Optgroup',
'type' => 'select',
'value' => 'option 1-2',
'extra' => array(
'description' => '<p>Tests saving zero as a value.</p>',
'items' => "<Group 1>\noption 1-1\noption 1-2\noption 1-3\n<Group 2>\noption 2-1\noption 2-2\noption 2-3",
'aslist' => 'Y',
'email' => 0,
),
'mandatory' => '1',
'email' => '1',
'pid' => '0',
'weight' => '-15',
'page_num' => 1,
),
'sample values' => 'option 2-2',
'database values' => array(
'option 2-2',
),
'database default values' => array(
'option 1-2',
),
),
'select_email' => array(
'component' => array(
'form_key' => 'select_email',
'name' => 'Select e-mails',
'type' => 'select',
'value' => 'nate@localhost',
'extra' => array(
'items' => "nate@localhost|one\nadmin@localhost|two",
'email' => 3,
),
'mandatory' => '0',
'email' => '1',
'pid' => '2',
'weight' => '-17',
'page_num' => 1,
),
'sample values' => 'admin@localhost',
'database values' => array(
'admin@localhost',
),
'database default values' => array(
'nate@localhost',
),
),
'select_multiple' => array(
'component' => array(
'form_key' => 'select_multiple',
'name' => 'Select Multiple',
'type' => 'select',
'value' => 'one,two',
'extra' => array(
'items' => "one\ntwo\nthree",
'multiple' => 'Y',
'aslist' => 'Y',
'email' => 0,
),
'mandatory' => '0',
'email' => '1',
'pid' => '0',
'weight' => '-10',
'page_num' => 1,
),
// TODO: I'd like to test a value, but SimpleTest can't set multiple values.
'sample values' => NULL,
'database values' => array(
'one',
'two',
),
'database default values' => array(
'one',
'two',
),
),
// Test date components.
'date_textfield' => array(
'component' => array(
'form_key' => 'date_textfield',
'name' => 'Date Textfield',
'type' => 'date',
'value' => 'Nov 19 1978',
'extra' => array(
'timezone' => 'site',
'year_start' => '1900',
'year_end' => '2050',
'year_textfield' => 1,
),
'mandatory' => '1',
'email' => '1',
'pid' => '0',
'weight' => '-7',
'page_num' => 1,
),
'sample values' => array(
'day' => '30',
'month' => '9',
'year' => '1982',
),
'database values' => array(
'9',
'30',
'1982',
),
'database default values' => array(
'11',
'19',
'1978',
),
),
// Test email components.
'email' => array(
'component' => array(
'form_key' => 'email',
'name' => 'E-mail',
'type' => 'email',
'value' => '%useremail',
'extra' => array(
'email' => 19,
),
'mandatory' => '0',
'email' => '1',
'pid' => '0',
'weight' => '-5',
'page_num' => 1,
),
'sample values' => 'admin@localhost',
'database values' => array(
'admin@localhost',
),
'database default values' => array(
$this->webform_users['admin']->mail,
),
),
// Test hidden components.
'hidden' => array(
'component' => array(
'form_key' => 'hidden',
'name' => 'Hidden',
'type' => 'hidden',
'value' => 'default hidden value',
'extra' => array(
'email' => 0,
),
'mandatory' => '1',
'email' => '1',
'pid' => '0',
'weight' => '-4',
'page_num' => 1,
),
'sample values' => NULL,
'database values' => array(
'default hidden value',
),
'database default values' => array(
'default hidden value',
),
),
// Test textarea components.
'textarea' => array(
'component' => array(
'form_key' => 'textarea',
'name' => 'Textarea',
'type' => 'textarea',
'value' => 'sample textarea default value',
'extra' => array(),
'mandatory' => '0',
'email' => '1',
'pid' => '0',
'weight' => '15',
'page_num' => 1,
),
'sample values' => 'sample textarea value',
'database values' => array(
'sample textarea value',
),
'database default values' => array(
'sample textarea default value',
),
),
// Test textfield components.
'textfield_disabled' => array(
'component' => array(
'form_key' => 'textfield_disabled',
'name' => 'Textfield Disabled',
'type' => 'textfield',
'value' => '%get[foo]',
'extra' => array(
'disabled' => 1,
),
'mandatory' => '0',
'email' => '1',
'pid' => '0',
'weight' => '-15',
'page_num' => 1,
),
'sample values' => NULL,
'database values' => array(
'bar',
),
'database default values' => array(
'bar',
),
),
'textfield_profile' => array(
'component' => array(
'form_key' => 'textfield_profile',
'name' => 'Textfield Profile',
'type' => 'textfield',
'value' => '%profile[profile_gender]',
'extra' => array(
'width' => '20',
),
'mandatory' => '0',
'email' => '1',
'pid' => '0',
'weight' => '-6',
'page_num' => 1,
),
'sample values' => 'Female',
'database values' => array(
'Female',
),
'database default values' => array(
$this->webform_users['admin']->profile_gender,
),
),
// Test time components.
'time' => array(
'component' => array(
'form_key' => 'time',
'name' => 'Time',
'type' => 'time',
'value' => '10:30pm',
'extra' => array(
'timezone' => 'site',
'hourformat' => '12-hour',
),
'mandatory' => '0',
'email' => '1',
'pid' => '0',
'weight' => '16',
'page_num' => 1,
),
'sample values' => array(
'hour' => '5',
'minute' => '00',
'ampm' => 'am',
),
'database values' => array(
'5',
'00',
'am',
),
'database default values' => array(
$site_hour12,
$site_minute,
$site_ampm,
),
),
'time_24h' => array(
'component' => array(
'form_key' => 'time_24h',
'name' => 'Time 24H',
'type' => 'time',
'value' => '10:30pm',
'extra' => array(
'timezone' => 'site',
'hourformat' => '24-hour',
),
'mandatory' => '0',
'email' => '1',
'pid' => '0',
'weight' => '17',
'page_num' => 1,
),
'sample values' => array(
'hour' => '5',
'minute' => '00',
),
'database values' => array(
'5',
'00',
),
'database default values' => array(
$site_hour24,
$site_minute,
),
),
);
return $this->_webform_components;
}