Skip to content
Snippets Groups Projects
Commit a422008a authored by Alex Barth's avatar Alex Barth
Browse files

Adjust and improve tests along with addition of Feeds defaults module.

parent ccd9d361
No related branches found
No related tags found
No related merge requests found
......@@ -52,7 +52,7 @@ class FeedsRSStoNodesTest extends FeedsWebTestCase {
$nid = $this->createFeedNode();
// Assert 10 items aggregated after creation of the node.
$this->assertText('Created 10 story nodes.');
$this->assertText('Created 10 Story nodes.');
// Navigate to feed node, there should be Feeds tabs visible.
......@@ -121,7 +121,7 @@ class FeedsRSStoNodesTest extends FeedsWebTestCase {
// Import again, we should find new content.
$this->drupalPost('node/'. $nid .'/import', array(), 'Import');
$this->assertText('Created 10 story nodes.');
$this->assertText('Created 10 Story nodes.');
// Assert DB status, there should be 10 again.
$count = db_result(db_query('SELECT COUNT(*) FROM {feeds_node_item}'));
......@@ -184,7 +184,7 @@ class FeedsRSStoNodesTest extends FeedsWebTestCase {
// Import, assert 10 items aggregated after creation of the node.
$this->importURL('syndication_standalone');
$this->assertText('Created 10 story nodes.');
$this->assertText('Created 10 Story nodes.');
// Assert accuracy of aggregated information.
$this->drupalGet('node');
......@@ -241,7 +241,7 @@ class FeedsRSStoNodesTest extends FeedsWebTestCase {
// Import again, we should find new content.
$this->drupalPost('import/syndication_standalone', array(), 'Import');
$this->assertText('Created 10 story nodes.');
$this->assertText('Created 10 Story nodes.');
// Assert DB status, there should be 10 again.
$count = db_result(db_query('SELECT COUNT(*) FROM {feeds_node_item}'));
......@@ -350,7 +350,7 @@ class FeedsRSStoDataTest extends FeedsWebTestCase {
// Create standard feed node.
$nid = $this->createFeedNode('rss');
// Assert 10 items aggregated after creation of the node.
$this->assertText('Created 10 records in feeds_data_rss.');
$this->assertText('Created 10 items.');
// Login with a user with administer data permissions and review aggregated
// content.
......@@ -392,7 +392,7 @@ class FeedsRSStoDataTest extends FeedsWebTestCase {
// Import again.
$this->drupalPost('node/'. $nid .'/import', array(), 'Import');
$this->assertText('There are no new records.');
$this->assertText('There are no new items.');
// Assert DB status, there still shouldn't be more than 10 items.
$count = db_result(db_query('SELECT COUNT(*) FROM {feeds_data_rss}'));
......@@ -400,7 +400,7 @@ class FeedsRSStoDataTest extends FeedsWebTestCase {
// Now delete all items.
$this->drupalPost('node/'. $nid .'/delete-items', array(), 'Delete');
$this->assertText('Deleted 10 records from feeds_data_rss.');
$this->assertText('Deleted 10 items.');
// Assert DB status, now there should be no items.
// @todo: fails, is there something cached?
......@@ -409,7 +409,7 @@ class FeedsRSStoDataTest extends FeedsWebTestCase {
// Import again, we should find new content.
$this->drupalPost('node/'. $nid .'/import', array(), 'Import');
$this->assertText('Created 10 records in feeds_data_rss.');
$this->assertText('Created 10 items.');
// Assert DB status, there should be 10 again.
$count = db_result(db_query('SELECT COUNT(*) FROM {feeds_data_rss}'));
......@@ -492,12 +492,7 @@ class FeedsCSVtoUsersTest extends FeedsWebTestCase {
$this->drupalPost('admin/build/feeds/edit/user_import/settings', $edit, 'Save');
// Import CSV file.
$file = dirname($GLOBALS['_SERVER']['SCRIPT_FILENAME']) .'/'. drupal_get_path('module', 'feeds') .'/tests/feeds/users.csv';
$this->assertTrue(file_exists($file), 'Source file exists');
$edit = array(
'files[feeds]' => $file,
);
$this->drupalPost('import/user_import', $edit, 'Import');
$this->importFile('user_import', $this->absolutePath() .'/tests/feeds/users.csv');
// Assert result.
$this->assertText('Created 4 users.');
......@@ -691,7 +686,7 @@ class FeedsSyndicationParserTestCase extends FeedsWebTestCase {
$this->setPlugin('syndication', $parser);
foreach ($this->feedUrls() as $url => $assertions) {
$this->createFeedNode('syndication', $url);
$this->assertText('Created '. $assertions['item_count'] .' story nodes.');
$this->assertText('Created '. $assertions['item_count'] .' Story nodes.');
}
}
}
......
......@@ -14,12 +14,64 @@ class FeedsWebTestCase extends DrupalWebTestCase {
/**
* Debug utility. Shows current screen.
*/
public function show() {
public function show($path = NULL) {
if ($path !== NULL) {
$this->drupalGet($path);
}
// Use error, this will make sure we don't forget accidental calls to show()
// in our tests.
$this->error($this->content);
}
/**
* Absolute path to Drupal root.
*/
public function absolute() {
return dirname($GLOBALS['_SERVER']['SCRIPT_FILENAME']);
}
/**
* Get the absolute directory path of the feeds module.
*/
public function absolutePath() {
return $this->absolute() .'/'. drupal_get_path('module', 'feeds');
}
/**
* Generate an OPML test feed.
*
* The purpose of this function is to create a dynamic OPML feed that points
* too feeds included in this test.
*/
public function generateOPML() {
$path = $GLOBALS['base_url'] .'/'. drupal_get_path('module', 'feeds') .'/tests/feeds/';
$output =
'<?xml version="1.0" encoding="utf-8"?>
<opml version="1.1">
<head>
<title>Feeds test OPML</title>
<dateCreated>Fri, 16 Oct 2009 02:53:17 GMT</dateCreated>
<ownerName></ownerName>
</head>
<body>
<outline text="Feeds test group" >
<outline title="Development Seed - Technological Solutions for Progressive Organizations" text="" xmlUrl="'. $path .'developmentseed.rss2" type="rss" />
<outline title="Magyar Nemzet Online - H’rek" text="" xmlUrl="'. $path .'feed_without_guid.rss2" type="rss" />
<outline title="Drupal planet" text="" type="rss" xmlUrl="'. $path .'drupalplanet.rss2" />
</outline>
</body>
</opml>';
// UTF 8 encode output string and write it to disk
$output = utf8_encode($output);
$file = $this->absolute() .'/'. file_directory_path() .'/test-opml-'. $this->randomName() .'.opml';
$handle = fopen($file, 'w');
fwrite($handle, $output);
fclose($handle);
return $file;
}
/**
* Create an importer configuration.
*
......@@ -82,21 +134,23 @@ class FeedsWebTestCase extends DrupalWebTestCase {
* @return
* The node id of the node created.
*/
public function createFeedNode($id = 'syndication', $feed_url = NULL, $title = '') {
public function createFeedNode($id = 'syndication', $feed_url = NULL, $title = '', $content_type = NULL) {
if (empty($feed_url)) {
$feed_url = $GLOBALS['base_url'] .'/'. drupal_get_path('module', 'feeds') .'/tests/feeds/developmentseed.rss2';
}
// Ask the configuration for the content type to create.
$config = unserialize(db_result(db_query('SELECT config FROM {feeds_importer} WHERE id = "%s"', $id)));
$content_type = $config['content_type'];
$this->assertFalse(empty($content_type), 'Valid content type found: '. $content_type);
// If content type not given, retrieve it.
if (!$content_type) {
$config = unserialize(db_result(db_query('SELECT config FROM {feeds_importer} WHERE id = "%s"', $id)));
$content_type = $config['content_type'];
$this->assertFalse(empty($content_type), 'Valid content type found: '. $content_type);
}
// Create a feed node.
$edit = array(
'title' => $title,
'feeds[FeedsHTTPFetcher][source]' => $feed_url,
);
$this->drupalPost('node/add/'. $content_type, $edit, 'Save');
$this->drupalPost('node/add/'. str_replace('_', '-', $content_type), $edit, 'Save');
$this->assertText('has been created.');
// Get the node id from URL.
......@@ -127,10 +181,10 @@ class FeedsWebTestCase extends DrupalWebTestCase {
* @return
* An array of node ids of the nodes created.
*/
public function createFeedNodes($id = 'syndication', $num = 20) {
public function createFeedNodes($id = 'syndication', $num = 20, $content_type = NULL) {
$nids = array();
for ($i = 0; $i < $num; $i++) {
$nids[] = $this->createFeedNode($id, NULL, $this->randomName());
$nids[] = $this->createFeedNode($id, NULL, $this->randomName(), $content_type);
}
return $nids;
}
......@@ -159,6 +213,18 @@ class FeedsWebTestCase extends DrupalWebTestCase {
$this->assertEqual(1, db_result(db_query('SELECT COUNT(*) FROM {feeds_schedule} WHERE id = "%s" AND callback = "expire" AND last_scheduled_time = 0 AND scheduled = 0', $id)));
}
/**
* Import a file through the import form. Assumes FeedsFileFetcher in place.
*/
public function importFile($id, $file) {
$this->assertTrue(file_exists($file), 'Source file exists');
$edit = array(
'files[feeds]' => $file,
);
$this->drupalPost('import/'. $id, $edit, 'Import');
}
/**
* Assert a feeds configuration's plugins.
*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment