You are here

public function FeedsUIUserInterfaceTestCase::testEditFeedConfiguration in Feeds 6

Same name and namespace in other branches
  1. 8.2 feeds_ui/feeds_ui.test \FeedsUIUserInterfaceTestCase::testEditFeedConfiguration()
  2. 7.2 feeds_ui/feeds_ui.test \FeedsUIUserInterfaceTestCase::testEditFeedConfiguration()
  3. 7 feeds_ui/tests/feeds_ui.test \FeedsUIUserInterfaceTestCase::testEditFeedConfiguration()

UI functionality tests on feeds_ui_overview(), feeds_ui_create_form(), Change plugins on feeds_ui_edit_page().

File

feeds_ui/feeds_ui.test, line 27
Tests for Feeds Admin UI module.

Class

FeedsUIUserInterfaceTestCase
Test basic Feeds UI functionality.

Code

public function testEditFeedConfiguration() {

  // Create an importer.
  $this
    ->createImporterConfiguration('Test feed', 'test_feed');

  // Assert UI elements.
  $this
    ->drupalGet('admin/build/feeds/edit/test_feed');
  $this
    ->assertText('Basic settings');
  $this
    ->assertText('Fetcher');
  $this
    ->assertText('HTTP Fetcher');
  $this
    ->assertText('Parser');
  $this
    ->assertText('Common syndication parser');
  $this
    ->assertText('Processor');
  $this
    ->assertText('Node processor');
  $this
    ->assertText('Getting started');
  $this
    ->assertRaw('admin/build/feeds/edit/test_feed/settings');
  $this
    ->assertRaw('admin/build/feeds/edit/test_feed/settings/FeedsNodeProcessor');
  $this
    ->assertRaw('admin/build/feeds/edit/test_feed/fetcher');
  $this
    ->assertRaw('admin/build/feeds/edit/test_feed/parser');
  $this
    ->assertRaw('admin/build/feeds/edit/test_feed/processor');
  $this
    ->drupalGet('import');
  $this
    ->assertText('Page');

  // Select some other plugins.
  $this
    ->drupalGet('admin/build/feeds/edit/test_feed');
  $this
    ->clickLink('Change', 0);
  $this
    ->assertText('Select a fetcher');
  $edit = array(
    'plugin_key' => 'FeedsFileFetcher',
  );
  $this
    ->drupalPost('admin/build/feeds/edit/test_feed/fetcher', $edit, 'Save');
  $this
    ->clickLink('Change', 1);
  $this
    ->assertText('Select a parser');
  $edit = array(
    'plugin_key' => 'FeedsCSVParser',
  );
  $this
    ->drupalPost('admin/build/feeds/edit/test_feed/parser', $edit, 'Save');
  $this
    ->clickLink('Change', 2);
  $this
    ->assertText('Select a processor');
  $edit = array(
    'plugin_key' => 'FeedsUserProcessor',
  );
  $this
    ->drupalPost('admin/build/feeds/edit/test_feed/processor', $edit, 'Save');

  // Assert changed configuration.
  $this
    ->assertPlugins('test_feed', 'FeedsFileFetcher', 'FeedsCSVParser', 'FeedsUserProcessor');

  // Delete importer.
  $this
    ->drupalPost('admin/build/feeds/delete/test_feed', array(), 'Delete');
  $this
    ->drupalGet('import');
  $this
    ->assertNoText('Test feed');

  // Create the same importer again.
  $this
    ->createImporterConfiguration('Test feed', 'test_feed');

  // Test basic settings settings.
  $edit = array(
    'name' => 'Syndication feed',
    'content_type' => 'page',
    'import_period' => 3600,
  );
  $this
    ->drupalPost('admin/build/feeds/edit/test_feed/settings', $edit, 'Save');

  // Assert results of change.
  $this
    ->assertText('Edit importer: Syndication');
  $this
    ->assertText('Your changes have been saved.');
  $this
    ->assertText('Attached to: Page');
  $this
    ->assertText('Refresh: every 1 hour');
  $this
    ->drupalGet('admin/build/feeds');
  $this
    ->assertLink('Page');

  // Configure processor.
  $edit = array(
    'content_type' => 'story',
  );
  $this
    ->drupalPost('admin/build/feeds/edit/test_feed/settings/FeedsNodeProcessor', $edit, 'Save');
  $this
    ->assertFieldByName('content_type', 'story');

  // Create a feed node.
  $edit = array(
    'title' => 'Development Seed',
    'feeds[FeedsHTTPFetcher][source]' => $GLOBALS['base_url'] . '/' . drupal_get_path('module', 'feeds') . '/tests/feeds/developmentseed.rss2',
  );
  $this
    ->drupalPost('node/add/page', $edit, 'Save');
  $this
    ->assertText('Page Development Seed has been created.');

  // @todo Refreshing/deleting feed items. Needs to live in feeds.test
}