/**
  * @group bp_docs_delete_folder_contents
  */
 public function test_bp_docs_delete_folder_contents()
 {
     $f1 = bp_docs_create_folder(array('name' => 'foo'));
     $f1_d1 = $this->factory->doc->create();
     $f1_d2 = $this->factory->doc->create();
     bp_docs_add_doc_to_folder($f1_d1, $f1);
     bp_docs_add_doc_to_folder($f1_d2, $f1);
     $f2 = bp_docs_create_folder(array('name' => 'foo', 'parent' => $f1));
     $f2_d1 = $this->factory->doc->create();
     $f2_d2 = $this->factory->doc->create();
     bp_docs_add_doc_to_folder($f2_d1, $f2);
     bp_docs_add_doc_to_folder($f2_d2, $f2);
     $f3 = bp_docs_create_folder(array('name' => 'foo', 'parent' => $f1));
     $f3_d1 = $this->factory->doc->create();
     $f3_d2 = $this->factory->doc->create();
     bp_docs_add_doc_to_folder($f3_d1, $f3);
     bp_docs_add_doc_to_folder($f3_d2, $f3);
     $f4 = bp_docs_create_folder(array('name' => 'foo', 'parent' => $f2));
     $f4_d1 = $this->factory->doc->create();
     $f4_d2 = $this->factory->doc->create();
     bp_docs_add_doc_to_folder($f4_d1, $f4);
     bp_docs_add_doc_to_folder($f4_d2, $f4);
     $this->assertTrue(bp_docs_delete_folder_contents($f1));
     $f1_term = bp_docs_get_folder_term($f1);
     $f1_docs = get_posts(array('post_type' => bp_docs_get_post_type_name(), 'tax_query' => array(array('taxonomy' => 'bp_docs_doc_in_folder', 'field' => 'term_id', 'terms' => $f1_term)), 'update_meta_cache' => false, 'update_term_cache' => false));
     $this->assertSame(array(), $f1_docs);
     $f2_term = bp_docs_get_folder_term($f2);
     $f2_docs = get_posts(array('post_type' => bp_docs_get_post_type_name(), 'tax_query' => array(array('taxonomy' => 'bp_docs_doc_in_folder', 'field' => 'term_id', 'terms' => $f2_term)), 'update_meta_cache' => false, 'update_term_cache' => false));
     $this->assertSame(array(), $f2_docs);
     $f3_term = bp_docs_get_folder_term($f3);
     $f3_docs = get_posts(array('post_type' => bp_docs_get_post_type_name(), 'tax_query' => array(array('taxonomy' => 'bp_docs_doc_in_folder', 'field' => 'term_id', 'terms' => $f3_term)), 'update_meta_cache' => false, 'update_term_cache' => false));
     $this->assertSame(array(), $f3_docs);
     $f4_term = bp_docs_get_folder_term($f4);
     $f4_docs = get_posts(array('post_type' => bp_docs_get_post_type_name(), 'tax_query' => array(array('taxonomy' => 'bp_docs_doc_in_folder', 'field' => 'term_id', 'terms' => $f4_term)), 'update_meta_cache' => false, 'update_term_cache' => false));
     $this->assertSame(array(), $f4_docs);
     $this->assertSame(array(), bp_docs_get_folders(array('parent_id' => $f1)));
     $this->assertSame(array(), bp_docs_get_folders(array('parent_id' => $f2)));
 }
/**
 * Delete a folder.
 *
 * @since 1.9.0
 *
 * @param array $args {
 *     $type int $folder_id ID of the folder to be deleted.
 *     $type bool $delete_contents Delete folder contents (subfolders and docs)
 * }
 * @return bool
 */
function bp_docs_delete_folder($args = array())
{
    $r = wp_parse_args($args, array('folder_id' => 0, 'delete_contents' => false));
    if (empty($r['folder_id'])) {
        return false;
    }
    if (true === $r['delete_contents']) {
        bp_docs_delete_folder_contents($r['folder_id']);
    }
    wp_trash_post($r['folder_id']);
    return true;
}