| | 718 | public function test_create_new_network_user_on_site_does_not_add_user_to_sub_site() { |
| | 719 | if ( ! is_multisite() ) { |
| | 720 | $this->markTestSkipped( 'Test requires multisite.' ); |
| | 721 | } |
| | 722 | |
| | 723 | $this->allow_user_to_manage_multisite(); |
| | 724 | |
| | 725 | $params = array( |
| | 726 | 'username' => 'testuser123', |
| | 727 | 'password' => 'testpassword', |
| | 728 | 'email' => 'test@example.com', |
| | 729 | 'name' => 'Test User 123', |
| | 730 | 'roles' => array( 'editor' ), |
| | 731 | ); |
| | 732 | |
| | 733 | $request = new WP_REST_Request( 'POST', '/wp/v2/users' ); |
| | 734 | $request->add_header( 'content-type', 'application/x-www-form-urlencoded' ); |
| | 735 | $request->set_body_params( $params ); |
| | 736 | $response = $this->server->dispatch( $request ); |
| | 737 | $data = $response->get_data(); |
| | 738 | $user_id = $data['id']; |
| | 739 | |
| | 740 | $user_is_member = is_user_member_of_blog( $user_id, self::$site ); |
| | 741 | |
| | 742 | wpmu_delete_user( $user_id ); |
| | 743 | |
| | 744 | $this->assertFalse( $user_is_member ); |
| | 745 | } |
| | 746 | |
| | 747 | public function test_create_new_network_user_on_sub_site_adds_user_to_site() { |
| | 748 | if ( ! is_multisite() ) { |
| | 749 | $this->markTestSkipped( 'Test requires multisite.' ); |
| | 750 | } |
| | 751 | |
| | 752 | $this->allow_user_to_manage_multisite(); |
| | 753 | |
| | 754 | $params = array( |
| | 755 | 'username' => 'testuser123', |
| | 756 | 'password' => 'testpassword', |
| | 757 | 'email' => 'test@example.com', |
| | 758 | 'name' => 'Test User 123', |
| | 759 | 'roles' => array( 'editor' ), |
| | 760 | ); |
| | 761 | |
| | 762 | switch_to_blog( self::$site ); |
| | 763 | |
| | 764 | $request = new WP_REST_Request( 'POST', '/wp/v2/users' ); |
| | 765 | $request->add_header( 'content-type', 'application/x-www-form-urlencoded' ); |
| | 766 | $request->set_body_params( $params ); |
| | 767 | $response = $this->server->dispatch( $request ); |
| | 768 | $data = $response->get_data(); |
| | 769 | $user_id = $data['id']; |
| | 770 | |
| | 771 | restore_current_blog(); |
| | 772 | |
| | 773 | $user_is_member = is_user_member_of_blog( $user_id, self::$site ); |
| | 774 | |
| | 775 | wpmu_delete_user( $user_id ); |
| | 776 | |
| | 777 | $this->assertTrue( $user_is_member ); |
| | 778 | } |
| | 779 | |
| | 780 | public function test_create_existing_network_user_on_sub_site_has_error() { |
| | 781 | if ( ! is_multisite() ) { |
| | 782 | $this->markTestSkipped( 'Test requires multisite.' ); |
| | 783 | } |
| | 784 | |
| | 785 | $this->allow_user_to_manage_multisite(); |
| | 786 | |
| | 787 | $params = array( |
| | 788 | 'username' => 'testuser123', |
| | 789 | 'password' => 'testpassword', |
| | 790 | 'email' => 'test@example.com', |
| | 791 | 'name' => 'Test User 123', |
| | 792 | 'roles' => array( 'editor' ), |
| | 793 | ); |
| | 794 | |
| | 795 | $request = new WP_REST_Request( 'POST', '/wp/v2/users' ); |
| | 796 | $request->add_header( 'content-type', 'application/x-www-form-urlencoded' ); |
| | 797 | $request->set_body_params( $params ); |
| | 798 | $response = $this->server->dispatch( $request ); |
| | 799 | $data = $response->get_data(); |
| | 800 | $user_id = $data['id']; |
| | 801 | |
| | 802 | switch_to_blog( self::$site ); |
| | 803 | |
| | 804 | $request = new WP_REST_Request( 'POST', '/wp/v2/users' ); |
| | 805 | $request->add_header( 'content-type', 'application/x-www-form-urlencoded' ); |
| | 806 | $request->set_body_params( $params ); |
| | 807 | $switched_response = $this->server->dispatch( $request ); |
| | 808 | |
| | 809 | restore_current_blog(); |
| | 810 | |
| | 811 | wpmu_delete_user( $user_id ); |
| | 812 | |
| | 813 | $this->assertErrorResponse( 'user_name', $switched_response ); |
| | 814 | } |
| | 815 | |
| | 816 | public function test_update_existing_network_user_on_sub_site_adds_user_to_site() { |
| | 817 | if ( ! is_multisite() ) { |
| | 818 | $this->markTestSkipped( 'Test requires multisite.' ); |
| | 819 | } |
| | 820 | |
| | 821 | $this->allow_user_to_manage_multisite(); |
| | 822 | |
| | 823 | $params = array( |
| | 824 | 'username' => 'testuser123', |
| | 825 | 'password' => 'testpassword', |
| | 826 | 'email' => 'test@example.com', |
| | 827 | 'name' => 'Test User 123', |
| | 828 | 'roles' => array( 'editor' ), |
| | 829 | ); |
| | 830 | |
| | 831 | $request = new WP_REST_Request( 'POST', '/wp/v2/users' ); |
| | 832 | $request->add_header( 'content-type', 'application/x-www-form-urlencoded' ); |
| | 833 | $request->set_body_params( $params ); |
| | 834 | $response = $this->server->dispatch( $request ); |
| | 835 | $data = $response->get_data(); |
| | 836 | $user_id = $data['id']; |
| | 837 | |
| | 838 | switch_to_blog( self::$site ); |
| | 839 | |
| | 840 | $request = new WP_REST_Request( 'PUT', '/wp/v2/users/' . $user_id ); |
| | 841 | $request->add_header( 'content-type', 'application/x-www-form-urlencoded' ); |
| | 842 | $request->set_body_params( $params ); |
| | 843 | $this->server->dispatch( $request ); |
| | 844 | |
| | 845 | restore_current_blog(); |
| | 846 | |
| | 847 | $user_is_member = is_user_member_of_blog( $user_id, self::$site ); |
| | 848 | |
| | 849 | wpmu_delete_user( $user_id ); |
| | 850 | |
| | 851 | $this->assertTrue( $user_is_member ); |
| | 852 | } |
| | 853 | |