diff options
author | Angie Byron <webchick@24967.no-reply.drupal.org> | 2008-09-24 18:42:00 +0000 |
---|---|---|
committer | Angie Byron <webchick@24967.no-reply.drupal.org> | 2008-09-24 18:42:00 +0000 |
commit | 991ff539c32bb61bffb4b41d132bb3b8b35c8ece (patch) | |
tree | a34cf527ea6472dcc0922ed52e72fc8750f2dd3e /modules | |
parent | b43010c5bdccb7b898aa1c3ca8f92f98d9e03c57 (diff) | |
download | brdo-991ff539c32bb61bffb4b41d132bb3b8b35c8ece.tar.gz brdo-991ff539c32bb61bffb4b41d132bb3b8b35c8ece.tar.bz2 |
#296910 by catch and webchick: Add reset parameter to taxonomy_vocabulary_load().
Diffstat (limited to 'modules')
-rw-r--r-- | modules/taxonomy/taxonomy.module | 11 | ||||
-rw-r--r-- | modules/taxonomy/taxonomy.test | 20 |
2 files changed, 29 insertions, 2 deletions
diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module index a93ef9fb0..438ddf0fe 100644 --- a/modules/taxonomy/taxonomy.module +++ b/modules/taxonomy/taxonomy.module @@ -985,15 +985,22 @@ function taxonomy_get_term_by_name($name) { * Return the vocabulary object matching a vocabulary ID. * * @param $vid - * The vocabulary's ID + * The vocabulary's ID. + * + * @param $reset + * A boolean flag indicating whether to reset the internal cache. * * @return * The vocabulary object with all of its metadata, if exists, FALSE otherwise. * Results are statically cached. */ -function taxonomy_vocabulary_load($vid) { +function taxonomy_vocabulary_load($vid, $reset = FALSE) { static $vocabularies = array(); + if ($reset) { + unset($vocabularies[$vid]); + } + if (empty($vocabularies[$vid])) { // Initialize so if this vocabulary does not exist, we have // that cached, and we will not try to load this later. diff --git a/modules/taxonomy/taxonomy.test b/modules/taxonomy/taxonomy.test index 1f96bdaaf..17505f3da 100644 --- a/modules/taxonomy/taxonomy.test +++ b/modules/taxonomy/taxonomy.test @@ -49,6 +49,26 @@ class TaxonomyVocabularyLoadTestCase extends DrupalWebTestCase { $this->assertTrue(is_object($vocabulary), t('Vocabulary is an object')); $this->assertTrue($vocabulary->vid == $vid, t('Valid vocabulary vid is the same as our previously invalid one.')); } + + /** + * Ensure that the vocabulary static reset works correctly. + */ + function testTaxonomyVocabularyLoadStaticReset() { + // Load the first available vocabulary. + $original_vocabulary = taxonomy_vocabulary_load(1); + + // Change the name and description. + $edit = (array) $original_vocabulary; + $edit['name'] = $this->randomName(); + $edit['description'] = $this->randomName(); + $this->assertNotEqual($edit['name'], $original_vocabulary->name); + taxonomy_save_vocabulary($edit); + + // Load the vocabulary with $reset TRUE. + $new_vocabulary = taxonomy_vocabulary_load($original_vocabulary->vid, TRUE); + $this->assertEqual($new_vocabulary->name, $edit['name']); + $this->assertEqual($new_vocabulary->name, $edit['name']); + } } class TaxonomyVocabularyFunctionsTestCase extends DrupalWebTestCase { |