feeds_entity.test in Feeds 7.2
Test cases for entity API integration.
File
tests/feeds_entity.testView source
<?php
/**
* @file
* Test cases for entity API integration.
*/
/**
* Tests for Entity API integration.
*/
class FeedsEntityCase extends FeedsWebTestCase {
/**
* {@inheritdoc}
*/
public static function getInfo() {
return array(
'name' => 'Feeds entity tests',
'description' => 'Test integration with the entity property API.',
'group' => 'Feeds',
'dependencies' => array(
'entity',
),
);
}
/**
* {@inheritdoc}
*/
public function setUp() {
parent::setUp(array(
'entity',
));
// Create an importer configuration.
$this
->createImporterConfiguration('Syndication', 'syndication');
$this
->addMappings('syndication', array(
0 => array(
'source' => 'title',
'target' => 'title',
'unique' => FALSE,
),
1 => array(
'source' => 'description',
'target' => 'body',
),
2 => array(
'source' => 'timestamp',
'target' => 'created',
),
3 => array(
'source' => 'url',
'target' => 'url',
'unique' => TRUE,
),
4 => array(
'source' => 'guid',
'target' => 'guid',
'unique' => TRUE,
),
));
}
/**
* Tests getting feeds item properties on an entity.
*
* @covers feeds_get_feeds_item_property()
*/
public function testGetFeedsItemProperty() {
// Create a feed node and import 10 items.
$feed_nid = $this
->createFeedNode();
$this
->assertText('Created 10 nodes');
// Create entity metadata wrapper for node.
$node_wrapper = entity_metadata_wrapper('node', 2);
// Property 'feed_nid'.
$this
->assertEqual($feed_nid, $node_wrapper->feed_nid
->value());
// Property 'feed_node'.
$feed_node = $node_wrapper->feed_node
->value();
$this
->assertEqual($feed_nid, $feed_node->nid);
// Property 'feeds_item_guid'.
$this
->assertEqual('974 at http://developmentseed.org', $node_wrapper->feeds_item_guid
->value());
// Property 'feeds_item_url'.
$this
->assertEqual('http://developmentseed.org/blog/2009/oct/06/open-atrium-translation-workflow-two-way-updating', $node_wrapper->feeds_item_url
->value());
}
/**
* Tests getting feeds item properties on an existing entity without a
* feeds_item.
*
* @covers feeds_get_feeds_item_property()
*/
public function testGetFeedsItemPropertyNoFeedsItem() {
// Create a new node.
$node = $this
->drupalCreateNode();
// Create entity metadata wrapper for node.
$node_wrapper = entity_metadata_wrapper('node', $node);
// Assert NULL for each property.
$this
->assertNull($node_wrapper->feed_nid
->value());
$this
->assertNull($node_wrapper->feed_node
->value());
$this
->assertNull($node_wrapper->feeds_item_guid
->value());
$this
->assertNull($node_wrapper->feeds_item_url
->value());
}
/**
* Tests getting feeds item properties on a new entity.
*
* @covers feeds_get_feeds_item_property()
*/
public function testGetFeedsItemPropertyNewEntity() {
// Create a feed node and import 10 items.
$feed_nid = $this
->createFeedNode();
$this
->assertText('Created 10 nodes');
// Create a new node.
$node = new stdClass();
$node->type = 'page';
$node->title = $this
->randomName(8);
$node->changed = REQUEST_TIME;
$node->created = REQUEST_TIME;
$node->is_new = TRUE;
node_object_prepare($node);
// Populate properties that are set by node_object_prepare().
$node->log = 'Created by FeedsNodeProcessor';
$node->uid = 0;
// Add a feeds_item property on the node.
$node->feeds_item = new stdClass();
$node->feeds_item->is_new = TRUE;
$node->feeds_item->entity_id = 0;
$node->feeds_item->entity_type = 'node';
$node->feeds_item->id = 'syndication';
$node->feeds_item->feed_nid = $feed_nid;
$node->feeds_item->imported = REQUEST_TIME;
$node->feeds_item->hash = '';
$node->feeds_item->url = 'http://www.example.com';
$node->feeds_item->guid = '1234';
// Create entity metadata wrapper for node.
$node_wrapper = entity_metadata_wrapper('node', $node);
// Property 'feed_nid'.
$this
->assertEqual($feed_nid, $node_wrapper->feed_nid
->value());
// Property 'feed_node'.
$feed_node = $node_wrapper->feed_node
->value();
$this
->assertEqual($feed_nid, $feed_node->nid);
// Property 'feeds_item_guid'.
$this
->assertEqual('1234', $node_wrapper->feeds_item_guid
->value());
// Property 'feeds_item_url'.
$this
->assertEqual('http://www.example.com', $node_wrapper->feeds_item_url
->value());
}
/**
* Tests getting feeds item properties on a new entity without a feeds_item.
*
* @covers feeds_get_feeds_item_property()
*/
public function testGetFeedsItemPropertyNewEntityNoFeedsItem() {
// Create a new node.
$node = new stdClass();
$node->type = 'page';
$node->title = $this
->randomName(8);
$node->changed = REQUEST_TIME;
$node->created = REQUEST_TIME;
$node->is_new = TRUE;
node_object_prepare($node);
// Populate properties that are set by node_object_prepare().
$node->log = 'Created by FeedsNodeProcessor';
$node->uid = 0;
// Create entity metadata wrapper for node.
$node_wrapper = entity_metadata_wrapper('node', $node);
// Assert NULL for each property.
$this
->assertNull($node_wrapper->feed_nid
->value());
$this
->assertNull($node_wrapper->feed_node
->value());
$this
->assertNull($node_wrapper->feeds_item_guid
->value());
$this
->assertNull($node_wrapper->feeds_item_url
->value());
}
}
Classes
Name![]() |
Description |
---|---|
FeedsEntityCase | Tests for Entity API integration. |