Skip to content
Snippets Groups Projects
feeds_mapper_config.test 3.71 KiB
<?php

/**
 * @file
 * Test cases for Feeds mapping configuration form.
 */

/**
 * Class for testing basic Feeds ajax mapping configurtaion form behavior.
 */
class FeedsMapperConfigTestCase extends FeedsMapperTestCase {
  public static function getInfo() {
    return array(
      'name' => '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');

    // 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',
    );
    $this->drupalPostAJAX(NULL, $edit, 'mapping_settings_update_0');

    // 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');

    // 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');