diff --git tests/phpunit/tests/post.php tests/phpunit/tests/post.php
index 9817bba..cab19d8 100644
--- tests/phpunit/tests/post.php
+++ tests/phpunit/tests/post.php
@@ -986,6 +986,44 @@ class Tests_Post extends WP_UnitTestCase {
 	}
 
 	/**
+	 * @ticket 18962
+	 */
+	function test_wp_unique_post_slug_with_hierarchy_and_attachments() {
+		register_post_type( 'post-type-1', array( 'hierarchical' => true ) );
+
+		$args = array(
+			'post_type' => 'post-type-1',
+			'post_name' => 'some-slug',
+			'post_status' => 'publish',
+		);
+		$one = $this->factory->post->create( $args );
+
+		$args = array(
+			'post_mime_type' => 'image/jpeg',
+			'post_type' => 'attachment',
+			'post_name' => 'image'
+		);
+		$attachment = $this->factory->attachment->create_object( 'image.jpg', $one, $args );
+
+		$args = array(
+			'post_type' => 'post-type-1',
+			'post_name' => 'image',
+			'post_status' => 'publish',
+			'post_parent' => $one
+		);
+		$two = $this->factory->post->create( $args );
+
+		$this->assertEquals( 'some-slug', get_post( $one )->post_name );
+		$this->assertEquals( 'image', get_post( $attachment )->post_name );
+		$this->assertEquals( 'image-2', get_post( $two )->post_name );
+
+		// 'image' can be a child of image-2
+		$this->assertEquals( 'image', wp_unique_post_slug( 'image', 0, 'publish', 'post-type-1', $two ) );
+
+		_unregister_post_type( 'post-type-1' );
+	}
+
+	/**
 	 * @ticket 21212
 	 */
 	function test_utf8mb3_post_saves_with_emoji() {
