function FeedsMapperTaxonomyTestCase::testRSSCategoriesToTaxonomy in Feeds 7
Same name and namespace in other branches
- 6 tests/feeds_mapper_taxonomy.test \FeedsMapperTaxonomyTestCase::testRSSCategoriesToTaxonomy()
Test aggregating RSS categories to taxonomy.
File
- tests/
feeds_mapper_taxonomy.test, line 118
Class
- FeedsMapperTaxonomyTestCase
- Class for testing Feeds <em>content</em> mapper.
Code
function testRSSCategoriesToTaxonomy() {
// Add mapping to tags vocabulary.
$this
->addMappings('syndication', array(
array(
'source' => 'tags',
'target' => 'taxonomy:1',
),
));
// Aggregate feed node with "Tag" vocabulary.
$nid = $this
->createFeedNode();
// Assert 10 items aggregated after creation of the node.
$this
->assertText('Created 10 Article nodes.');
// There should be 30 terms and 44 term-node relations.
$this
->assertEqual(30, db_query("SELECT count(*) FROM {term_data}")
->fetchField(), "Found correct number of terms.");
$this
->assertEqual(44, db_query("SELECT count(*) FROM {term_node}")
->fetchField(), "Found correct number of term-node relations.");
// Take a look at the actual terms on frontpage.
$this
->drupalGet('node');
$terms = array(
'authentication',
'custom mapping',
'data visualization',
'Drupal',
'Drupal planet',
'faceted search',
'GeoDC',
'graphs',
'interface',
'intranet',
'localization',
'localization client',
'localization server',
'map-basec browser',
'mapbox',
'microfinance',
'MIX Market',
'open atrium',
'open data',
'open source',
'Peru',
'salesforce',
'siteminder',
'siteminder module',
'software freedom day',
'translation',
'translation server',
'usability',
'Washington DC',
'World Bank',
);
foreach ($terms as $term) {
$this
->assertTaxonomyTerm($term);
}
// Delete all items, all associations are gone.
$this
->drupalPost('node/' . $nid . '/delete-items', array(), 'Delete');
$this
->assertText('Deleted 10 nodes.');
$this
->assertEqual(30, db_query("SELECT count(*) FROM {term_data}")
->fetchField(), "Found correct number of terms.");
$this
->assertEqual(0, db_query("SELECT count(*) FROM {term_node}")
->fetchField(), "Found correct number of term-node relations.");
// Remove "Tag" setting, import again.
$edit = array(
'tags' => FALSE,
);
$this
->drupalPost('admin/content/taxonomy/edit/vocabulary/1', $edit, 'Save');
$this
->drupalPost('node/' . $nid . '/import', array(), 'Import');
$this
->assertText('Created 10 Article nodes.');
// We should only get one term-node association per node.
$this
->assertEqual(30, db_query("SELECT count(*) FROM {term_data}")
->fetchField(), "Found correct number of terms.");
$this
->assertEqual(10, db_query("SELECT count(*) FROM {term_node}")
->fetchField(), "Found correct number of term-node relations.");
// Delete all items.
$this
->drupalPost('node/' . $nid . '/delete-items', array(), 'Delete');
// Set vocabulary to multiple terms, import again.
$edit = array(
'multiple' => TRUE,
);
$this
->drupalPost('admin/content/taxonomy/edit/vocabulary/1', $edit, 'Save');
$this
->drupalPost('node/' . $nid . '/import', array(), 'Import');
$this
->assertText('Created 10 Article nodes.');
// We should get all term-node associations again.
$this
->assertEqual(30, db_query("SELECT count(*) FROM {term_data}")
->fetchField(), "Found correct number of terms.");
$this
->assertEqual(44, db_query("SELECT count(*) FROM {term_node}")
->fetchField(), "Found correct number of term-node relations.");
// Delete all items.
$this
->drupalPost('node/' . $nid . '/delete-items', array(), 'Delete');
// Remove a term, import again.
$this
->drupalPost('admin/content/taxonomy/edit/term/1', array(), 'Delete');
$this
->drupalPost(NULL, array(), 'Delete');
$this
->assertText('Deleted term');
$this
->drupalPost('node/' . $nid . '/import', array(), 'Import');
$this
->assertText('Created 10 Article nodes.');
// This term should now be missing from term-node associations.
$this
->assertEqual(29, db_query("SELECT count(*) FROM {term_data}")
->fetchField(), "Found correct number of terms.");
$this
->assertEqual(39, db_query("SELECT count(*) FROM {term_node}")
->fetchField(), "Found correct number of term-node relations.");
}