t('CSV import to taxonomy'), 'description' => t('Tests a standalone import configuration that uses file fetcher and CSV parser to import taxonomy terms from a CSV file.'), 'group' => t('Feeds'), ); } /** * Set up test. */ public function setUp() { parent::setUp('taxonomy', 'ctools', 'feeds', 'feeds_ui', 'job_scheduler'); $this->drupalLogin( $this->drupalCreateUser( array( 'administer feeds', 'administer taxonomy', ) ) ); } /** * Test node creation, refreshing/deleting feeds and feed items. */ public function test() { // Create an importer. $this->createImporterConfiguration('Term import', 'term_import'); // Set and configure plugins and mappings. $this->setPlugin('term_import', 'FeedsFileFetcher'); $this->setPlugin('term_import', 'FeedsCSVParser'); $this->setPlugin('term_import', 'FeedsTermProcessor'); $mappings = array( '0' => array( 'source' => 'name', 'target' => 'name', 'unique' => 1, ), ); $this->addMappings('term_import', $mappings); // Use standalone form. $edit = array( 'content_type' => '', ); $this->drupalPost('admin/structure/feeds/edit/term_import/settings', $edit, 'Save'); $edit = array( 'name' => 'Addams vocabulary', 'machine_name' => 'addams', ); $this->drupalPost('admin/structure/taxonomy/add', $edit, t('Save')); $edit = array( 'vocabulary' => 'addams', ); $this->drupalPost('admin/structure/feeds/edit/term_import/settings/FeedsTermProcessor', $edit, t('Save')); // Import and assert. $this->importFile('term_import', $this->absolutePath() .'/tests/feeds/users.csv'); $this->assertText('Created 5 terms in Addams vocabulary.'); $this->drupalGet('admin/structure/taxonomy/addams'); $this->assertText('Morticia'); $this->assertText('Fester'); $this->assertText('Gomez'); $this->assertText('Pugsley'); // Import again. $this->importFile('term_import', $this->absolutePath() .'/tests/feeds/users.csv'); $this->assertText('There are no new terms.'); // Add a term manually, delete all terms, this term should still stand. $edit = array( 'name' => 'Cousin Itt', ); $this->drupalPost('admin/structure/taxonomy/addams/add', $edit, t('Save')); $this->drupalPost('import/term_import/delete-items', array(), t('Delete')); $this->drupalGet('admin/structure/taxonomy/addams'); $this->assertText('Cousin Itt'); $this->assertNoText('Morticia'); $this->assertNoText('Fester'); $this->assertNoText('Gomez'); $this->assertNoText('Pugsley'); } }