| 275 | /** |
| 276 | * @ticket 15475 |
| 277 | */ |
| 278 | function test_wp_add_remove_object_terms() { |
| 279 | $posts = $this->factory->post->create_many( 5 ); |
| 280 | $tags = $this->factory->tag->create_many( 5 ); |
| 281 | |
| 282 | $tt = wp_add_object_terms( $posts[0], $tags[1], 'post_tag' ); |
| 283 | $this->assertEquals( 1, count( $tt ) ); |
| 284 | $this->assertEquals( array( $tags[1] ), wp_get_object_terms( $posts[0], 'post_tag', array( 'fields' => 'ids' ) ) ); |
| 285 | |
| 286 | $three_tags = array( $tags[0], $tags[1], $tags[2] ); |
| 287 | $tt = wp_add_object_terms( $posts[1], $three_tags, 'post_tag' ); |
| 288 | $this->assertEquals( 3, count( $tt ) ); |
| 289 | $this->assertEquals( $three_tags, wp_get_object_terms( $posts[1], 'post_tag', array( 'fields' => 'ids' ) ) ); |
| 290 | |
| 291 | $this->assertTrue( wp_remove_object_terms( $posts[0], $tags[1], 'post_tag' ) ); |
| 292 | $this->assertFalse( wp_remove_object_terms( $posts[0], $tags[0], 'post_tag' ) ); |
| 293 | $this->assertTrue( wp_remove_object_terms( $posts[0], $tags[1], 'non_existing_taxonomy' ) instanceof WP_Error ); |
| 294 | $this->assertTrue( wp_remove_object_terms( $posts[1], $three_tags, 'post_tag' ) ); |
| 295 | $this->assertEquals( 0, count( wp_get_object_terms( $posts[1], 'post_tag' ) ) ); |
| 296 | |
| 297 | foreach ( $tags as $term_id ) |
| 298 | $this->assertTrue( wp_delete_term( $term_id, 'post_tag' ) ); |
| 299 | |
| 300 | foreach ( $posts as $post_id ) |
| 301 | $this->assertTrue( (bool) wp_delete_post( $post_id, true ) ); |
| 302 | } |
| 303 | |