- Timestamp:
- 06/10/2020 02:20:18 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/rest-api/rest-post-meta-fields.php
r47122 r47943 2657 2657 2658 2658 /** 2659 * @ticket 49339 2660 */ 2661 public function test_update_multi_meta_value_handles_integer_types() { 2662 $this->grant_write_permission(); 2663 2664 register_post_meta( 2665 'post', 2666 'multi_integer', 2667 array( 2668 'type' => 'integer', 2669 'show_in_rest' => true, 2670 ) 2671 ); 2672 2673 $mid1 = add_post_meta( self::$post_id, 'multi_integer', 1 ); 2674 $mid2 = add_post_meta( self::$post_id, 'multi_integer', 2 ); 2675 2676 $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/posts/%d', self::$post_id ) ); 2677 $request->set_body_params( 2678 array( 2679 'meta' => array( 2680 'multi_integer' => array( 2, 3 ), 2681 ), 2682 ) 2683 ); 2684 2685 $response = rest_get_server()->dispatch( $request ); 2686 2687 $this->assertEquals( 200, $response->get_status() ); 2688 $this->assertEquals( array( 2, 3 ), $response->get_data()['meta']['multi_integer'] ); 2689 2690 $this->assertFalse( get_metadata_by_mid( 'post', $mid1 ) ); 2691 $this->assertNotFalse( get_metadata_by_mid( 'post', $mid2 ) ); 2692 } 2693 2694 /** 2695 * @ticket 49339 2696 */ 2697 public function test_update_multi_meta_value_handles_boolean_types() { 2698 $this->grant_write_permission(); 2699 2700 register_post_meta( 2701 'post', 2702 'multi_boolean', 2703 array( 2704 'type' => 'boolean', 2705 'sanitize_callback' => 'absint', 2706 'show_in_rest' => true, 2707 ) 2708 ); 2709 2710 $mid1 = add_post_meta( self::$post_id, 'multi_boolean', 1 ); 2711 $mid2 = add_post_meta( self::$post_id, 'multi_boolean', 0 ); 2712 2713 $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/posts/%d', self::$post_id ) ); 2714 $request->set_body_params( 2715 array( 2716 'meta' => array( 2717 'multi_boolean' => array( 0 ), 2718 ), 2719 ) 2720 ); 2721 2722 $response = rest_get_server()->dispatch( $request ); 2723 2724 $this->assertEquals( 200, $response->get_status() ); 2725 $this->assertEquals( array( 0 ), $response->get_data()['meta']['multi_boolean'] ); 2726 2727 $this->assertFalse( get_metadata_by_mid( 'post', $mid1 ) ); 2728 $this->assertNotFalse( get_metadata_by_mid( 'post', $mid2 ) ); 2729 } 2730 2731 /** 2732 * @ticket 49339 2733 */ 2734 public function test_update_multi_meta_value_handles_object_types() { 2735 $this->grant_write_permission(); 2736 2737 register_post_meta( 2738 'post', 2739 'multi_object', 2740 array( 2741 'type' => 'object', 2742 'show_in_rest' => array( 2743 'schema' => array( 2744 'type' => 'object', 2745 'properties' => array( 2746 'a' => array( 2747 'type' => 'string', 2748 ), 2749 ), 2750 ), 2751 ), 2752 ) 2753 ); 2754 2755 $mid1 = add_post_meta( self::$post_id, 'multi_object', array( 'a' => 'ant' ) ); 2756 $mid2 = add_post_meta( self::$post_id, 'multi_object', array( 'a' => 'anaconda' ) ); 2757 2758 $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/posts/%d', self::$post_id ) ); 2759 $request->set_body_params( 2760 array( 2761 'meta' => array( 2762 'multi_object' => array( 2763 array( 'a' => 'anaconda' ), 2764 array( 'a' => 'alpaca' ), 2765 ), 2766 ), 2767 ) 2768 ); 2769 2770 $response = rest_get_server()->dispatch( $request ); 2771 2772 $this->assertEquals( 200, $response->get_status() ); 2773 $this->assertEquals( 2774 array( 2775 array( 'a' => 'anaconda' ), 2776 array( 'a' => 'alpaca' ), 2777 ), 2778 $response->get_data()['meta']['multi_object'] 2779 ); 2780 2781 $this->assertFalse( get_metadata_by_mid( 'post', $mid1 ) ); 2782 $this->assertNotFalse( get_metadata_by_mid( 'post', $mid2 ) ); 2783 } 2784 2785 /** 2659 2786 * Internal function used to disable an insert query which 2660 2787 * will trigger a wpdb error for testing purposes.
Note: See TracChangeset
for help on using the changeset viewer.