mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-28 22:30:04 +00:00
Taxonomy: Pass object ids to delete_* actions.
Allows for more targeted updates to affected posts in callbacks. Disambiguates `$objects` variable and amends unit tests. Fixes #35213. git-svn-id: https://develop.svn.wordpress.org/trunk@36080 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -5,9 +5,11 @@
|
||||
*/
|
||||
class Tests_Term_WpDeleteTerm extends WP_UnitTestCase {
|
||||
protected $deleted_term;
|
||||
protected $object_ids;
|
||||
|
||||
/**
|
||||
* @ticket 33485
|
||||
* @ticket 35213
|
||||
*/
|
||||
public function test_count_property_passed_to_filters_should_reflect_pre_deleted_term() {
|
||||
register_taxonomy( 'wptests_tax', 'post' );
|
||||
@@ -16,20 +18,23 @@ class Tests_Term_WpDeleteTerm extends WP_UnitTestCase {
|
||||
'taxonomy' => 'wptests_tax',
|
||||
) );
|
||||
|
||||
$p = self::factory()->post->create();
|
||||
$post_id = self::factory()->post->create();
|
||||
|
||||
wp_set_object_terms( $p, array( $terms[0] ), 'wptests_tax' );
|
||||
wp_set_object_terms( $post_id, array( $terms[0] ), 'wptests_tax' );
|
||||
|
||||
add_action( 'delete_term', array( $this, 'catch_deleted_term' ), 10, 4 );
|
||||
add_action( 'delete_term', array( $this, 'catch_deleted_term' ), 10, 5 );
|
||||
|
||||
wp_delete_term( $terms[0], 'wptests_tax' );
|
||||
$this->assertEquals( 1, $this->deleted_term->count );
|
||||
$this->assertSame( $this->object_ids, array( "$post_id" ) );
|
||||
|
||||
wp_delete_term( $terms[1], 'wptests_tax' );
|
||||
$this->assertEquals( 0, $this->deleted_term->count );
|
||||
$this->assertSame( $this->object_ids, array() );
|
||||
}
|
||||
|
||||
public function catch_deleted_term( $term_id, $tt_id, $taxonomy, $deleted_term ) {
|
||||
public function catch_deleted_term( $term_id, $tt_id, $taxonomy, $deleted_term, $object_ids ) {
|
||||
$this->deleted_term = $deleted_term;
|
||||
$this->object_ids = $object_ids;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,9 +37,9 @@ class Tests_Term_WpInsertTerm extends WP_UnitTestCase {
|
||||
$this->assertTrue( term_exists($t['term_id']) > 0 );
|
||||
|
||||
// now delete it
|
||||
add_filter( 'delete_term', array( $this, 'deleted_term_cb' ), 10, 4 );
|
||||
add_filter( 'delete_term', array( $this, 'deleted_term_cb' ), 10, 5 );
|
||||
$this->assertTrue( wp_delete_term( $t['term_id'], $taxonomy ) );
|
||||
remove_filter( 'delete_term', array( $this, 'deleted_term_cb' ), 10, 4 );
|
||||
remove_filter( 'delete_term', array( $this, 'deleted_term_cb' ), 10, 5 );
|
||||
$this->assertNull( term_exists($term) );
|
||||
$this->assertNull( term_exists($t['term_id']) );
|
||||
$this->assertEquals( $initial_count, wp_count_terms( $taxonomy ) );
|
||||
@@ -644,13 +644,15 @@ class Tests_Term_WpInsertTerm extends WP_UnitTestCase {
|
||||
|
||||
/** Helpers **********************************************************/
|
||||
|
||||
public function deleted_term_cb( $term, $tt_id, $taxonomy, $deleted_term ) {
|
||||
public function deleted_term_cb( $term, $tt_id, $taxonomy, $deleted_term, $object_ids ) {
|
||||
$this->assertInternalType( 'object', $deleted_term );
|
||||
$this->assertInternalType( 'int', $term );
|
||||
$this->assertInternalType( 'array', $object_ids );
|
||||
// Pesky string $this->assertInternalType( 'int', $tt_id );
|
||||
$this->assertEquals( $term, $deleted_term->term_id );
|
||||
$this->assertEquals( $taxonomy, $deleted_term->taxonomy );
|
||||
$this->assertEquals( $tt_id, $deleted_term->term_taxonomy_id );
|
||||
$this->assertEmpty( $object_ids );
|
||||
}
|
||||
|
||||
public function _pre_insert_term_callback() {
|
||||
|
||||
Reference in New Issue
Block a user