1 taxonomy.test TaxonomyVocabularyUnitTest::testTaxonomyVocabularyDeleteWithTerms()

Test deleting a taxonomy that contains terms.

File

core/modules/taxonomy/tests/taxonomy.test, line 292
Tests for taxonomy.module.

Class

TaxonomyVocabularyUnitTest
Tests for taxonomy vocabulary functions.

Code

function testTaxonomyVocabularyDeleteWithTerms() {
  // Delete any existing vocabularies.
  foreach (taxonomy_vocabulary_load_multiple(FALSE) as $vocabulary) {
    taxonomy_vocabulary_delete($vocabulary->machine_name);
  }

  // Assert that there are no terms left.
  $this->assertEqual(0, db_query('SELECT COUNT(*) FROM {taxonomy_term_data}')->fetchField());

  // Create a new vocabulary and add a few terms to it.
  $vocabulary = $this->createVocabulary();
  $terms = array();
  for ($i = 0; $i < 5; $i++) {
    $terms[$i] = $this->createTerm($vocabulary);
  }

  // Set up hierarchy. term 2 is a child of 1 and 4 a child of 1 and 2.
  $terms[2]->parent = array($terms[1]->tid);
  taxonomy_term_save($terms[2]);
  $terms[4]->parent = array($terms[1]->tid, $terms[2]->tid);
  taxonomy_term_save($terms[4]);

  // Assert that there are now 5 terms.
  $this->assertEqual(5, db_query('SELECT COUNT(*) FROM {taxonomy_term_data}')->fetchField());

  taxonomy_vocabulary_delete($vocabulary->machine_name);

  // Assert that there are no terms left.
  $this->assertEqual(0, db_query('SELECT COUNT(*) FROM {taxonomy_term_data}')->fetchField());
}