'Mapper: Config', 'description' => 'Test the mapper configuration UI.', 'group' => 'Feeds', ); } public function setUp() { parent::setUp(array('feeds_tests')); } /** * Basic test of mapping configuration. */ public function test() { // Create importer configuration. $this->createImporterConfiguration(); $this->addMappings('syndication', array( array( 'source' => 'url', 'target' => 'test_target', ), )); // Click gear to get form. $this->drupalPostAJAX(NULL, array(), 'mapping_settings_edit_0'); $second_callback_value = $this->randomString(); // Set some settings. $edit = array( 'config[0][settings][checkbox]' => 1, 'config[0][settings][textfield]' => 'Some text', 'config[0][settings][textarea]' => 'Textarea value: Didery dofffffffffffffffffffffffffffffffffffff', 'config[0][settings][radios]' => 'option1', 'config[0][settings][select]' => 'option4', 'config[0][settings][second_value]' => $second_callback_value, ); $this->drupalPostAJAX(NULL, $edit, 'mapping_settings_update_0'); $this->assertText(t('* Changes made to target configuration are stored temporarily. Click Save to make your changes permanent.')); // Click Save. $this->drupalPost(NULL, array(), t('Save')); // Reload. $this->drupalGet('admin/structure/feeds/syndication/mapping'); // See if our settings were saved. $this->assertText('Checkbox active.'); $this->assertText('Textfield value: Some text'); $this->assertText('Textarea value: Didery dofffffffffffffffffffffffffffffffffffff'); $this->assertText('Radios value: Option 1'); $this->assertText('Select value: Another One'); $this->assertText(t('Second summary: @value', array('@value' => $second_callback_value))); // Check that settings are in db. $config = unserialize(db_query("SELECT config FROM {feeds_importer} WHERE id='syndication'")->fetchField()); $settings = $config['processor']['config']['mappings'][0]; $this->assertEqual($settings['checkbox'], 1); $this->assertEqual($settings['textfield'], 'Some text'); $this->assertEqual($settings['textarea'], 'Textarea value: Didery dofffffffffffffffffffffffffffffffffffff'); $this->assertEqual($settings['radios'], 'option1'); $this->assertEqual($settings['select'], 'option4'); $this->assertEqual($settings['second_value'], $second_callback_value); // Check that form validation works. // Click gear to get form. $this->drupalPostAJAX(NULL, array(), 'mapping_settings_edit_0'); // Set some settings. $edit = array( // Required form item. 'config[0][settings][textfield]' => '', ); $this->drupalPostAJAX(NULL, $edit, 'mapping_settings_update_0'); $this->assertText('A text field field is required.'); $this->drupalPost(NULL, array(), t('Save')); // Reload. $this->drupalGet('admin/structure/feeds/syndication/mapping'); // Value has not changed. $this->assertText('Textfield value: Some text'); // Check that multiple mappings work. $this->addMappings('syndication', array( 1 => array( 'source' => 'url', 'target' => 'test_target', ), )); $this->assertText('Checkbox active.'); $this->assertText('Checkbox inactive.'); // Click gear to get form. $this->drupalPostAJAX(NULL, array(), 'mapping_settings_edit_1'); // Set some settings. $edit = array( 'config[1][settings][textfield]' => 'Second mapping text', ); $this->drupalPostAJAX(NULL, $edit, 'mapping_settings_update_1'); // Click Save. $this->drupalPost(NULL, array(), t('Save')); // Reload. $this->drupalGet('admin/structure/feeds/syndication/mapping'); $this->assertText('Checkbox active.'); $this->assertText('Checkbox inactive.'); $this->assertText('Second mapping text'); } }