summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/taxonomy/taxonomy.module6
-rw-r--r--modules/taxonomy/taxonomy.test14
2 files changed, 18 insertions, 2 deletions
diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module
index 7c6889c03..1db756458 100644
--- a/modules/taxonomy/taxonomy.module
+++ b/modules/taxonomy/taxonomy.module
@@ -1639,8 +1639,10 @@ function taxonomy_node_validate($node, $form) {
*/
function taxonomy_node_update_index($node) {
$output = array();
- foreach ($node->taxonomy as $term) {
- $output[] = $term->name;
+ if (isset($node->taxonomy) && is_array($node->taxonomy)) {
+ foreach ($node->taxonomy as $term) {
+ $output[] = $term->name;
+ }
}
if (count($output)) {
return '<strong>(' . implode(', ', $output) . ')</strong>';
diff --git a/modules/taxonomy/taxonomy.test b/modules/taxonomy/taxonomy.test
index 24f12bd50..87123bc39 100644
--- a/modules/taxonomy/taxonomy.test
+++ b/modules/taxonomy/taxonomy.test
@@ -354,6 +354,20 @@ class TaxonomyTermUnitTest extends TaxonomyWebTestCase {
// Confirm that the node type argument returns a single node association.
$this->assertEqual(taxonomy_term_count_nodes($term3->tid, 'page'), 1, t("Term is associated with one node of type 'page'."));
+
+ // Test hook_nodeapi_update_index().
+ // Load the node so taxonomy terms are fully populated.
+ $node = node_load($node1->nid);
+ $output = taxonomy_node_update_index($node);
+ $this->assertFalse(empty($output), t('Node with taxonomy has content when calling update index'));
+ // Remove all taxonomy.
+ unset($node->taxonomy);
+ $output = taxonomy_node_update_index($node);
+ $this->assertTrue(empty($output), t('Node with no taxonomy has no content when calling update index'));
+ // Set taxonomy to a scalar (non-array).
+ $node->taxonomy = 1;
+ $output = taxonomy_node_update_index($node);
+ $this->assertTrue(empty($output), t('Node with non-array taxonomy has no content when calling update index'));
}
}