#346156 by stBorchert, swentel, and catch: Fix deletion of terms (with tests).

merge-requests/26/head
Angie Byron 2009-01-28 01:09:58 +00:00
parent f5a4f24b5e
commit 585aa50e6a
5 changed files with 33 additions and 6 deletions

View File

@ -173,7 +173,7 @@ function forum_confirm_delete(&$form_state, $tid) {
* Implementation of forms api _submit call. Deletes a forum after confirmation.
*/
function forum_confirm_delete_submit($form, &$form_state) {
taxonomy_del_term($form_state['values']['tid']);
taxonomy_term_delete($form_state['values']['tid']);
drupal_set_message(t('The forum %term and all sub-forums have been deleted.', array('%term' => $form_state['values']['name'])));
watchdog('content', 'forum: deleted %term and all its sub-forums.', array('%term' => $form_state['values']['name']));

View File

@ -103,6 +103,10 @@ class ForumTestCase extends DrupalWebTestCase {
$this->container = $this->createForum('container');
// Create forum inside the forum container.
$this->forum = $this->createForum('forum', $this->container['tid']);
// Create second forum in container.
$this->delete_forum = $this->createForum('forum', $this->container['tid']);
// Delete this second form.
$this->deleteForum($this->delete_forum['tid']);
// Create forum at the top (root) level.
$this->root_forum = $this->createForum('forum');
}
@ -181,6 +185,21 @@ class ForumTestCase extends DrupalWebTestCase {
return $term;
}
/**
* Delete a forum.
*
* @param integer $tid Forum id.
*/
function deleteForum($tid) {
// Delete the forum id.
$this->drupalPost('admin/build/forum/edit/forum/'. $tid, array(), t('Delete'));
$this->drupalPost(NULL, NULL, t('Delete'));
// Assert that the forum no longer exists.
$this->drupalGet('forum/'. $tid);
$this->assertRaw(t('No forums defined'), 'The forum was not found');
}
/**
* Run basic tests on the indicated user.
*

View File

@ -837,7 +837,7 @@ function taxonomy_term_confirm_delete(&$form_state, $tid) {
* @see taxonomy_term_confirm_delete()
*/
function taxonomy_term_confirm_delete_submit($form, &$form_state) {
taxonomy_del_term($form_state['values']['tid']);
taxonomy_term_delete($form_state['values']['tid']);
taxonomy_check_vocabulary_hierarchy($form['#vocabulary'], $form_state['values']);
drupal_set_message(t('Deleted term %name.', array('%name' => $form_state['values']['name'])));
watchdog('taxonomy', 'Deleted term %name.', array('%name' => $form_state['values']['name']), WATCHDOG_NOTICE);

View File

@ -765,8 +765,8 @@ function taxonomy_get_parents($tid, $key = 'tid') {
*/
function taxonomy_get_parents_all($tid) {
$parents = array();
if ($tid) {
$parents[] = taxonomy_term_load($tid);
if ($term = taxonomy_term_load($tid)) {
$parents[] = $term;
$n = 0;
while ($parent = taxonomy_get_parents($parents[$n]->tid)) {
$parents = array_merge($parents, $parent);

View File

@ -390,9 +390,9 @@ class TaxonomyTermTestCase extends TaxonomyWebTestCase {
}
/**
* Save and edit a term and assert that the name and description are correct.
* Save, edit and delete a term using the user interface.
*/
function testTermEdit() {
function testTermInterface() {
$edit = array(
'name' => $this->randomName(12),
'description' => $this->randomName(100),
@ -431,6 +431,14 @@ class TaxonomyTermTestCase extends TaxonomyWebTestCase {
$this->drupalGet('taxonomy/term/' . $term[0]->tid);
$this->assertText($edit['name'], t('The randomly generated term name is present.'));
$this->assertText($edit['description'], t('The randomly generated term description is present.'));
// Delete the term.
$this->drupalPost('taxonomy/term/' . $term[0]->tid . '/edit', array(), t('Delete'));
$this->drupalPost(NULL, NULL, t('Delete'));
// Assert that the term no longer exists.
$this->drupalGet('taxonomy/term/' . $term[0]->tid);
$this->assertResponse(404, t('The taxonomy term page was not found'));
}
}