| | 1202 | |
| | 1203 | /** |
| | 1204 | * Checks that calling edit_user() with no user_login returns a WP error without PHP Notices. |
| | 1205 | * |
| | 1206 | * @ticket 36303 |
| | 1207 | */ |
| | 1208 | function test_edit_user_blank_user_login() { |
| | 1209 | $_POST = $_GET = $_REQUEST = array(); |
| | 1210 | $_POST['role'] = 'subscriber'; |
| | 1211 | $_POST['email'] = 'user1@example.com'; |
| | 1212 | // Leave unset $_POST['user_login'] |
| | 1213 | $_POST['first_name'] = 'first_name1'; |
| | 1214 | $_POST['last_name'] = 'last_name1'; |
| | 1215 | $_POST['nickname'] = 'nickname1'; |
| | 1216 | $_POST['display_name'] = 'display_name1'; |
| | 1217 | $_POST['pass1'] = $_POST['pass2'] = 'password'; |
| | 1218 | |
| | 1219 | // Check new user with unset user_login. |
| | 1220 | $response = edit_user(); |
| | 1221 | |
| | 1222 | $this->assertInstanceOf( 'WP_Error', $response ); |
| | 1223 | $this->assertEquals( array( 'user_login' ), $response->get_error_codes() ); |
| | 1224 | |
| | 1225 | // Check new user with blank user_login. |
| | 1226 | $_POST['user_login'] = ''; |
| | 1227 | $response = edit_user(); |
| | 1228 | |
| | 1229 | $this->assertInstanceOf( 'WP_Error', $response ); |
| | 1230 | $this->assertEquals( array( 'user_login' ), $response->get_error_codes() ); |
| | 1231 | |
| | 1232 | // Check new user with zero user_login. |
| | 1233 | $_POST['user_login'] = '0'; |
| | 1234 | $response = edit_user(); |
| | 1235 | |
| | 1236 | $this->assertInstanceOf( 'WP_Error', $response ); |
| | 1237 | $this->assertEquals( array( 'user_login' ), $response->get_error_codes() ); |
| | 1238 | |
| | 1239 | // Add user. |
| | 1240 | $_POST['user_login'] = 'user_login1'; |
| | 1241 | $user_id = edit_user(); |
| | 1242 | $user = get_user_by( 'ID', $user_id ); |
| | 1243 | |
| | 1244 | $this->assertInternalType( 'int', $user_id ); |
| | 1245 | $this->assertInstanceOf( 'WP_User', $user ); |
| | 1246 | $this->assertEquals( 'user_login1', $user->user_login ); |
| | 1247 | $this->assertEquals( 'nickname1', $user->nickname ); |
| | 1248 | |
| | 1249 | // Check can update user with unset user_login (ignored). |
| | 1250 | unset( $_POST['user_login'] ); |
| | 1251 | $_POST['nickname'] = 'nickname_updated'; |
| | 1252 | |
| | 1253 | $user_id = edit_user( $user_id ); |
| | 1254 | $user = get_user_by( 'ID', $user_id ); |
| | 1255 | |
| | 1256 | $this->assertInternalType( 'int', $user_id ); |
| | 1257 | $this->assertInstanceOf( 'WP_User', $user ); |
| | 1258 | $this->assertEquals( 'user_login1', $user->user_login ); |
| | 1259 | $this->assertEquals( 'nickname_updated', $user->nickname ); |
| | 1260 | |
| | 1261 | // Check can update user with blank user_login (ignored). |
| | 1262 | $_POST['user_login'] = ''; |
| | 1263 | $_POST['nickname'] = 'nickname_updated2'; |
| | 1264 | |
| | 1265 | $user_id = edit_user( $user_id ); |
| | 1266 | $user = get_user_by( 'ID', $user_id ); |
| | 1267 | |
| | 1268 | $this->assertInternalType( 'int', $user_id ); |
| | 1269 | $this->assertInstanceOf( 'WP_User', $user ); |
| | 1270 | $this->assertEquals( 'user_login1', $user->user_login ); |
| | 1271 | $this->assertEquals( 'nickname_updated2', $user->nickname ); |
| | 1272 | |
| | 1273 | // Check can update user with zero user_login (ignored). |
| | 1274 | $_POST['user_login'] = '0'; |
| | 1275 | $_POST['nickname'] = 'nickname_updated3'; |
| | 1276 | |
| | 1277 | $user_id = edit_user( $user_id ); |
| | 1278 | $user = get_user_by( 'ID', $user_id ); |
| | 1279 | |
| | 1280 | $this->assertInternalType( 'int', $user_id ); |
| | 1281 | $this->assertInstanceOf( 'WP_User', $user ); |
| | 1282 | $this->assertEquals( 'user_login1', $user->user_login ); |
| | 1283 | $this->assertEquals( 'nickname_updated3', $user->nickname ); |
| | 1284 | } |