/** * @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))); }
/** * Process folder drops. * * @since 1.9 */ function bp_docs_process_folder_drop_cb() { if (empty($_POST['doc_id'])) { die('-1'); } $doc_id = intval($_POST['doc_id']); $nonce = isset($_POST['nonce']) ? stripslashes($_POST['nonce']) : ''; if (!wp_verify_nonce($nonce, 'bp-docs-folder-drop-' . $doc_id)) { die('-1'); } // @todo This needs testing with group admins, etc if (!current_user_can('bp_docs_manage', bp_loggedin_user_id(), $doc_id)) { die('-1'); } $folder_id = isset($_POST['folder_id']) ? intval($_POST['folder_id']) : 0; // @todo Need to do permission tests for these folders if (empty($folder_id)) { die('-1'); } $success = bp_docs_add_doc_to_folder($doc_id, $folder_id); if ($success) { die('1'); } else { die('-1'); } }