Index: tests/phpunit/tests/query/stickies.php
===================================================================
--- tests/phpunit/tests/query/stickies.php	(revision 31448)
+++ tests/phpunit/tests/query/stickies.php	(working copy)
@@ -20,9 +20,9 @@
 			) );
 		}
 
-		stick_post( self::$posts[2] );
-		stick_post( self::$posts[14] );
-		stick_post( self::$posts[8] );
+		stick_post( self::$posts[2] ); // ID 5
+		stick_post( self::$posts[14] ); // ID 17
+		stick_post( self::$posts[8] ); // ID 11
 
 		self::commit_transaction();
 	}
@@ -93,6 +93,9 @@
 		$this->assertEquals( $expected, wp_list_pluck( $q->posts, 'ID' ) );
 	}
 
+	/**
+	 * @group 27282
+	 */
 	public function test_stickies_should_obey_post__not_in() {
 		add_action( 'parse_query', array( $this, 'set_post__not_in' ) );
 		$this->go_to( '/' );
@@ -105,6 +108,50 @@
 		$this->assertNotContains( self::$posts[8], wp_list_pluck( $q->posts, 'ID' ) );
 	}
 
+	/**
+	 * @group 27282
+	 */
+	public function test_stickies_more_than_posts_per_page_second_page() {
+		// There are three stickies, get the second page of two. Is this composed of the
+		// third sticky?
+		$this->go_to( '/?paged=2&posts_per_page=2' );
+		$q = $GLOBALS['wp_query'];
+		$this->assertEquals( $q->posts[0]->ID, self::$posts[14] );
+	}
+
+	/**
+	 * @group 27282
+	 */
+	public function test_stickies_not_included_in_initial_query_should_not_increase_number_of_results_returned() {
+		$this->go_to( '/' );
+		$q = $GLOBALS['wp_query'];
+		$this->assertEquals( $q->get( 'posts_per_page' ), count( $q->posts ) );
+	}
+
+	/**
+	 * @group 27282
+	 */
+	public function test_stickies_should_offset_starting_post_on_subsequent_pages() {
+		$this->go_to( '/?paged=2' );
+		$q = $GLOBALS['wp_query'];
+
+		/*
+		 * There are three stickies. Two (2 and 8) naturally appear on the first page.
+		 * The third (14) pads the first page by 1, offsetting the second page by 1.
+		 */
+		$this->assertEquals( self::$posts[9], $q->posts[0]->ID );
+	}
+
+	/**
+	 * @group 27282
+	 */
+	public function test_stickies_should_not_appear_in_their_normal_order_on_inner_pages() {
+		$this->go_to( '/?paged=2' );
+		$q = $GLOBALS['wp_query'];
+
+		$this->assertNotContains( self::$posts[14], wp_list_pluck( $q->posts, 'ID' ) );
+	}
+
 	public function set_ignore_sticky_posts( $q ) {
 		$q->set( 'ignore_sticky_posts', true );
 	}
