Changeset 43862
- Timestamp:
- 11/03/2018 02:13:16 PM (7 years ago)
- Location:
- branches/5.0
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/5.0/src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php
r43850 r43862 237 237 238 238 $attachment = get_post( $request['id'] ); 239 240 /** This action is documented in wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php */241 do_action( 'rest_insert_attachment', $data, $request, false );242 239 243 240 $fields_update = $this->update_additional_fields_for_object( $attachment, $request ); -
branches/5.0/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
r43770 r43862 739 739 740 740 $request->set_param( 'context', 'edit' ); 741 742 // Filter is fired in WP_REST_Attachments_Controller subclass. 743 if ( 'attachment' === $this->post_type ) { 744 $response = $this->prepare_item_for_response( $post, $request ); 745 return rest_ensure_response( $response ); 746 } 741 747 742 748 /** This action is documented in wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php */ -
branches/5.0/tests/phpunit/tests/rest-api/rest-attachments-controller.php
r43732 r43862 17 17 protected static $contributor_id; 18 18 protected static $uploader_id; 19 protected static $rest_after_insert_attachment_count; 20 protected static $rest_insert_attachment_count; 19 21 20 22 public static function wpSetUpBeforeClass( $factory ) { … … 1307 1309 } 1308 1310 1311 remove_action( 'rest_insert_attachment', array( $this, 'filter_rest_insert_attachment' ) ); 1312 remove_action( 'rest_after_insert_attachment', array( $this, 'filter_rest_after_insert_attachment' ) ); 1313 1309 1314 $this->remove_added_uploads(); 1310 1315 } … … 1438 1443 } 1439 1444 1445 /** 1446 * Ensure the `rest_after_insert_attachment` and `rest_insert_attachment` hooks only fire 1447 * once when attachments are created. 1448 * 1449 * @ticket 45269 1450 */ 1451 public function test_rest_insert_attachment_hooks_fire_once_on_create() { 1452 self::$rest_insert_attachment_count = 0; 1453 self::$rest_after_insert_attachment_count = 0; 1454 add_action( 'rest_insert_attachment', array( $this, 'filter_rest_insert_attachment' ) ); 1455 add_action( 'rest_after_insert_attachment', array( $this, 'filter_rest_after_insert_attachment' ) ); 1456 1457 wp_set_current_user( self::$editor_id ); 1458 $request = new WP_REST_Request( 'POST', '/wp/v2/media' ); 1459 $request->set_header( 'Content-Type', 'image/jpeg' ); 1460 $request->set_header( 'Content-Disposition', 'attachment; filename=canola.jpg' ); 1461 $request->set_param( 'title', 'My title is very cool' ); 1462 $request->set_param( 'caption', 'This is a better caption.' ); 1463 $request->set_param( 'description', 'Without a description, my attachment is descriptionless.' ); 1464 $request->set_param( 'alt_text', 'Alt text is stored outside post schema.' ); 1465 1466 $request->set_body( file_get_contents( $this->test_file ) ); 1467 $response = $this->server->dispatch( $request ); 1468 $data = $response->get_data(); 1469 $this->assertEquals( 201, $response->get_status() ); 1470 1471 $this->assertSame( 1, self::$rest_insert_attachment_count ); 1472 $this->assertSame( 1, self::$rest_after_insert_attachment_count ); 1473 } 1474 1475 /** 1476 * Ensure the `rest_after_insert_attachment` and `rest_insert_attachment` hooks only fire 1477 * once when attachments are updated. 1478 * 1479 * @ticket 45269 1480 */ 1481 public function test_rest_insert_attachment_hooks_fire_once_on_update() { 1482 self::$rest_insert_attachment_count = 0; 1483 self::$rest_after_insert_attachment_count = 0; 1484 add_action( 'rest_insert_attachment', array( $this, 'filter_rest_insert_attachment' ) ); 1485 add_action( 'rest_after_insert_attachment', array( $this, 'filter_rest_after_insert_attachment' ) ); 1486 1487 wp_set_current_user( self::$editor_id ); 1488 $attachment_id = $this->factory->attachment->create_object( $this->test_file, 0, array( 1489 'post_mime_type' => 'image/jpeg', 1490 'post_excerpt' => 'A sample caption', 1491 'post_author' => self::$editor_id, 1492 ) ); 1493 $request = new WP_REST_Request( 'POST', '/wp/v2/media/' . $attachment_id ); 1494 $request->set_param( 'title', 'My title is very cool' ); 1495 $response = $this->server->dispatch( $request ); 1496 1497 $this->assertSame( 1, self::$rest_insert_attachment_count ); 1498 $this->assertSame( 1, self::$rest_after_insert_attachment_count ); 1499 } 1500 1501 public function filter_rest_insert_attachment( $attachment ) { 1502 self::$rest_insert_attachment_count++; 1503 } 1504 1505 public function filter_rest_after_insert_attachment( $attachment ) { 1506 self::$rest_after_insert_attachment_count++; 1507 } 1440 1508 }
Note: See TracChangeset
for help on using the changeset viewer.