annotate sites/all/modules/entityreference/tests/entityreference.taxonomy.test @ 11:b0ee71395280

deleted .DS_Store files
author danieleb <danielebarchiesi@me.com>
date Mon, 28 Oct 2013 16:12:13 +0000
parents ce11bbd8f642
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2
danielebarchiesi@4 3 /**
danielebarchiesi@4 4 * Test for Entity Reference taxonomy integration.
danielebarchiesi@4 5 */
danielebarchiesi@4 6 class EntityReferenceTaxonomyTestCase extends DrupalWebTestCase {
danielebarchiesi@4 7 public static function getInfo() {
danielebarchiesi@4 8 return array(
danielebarchiesi@4 9 'name' => 'Entity Reference Taxonomy',
danielebarchiesi@4 10 'description' => 'Tests nodes with reference to terms as indexed.',
danielebarchiesi@4 11 'group' => 'Entity Reference',
danielebarchiesi@4 12 );
danielebarchiesi@4 13 }
danielebarchiesi@4 14
danielebarchiesi@4 15 public function setUp() {
danielebarchiesi@4 16 parent::setUp('entityreference', 'taxonomy');
danielebarchiesi@4 17
danielebarchiesi@4 18 // Create an entity reference field.
danielebarchiesi@4 19 $field = array(
danielebarchiesi@4 20 'entity_types' => array('node'),
danielebarchiesi@4 21 'settings' => array(
danielebarchiesi@4 22 'handler' => 'base',
danielebarchiesi@4 23 'target_type' => 'taxonomy_term',
danielebarchiesi@4 24 'handler_settings' => array(
danielebarchiesi@4 25 'target_bundles' => array(),
danielebarchiesi@4 26 ),
danielebarchiesi@4 27 ),
danielebarchiesi@4 28 'field_name' => 'field_entityreference_term',
danielebarchiesi@4 29 'type' => 'entityreference',
danielebarchiesi@4 30 );
danielebarchiesi@4 31 $field = field_create_field($field);
danielebarchiesi@4 32 $instance = array(
danielebarchiesi@4 33 'field_name' => 'field_entityreference_term',
danielebarchiesi@4 34 'bundle' => 'article',
danielebarchiesi@4 35 'entity_type' => 'node',
danielebarchiesi@4 36 );
danielebarchiesi@4 37
danielebarchiesi@4 38 // Enable the taxonomy-index behavior.
danielebarchiesi@4 39 $instance['settings']['behaviors']['taxonomy-index']['status'] = TRUE;
danielebarchiesi@4 40 field_create_instance($instance);
danielebarchiesi@4 41
danielebarchiesi@4 42 // Create a term reference field.
danielebarchiesi@4 43 $field = array(
danielebarchiesi@4 44 'translatable' => FALSE,
danielebarchiesi@4 45 'entity_types' => array('node'),
danielebarchiesi@4 46 'settings' => array(
danielebarchiesi@4 47 'allowed_values' => array(
danielebarchiesi@4 48 array(
danielebarchiesi@4 49 'vocabulary' => 'terms',
danielebarchiesi@4 50 'parent' => 0,
danielebarchiesi@4 51 ),
danielebarchiesi@4 52 ),
danielebarchiesi@4 53 ),
danielebarchiesi@4 54 'field_name' => 'field_taxonomy_term',
danielebarchiesi@4 55 'type' => 'taxonomy_term_reference',
danielebarchiesi@4 56 );
danielebarchiesi@4 57 $field = field_create_field($field);
danielebarchiesi@4 58 $instance = array(
danielebarchiesi@4 59 'field_name' => 'field_taxonomy_term',
danielebarchiesi@4 60 'bundle' => 'article',
danielebarchiesi@4 61 'entity_type' => 'node',
danielebarchiesi@4 62 );
danielebarchiesi@4 63 field_create_instance($instance);
danielebarchiesi@4 64
danielebarchiesi@4 65 // Create a terms vocobulary.
danielebarchiesi@4 66 $vocabulary = new stdClass();
danielebarchiesi@4 67 $vocabulary->name = 'Terms';
danielebarchiesi@4 68 $vocabulary->machine_name = 'terms';
danielebarchiesi@4 69 taxonomy_vocabulary_save($vocabulary);
danielebarchiesi@4 70
danielebarchiesi@4 71 // Create term.
danielebarchiesi@4 72 for ($i = 1; $i <= 2; $i++) {
danielebarchiesi@4 73 $term = new stdClass();
danielebarchiesi@4 74 $term->name = "term $i";
danielebarchiesi@4 75 $term->vid = 1;
danielebarchiesi@4 76 taxonomy_term_save($term);
danielebarchiesi@4 77 }
danielebarchiesi@4 78 }
danielebarchiesi@4 79
danielebarchiesi@4 80 /**
danielebarchiesi@4 81 * Test referencing a term using entity reference field.
danielebarchiesi@4 82 */
danielebarchiesi@4 83 public function testNodeIndex() {
danielebarchiesi@4 84 // Asert node insert with reference to term.
danielebarchiesi@4 85 $settings = array();
danielebarchiesi@4 86 $settings['type'] = 'article';
danielebarchiesi@4 87 $settings['field_entityreference_term'][LANGUAGE_NONE][0]['target_id'] = 1;
danielebarchiesi@4 88 $node = $this->drupalCreateNode($settings);
danielebarchiesi@4 89
danielebarchiesi@4 90 $this->assertEqual(taxonomy_select_nodes(1), array($node->nid));
danielebarchiesi@4 91
danielebarchiesi@4 92 // Asert node update with reference to term.
danielebarchiesi@4 93 node_save($node);
danielebarchiesi@4 94 $this->assertEqual(taxonomy_select_nodes(1), array($node->nid));
danielebarchiesi@4 95
danielebarchiesi@4 96 // Assert node update with reference to term and taxonomy reference to
danielebarchiesi@4 97 // another term.
danielebarchiesi@4 98 $wrapper = entity_metadata_wrapper('node', $node);
danielebarchiesi@4 99 $wrapper->field_taxonomy_term->set(2);
danielebarchiesi@4 100 $wrapper->save();
danielebarchiesi@4 101
danielebarchiesi@4 102 $this->assertEqual(taxonomy_select_nodes(1), array($node->nid));
danielebarchiesi@4 103 $this->assertEqual(taxonomy_select_nodes(2), array($node->nid));
danielebarchiesi@4 104
danielebarchiesi@4 105 // Assert node update with reference to term and taxonomy reference to
danielebarchiesi@4 106 // same term.
danielebarchiesi@4 107 $wrapper->field_taxonomy_term->set(1);
danielebarchiesi@4 108 $wrapper->save();
danielebarchiesi@4 109 $this->assertEqual(taxonomy_select_nodes(1), array($node->nid));
danielebarchiesi@4 110
danielebarchiesi@4 111 $wrapper->delete();
danielebarchiesi@4 112 $this->assertFalse(taxonomy_select_nodes(1));
danielebarchiesi@4 113 }
danielebarchiesi@4 114
danielebarchiesi@4 115 }