diff --git tests/phpunit/tests/admin/userNew.php tests/phpunit/tests/admin/userNew.php
index e69de29..6d87106 100644
--- tests/phpunit/tests/admin/userNew.php
+++ tests/phpunit/tests/admin/userNew.php
@@ -0,0 +1,157 @@
+<?php
+
+/**
+ * @group user
+ * @group admin
+ */
+class Tests_Admin_userNew extends WP_UnitTestCase {
+	protected $reset_post;
+	protected $activation_key;
+
+	public function setUp() {
+		parent::setUp();
+		$this->reset_post = $_POST;
+		$_POST = array(
+			'email' => 'foo@bar.com',
+			'pass1' => 'foo bar pass',
+			'pass2' => 'foo bar pass'
+		);
+	}
+
+	public function tearDown() {
+		parent::tearDown();
+		$_POST = $this->reset_post;
+	}
+
+	/**
+	 * @ticket 17904
+	 */
+	public function test_user_new_empty_username() {
+		$_POST['user_login'] = '';
+
+		if ( is_multisite() ) {
+			$result  = wpmu_validate_user_signup( $_POST['user_login'], $_POST['email'] );
+			$wp_error = $result['errors'];
+		} else {
+			$wp_error = edit_user();
+		}
+
+		$this->assertTrue( is_wp_error( $wp_error ) );
+		$this->assertNotEmpty( $wp_error->errors['user_name'] );
+	}
+
+	/**
+	 * @ticket 17904
+	 */
+	public function test_user_new_less_than_four_chars() {
+		$_POST['user_login'] = 'foo';
+
+		if ( is_multisite() ) {
+			$result  = wpmu_validate_user_signup( $_POST['user_login'], $_POST['email'] );
+			$wp_error = $result['errors'];
+		} else {
+			$wp_error = edit_user();
+		}
+
+		$this->assertTrue( is_wp_error( $wp_error ) );
+		$this->assertNotEmpty( $wp_error->errors['user_name'] );
+	}
+
+	/**
+	 * @ticket 17904
+	 */
+	public function test_user_new_space_in_username() {
+		$_POST['user_login'] = 'foo bar';
+
+		if ( is_multisite() ) {
+			$result  = wpmu_validate_user_signup( $_POST['user_login'], $_POST['email'] );
+			$wp_error = $result['errors'];
+		} else {
+			$wp_error = edit_user();
+		}
+
+		$this->assertTrue( is_wp_error( $wp_error ) );
+		$this->assertNotEmpty( $wp_error->errors['user_name'] );
+	}
+
+	/**
+	 * @ticket 17904
+	 */
+	public function test_user_new_illegal_names() {
+		$_POST['user_login'] = 'root';
+
+		if ( is_multisite() ) {
+			$result  = wpmu_validate_user_signup( $_POST['user_login'], $_POST['email'] );
+			$wp_error = $result['errors'];
+		} else {
+			$wp_error = edit_user();
+		}
+
+		$this->assertTrue( is_wp_error( $wp_error ) );
+		$this->assertNotEmpty( $wp_error->errors['user_name'] );
+	}
+
+	/**
+	 * @ticket 17904
+	 */
+	public function test_user_new_no_letters() {
+		$_POST['user_login'] = '12345';
+
+		if ( is_multisite() ) {
+			$result  = wpmu_validate_user_signup( $_POST['user_login'], $_POST['email'] );
+			$wp_error = $result['errors'];
+		} else {
+			$wp_error = edit_user();
+		}
+
+		$this->assertTrue( is_wp_error( $wp_error ) );
+		$this->assertNotEmpty( $wp_error->errors['user_name'] );
+	}
+
+	/**
+	 * @ticket 17904
+	 */
+	public function test_user_new_username_exists() {
+		$_POST['user_login'] = 'foobar';
+
+		$this->factory->user->create( array( 'user_login' => $_POST['user_login'] ) );
+
+		if ( is_multisite() ) {
+			$result  = wpmu_validate_user_signup( $_POST['user_login'], $_POST['email'] );
+			$wp_error = $result['errors'];
+		} else {
+			$wp_error = edit_user();
+		}
+
+		$this->assertTrue( is_wp_error( $wp_error ) );
+		$this->assertNotEmpty( $wp_error->errors['user_name'] );
+	}
+
+	/**
+	 * @ticket 17904
+	 */
+	public function test_user_new_username_ok() {
+		$_POST['user_login'] = 'foobar';
+
+		if ( is_multisite() ) {
+			$result  = wpmu_validate_user_signup( $_POST['user_login'], $_POST['email'] );
+
+			add_filter( 'wpmu_signup_user_notification', array( $this, 'set_activation_key' ), 10, 3 );
+			wpmu_signup_user( $result['user_name'], $result['user_email'] );
+			remove_filter( 'wpmu_signup_user_notification', array( $this, 'set_activation_key' ), 10, 3 );
+
+			$user_data = wpmu_activate_signup( $this->activation_key );
+			$user_id = $user_data['user_id'];
+		} else {
+			$user_id = edit_user();
+		}
+
+		$this->assertFalse( is_wp_error( $user_id ) );
+		$this->assertNotEmpty( $user_id );
+	}
+
+	public function set_activation_key( $user, $user_email, $key ) {
+		$this->activation_key = $key;
+		return false;
+	}
+}
