| 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 | |