diff options
Diffstat (limited to 'sites/all/modules/multiform/tests')
-rw-r--r-- | sites/all/modules/multiform/tests/multiform.test | 104 | ||||
-rw-r--r-- | sites/all/modules/multiform/tests/multiform_test.info | 14 | ||||
-rw-r--r-- | sites/all/modules/multiform/tests/multiform_test.module | 171 |
3 files changed, 289 insertions, 0 deletions
diff --git a/sites/all/modules/multiform/tests/multiform.test b/sites/all/modules/multiform/tests/multiform.test new file mode 100644 index 000000000..f7a0a6ab4 --- /dev/null +++ b/sites/all/modules/multiform/tests/multiform.test @@ -0,0 +1,104 @@ +<?php +/** + * @file + * + * + * + * @author Kálmán Hosszu - http://drupal.org/user/267481 + */ + +class MultiformTestCase extends DrupalWebTestCase { + + /** + * Info method. + * + * @return array + */ + public static function getInfo() { + return array( + 'name' => 'Forms functionality', + 'description' => 'Testing multiform functionality.' , + 'group' => 'Multiform', + ); + } + + /** + * Overriden setUp function. + */ + public function setUp() { + parent::setUp('multiform', 'multiform_test'); + } + + /** + * Check various submit ops. + */ + public function testSubmitHandling() { + // Go to the form page. + $this->drupalGet('multiform-test/1'); + + // Check buttons. + $this->assertFieldByName('op', 'save'); + $this->assertFieldByName('op', 'delete'); + + // No more buttons. + $submitButtons = $this->xpath('//input[@type="submit" and @name!="op"]'); + $this->assertEqual(count($submitButtons), 0, t('No more submit button.')); + + // Save button. + $this->drupalPost(NULL, array(), 'save'); + $this->assertText('multiform_test1_1multiform_test1_submit_button', t('First form save message is found.')); + $this->assertText('multiform_test1_2multiform_test1_submit_button', t('Second form save message is found.')); + + // Delete button. + $this->drupalPost(NULL, array(), 'delete'); + $this->assertText('multiform_test1_1multiform_test1_delete_button', t('First form delete message is found.')); + $this->assertText('multiform_test1_2multiform_test1_delete_button', t('Second form delete message is found.')); + } + + /** + * Check the merged fields exist. + */ + public function testFieldsAreExist() { + // Go to the form page. + $this->drupalGet('multiform-test/2'); + + // Check textfields. + $this->assertFieldByName('multiform[multiform_test2_1_0][required_text_1]'); + $this->assertFieldByName('multiform[multiform_test2_2_1][required_text_2]'); + + // Check button. + $this->assertFieldByName('op', 'save'); + } + + /** + * Check required fields. + */ + public function testRequiredFields() { + $first_text = array('multiform[multiform_test2_1_0][required_text_1]' => 'test1 value'); + $second_text = array('multiform[multiform_test2_2_1][required_text_2]' => 'test2 value'); + // No required fields. + $this->drupalPost('multiform-test/2', array(), 'save'); + $this->assertText('test1 field is required.'); + $this->assertText('test2 field is required.'); + $this->assertNoText('multiform_test2_1multiform_test2_submit_button'); + $this->assertNoText('multiform_test2_2multiform_test2_submit_button'); + + // Send all required fields. + $this->drupalPost(NULL, array_merge($first_text, $second_text), 'save'); + $this->assertText('multiform_test2_1multiform_test2_submit_button'); + $this->assertText('multiform_test2_2multiform_test2_submit_button'); + $this->assertNoText('test1 field is required.'); + $this->assertNoText('test2 field is required.'); + + // Send first form's required field. + $this->drupalPost(NULL, $first_text, 'save'); + $this->assertNoText('multiform_test2_1multiform_test2_submit_button'); + $this->assertText('test2 field is required.'); + + // Send second form's required field. + $this->drupalPost(NULL, $second_text, 'save'); + $this->assertNoText('multiform_test2_2multiform_test2_submit_button'); + $this->assertText('test1 field is required.'); + } + +}
\ No newline at end of file diff --git a/sites/all/modules/multiform/tests/multiform_test.info b/sites/all/modules/multiform/tests/multiform_test.info new file mode 100644 index 000000000..020dfa82e --- /dev/null +++ b/sites/all/modules/multiform/tests/multiform_test.info @@ -0,0 +1,14 @@ +name = Multiform test +description = Handle module for testing Multiform +core = 7.x + +dependencies[] = multiform +hidden = TRUE + +files[] = multiform_test.module +; Information added by Drupal.org packaging script on 2014-06-11 +version = "7.x-1.1" +core = "7.x" +project = "multiform" +datestamp = "1402457628" + diff --git a/sites/all/modules/multiform/tests/multiform_test.module b/sites/all/modules/multiform/tests/multiform_test.module new file mode 100644 index 000000000..973beb30b --- /dev/null +++ b/sites/all/modules/multiform/tests/multiform_test.module @@ -0,0 +1,171 @@ +<?php +/** + * @file + * + * + * + * @author Kálmán Hosszu - http://drupal.org/user/267481 + */ + +/* ====================== */ +/* ==== DRUPAL HOOKS ==== */ +/* ====================== */ + +/** + * Implementation of hook_menu(). + * + * @return An array of menu items. + */ +function multiform_test_menu() { + $items = array(); + + $items['multiform-test/1'] = array( + 'title' => 'Multiform test page 1', + 'page callback' => 'multiform_get_form', + 'page arguments' => array(array('multiform_test1_1'), array('multiform_test1_2')), + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); + + $items['multiform-test/2'] = array( + 'title' => 'Multiform test page 2', + 'page callback' => 'multiform_get_form', + 'page arguments' => array(array('multiform_test2_1'), array('multiform_test2_2')), + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); + + return $items; +} + + +/* ====================== */ +/* == MODULE FUNCTIONS == */ +/* ====================== */ + +/* FIRST TEST CASE */ + +/** + * Build multiform_test1_1 form. + * + * @param type $form + * @param type $form_state + * @return array + */ +function multiform_test1_1($form, $form_state) { + $form['submit'] = array( + '#type' => 'submit', + '#value' => 'save', + '#submit' => array('multiform_test1_submit_button'), + ); + + $form['delete'] = array( + '#type' => 'submit', + '#value' => 'delete', + '#submit' => array('multiform_test1_delete_button'), + ); + + return $form; +} + +/** + * Build multiform_test1_2 form. + * + * @param type $form + * @param type $form_state + * @return string + */ +function multiform_test1_2($form, $form_state) { + $form['submit'] = array( + '#type' => 'submit', + '#value' => 'save', + '#submit' => array('multiform_test1_submit_button'), + ); + + $form['delete'] = array( + '#type' => 'submit', + '#value' => 'delete', + '#submit' => array('multiform_test1_delete_button'), + ); + + return $form; +} + +/** + * Submit handing. + * + * @param type $form + * @param type $form_state + */ +function multiform_test1_submit_button($form, $form_state) { + drupal_set_message($form['#form_id'] . 'multiform_test1_submit_button'); +} + +/** + * Handling delete. + * + * @param type $form + * @param type $form_state + */ +function multiform_test1_delete_button($form, $form_state) { + drupal_set_message($form['#form_id'] . 'multiform_test1_delete_button'); +} + + +/* SECOND TEST CASE */ + +/** + * Build multiform_test2_1 form. + * + * @param type $form + * @param type $form_state + * @return array + */ +function multiform_test2_1($form, $form_state) { + $form['required_text_1'] = array( + '#type' => 'textfield', + '#title' => 'test1', + '#required' => TRUE, + ); + + $form['submit'] = array( + '#type' => 'submit', + '#value' => 'save', + '#submit' => array('multiform_test2_submit_button'), + ); + + return $form; +} + +/** + * Build multiform_test2_2 form. + * + * @param type $form + * @param type $form_state + * @return array + */ +function multiform_test2_2($form, $form_state) { + $form['required_text_2'] = array( + '#type' => 'textfield', + '#title' => 'test2', + '#required' => TRUE, + ); + + $form['submit'] = array( + '#type' => 'submit', + '#value' => 'save', + '#submit' => array('multiform_test2_submit_button'), + ); + + return $form; +} + +/** + * Submit handing. + * + * @param type $form + * @param type $form_state + */ +function multiform_test2_submit_button($form, $form_state) { + drupal_set_message($form['#form_id'] . 'multiform_test2_submit_button'); +}
\ No newline at end of file |