1 | <?php |
---|
2 | module_load_include('test', 'feeds', 'tests/feeds'); |
---|
3 | |
---|
4 | /** |
---|
5 | * @file |
---|
6 | * Tests for plugins/FeedsTermProcessor.inc |
---|
7 | */ |
---|
8 | |
---|
9 | /** |
---|
10 | * Test aggregating a feed as data records. |
---|
11 | */ |
---|
12 | class FeedsCSVtoTermsTest extends FeedsWebTestCase { |
---|
13 | public static function getInfo() { |
---|
14 | return array( |
---|
15 | 'name' => 'CSV import to taxonomy', |
---|
16 | 'description' => 'Tests a standalone import configuration that uses file fetcher and CSV parser to import taxonomy terms from a CSV file.', |
---|
17 | 'group' => 'Feeds', |
---|
18 | ); |
---|
19 | } |
---|
20 | |
---|
21 | /** |
---|
22 | * Test node creation, refreshing/deleting feeds and feed items. |
---|
23 | */ |
---|
24 | public function test() { |
---|
25 | |
---|
26 | // Create an importer. |
---|
27 | $this->createImporterConfiguration('Term import', 'term_import'); |
---|
28 | |
---|
29 | // Set and configure plugins and mappings. |
---|
30 | $this->setPlugin('term_import', 'FeedsFileFetcher'); |
---|
31 | $this->setPlugin('term_import', 'FeedsCSVParser'); |
---|
32 | $this->setPlugin('term_import', 'FeedsTermProcessor'); |
---|
33 | $mappings = array( |
---|
34 | '0' => array( |
---|
35 | 'source' => 'name', |
---|
36 | 'target' => 'name', |
---|
37 | 'unique' => 1, |
---|
38 | ), |
---|
39 | ); |
---|
40 | $this->addMappings('term_import', $mappings); |
---|
41 | |
---|
42 | // Use standalone form. |
---|
43 | $edit = array( |
---|
44 | 'content_type' => '', |
---|
45 | ); |
---|
46 | $this->drupalPost('admin/build/feeds/edit/term_import/settings', $edit, 'Save'); |
---|
47 | |
---|
48 | $edit = array( |
---|
49 | 'name' => 'Addams vocabulary', |
---|
50 | ); |
---|
51 | $this->drupalPost('admin/content/taxonomy/add/vocabulary', $edit, t('Save')); |
---|
52 | |
---|
53 | $edit = array( |
---|
54 | 'vocabulary' => 1, |
---|
55 | ); |
---|
56 | $this->drupalPost('admin/build/feeds/edit/term_import/settings/FeedsTermProcessor', $edit, t('Save')); |
---|
57 | |
---|
58 | // Import and assert. |
---|
59 | $this->importFile('term_import', $this->absolutePath() .'/tests/feeds/users.csv'); |
---|
60 | $this->assertText('Created 5 terms in Addams vocabulary.'); |
---|
61 | $this->drupalGet('admin/content/taxonomy/1'); |
---|
62 | $this->assertText('Fester'); |
---|
63 | $this->assertText('Gomez'); |
---|
64 | $this->assertText('Morticia'); |
---|
65 | $this->assertText('Pugsley'); |
---|
66 | $this->assertText('Wednesday'); |
---|
67 | |
---|
68 | // Import again. |
---|
69 | $this->importFile('term_import', $this->absolutePath() .'/tests/feeds/users.csv'); |
---|
70 | $this->assertText('There are no new terms.'); |
---|
71 | |
---|
72 | // Add a term manually, delete all terms, this term should still stand. |
---|
73 | $edit = array( |
---|
74 | 'name' => 'Cousin Itt', |
---|
75 | ); |
---|
76 | $this->drupalPost('admin/content/taxonomy/1/add/term', $edit, t('Save')); |
---|
77 | $this->drupalPost('import/term_import/delete-items', array(), t('Delete')); |
---|
78 | $this->drupalGet('admin/content/taxonomy/1'); |
---|
79 | $this->assertText('Cousin Itt'); |
---|
80 | $this->assertNoText('Morticia'); |
---|
81 | $this->assertNoText('Fester'); |
---|
82 | $this->assertNoText('Gomez'); |
---|
83 | $this->assertNoText('Pugsley'); |
---|
84 | $this->assertNoText('Wednesday'); |
---|
85 | } |
---|
86 | } |
---|