'Feeds UI user interface', 'description' => 'Tests Feeds Admin UI module\'s GUI.', 'group' => 'Feeds', ); } /** * UI functionality tests on * feeds_ui_overview(), * feeds_ui_create_form(), * Change plugins on feeds_ui_edit_page(). */ 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 } }