Users: Return a WP_Error from wp_insert_user() if the user_url field is too long.

The `user_url` database field only allows up to 100 characters, and if the value is longer than that, the function should return a proper error message instead of silently failing.

This complements similar checks for `user_login` and `user_nicename` fields.

Follow-up to [45], [1575], [32299], [34218], [34626].

Props mkox, sabernhardt, tszming, SergeyBiryukov.
Fixes #44107.

git-svn-id: https://develop.svn.wordpress.org/trunk@52650 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov
2022-01-29 14:23:59 +00:00
parent 1bf3a87e2b
commit 0fd2e294be
2 changed files with 22 additions and 0 deletions

View File

@@ -1000,6 +1000,24 @@ class Tests_User extends WP_UnitTestCase {
$this->assertSame( $expected, $user->user_nicename );
}
/**
* @ticket 44107
*/
public function test_wp_insert_user_should_reject_user_url_over_100_characters() {
$user_url = str_repeat( 'a', 101 );
$u = wp_insert_user(
array(
'user_login' => 'test',
'user_email' => 'test@example.com',
'user_pass' => 'password',
'user_url' => $user_url,
)
);
$this->assertWPError( $u );
$this->assertSame( 'user_url_too_long', $u->get_error_code() );
}
/**
* @ticket 28004
*/