diff --git a/phpcs.xml b/phpcs.xml
index e41bee18e8bcd39874a217fd866ec735c07980f2..04859b2ff96c6f715514f82f798e6015db5166e6 100644
--- a/phpcs.xml
+++ b/phpcs.xml
@@ -32,7 +32,7 @@
 	<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
 		<properties>
 			<!-- Value: replace the function, class, and variable prefixes used. Separate multiple prefixes with a comma. -->
-			<property name="prefixes" type="array" value="redis_user_session_storage,wp_redis_user_session_storage"/>
+			<property name="prefixes" type="array" value="redis_user_session_storage,wp_redis_user_session"/>
 		</properties>
 	</rule>
 	<rule ref="WordPress.WP.I18n">
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index 9807b5379a5503621b3b743ff7323206145647ef..b8985bb10f91380244117b3be4a452a5cdd2fc93 100755
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -5,10 +5,6 @@
  * @package WP_Revisions_Control
  */
 
-if ( ! defined( 'WP_REDIS_USER_SESSION_HOST' ) ) {
-	define( 'WP_REDIS_USER_SESSION_HOST', 'redis' );
-}
-
 $redis_user_session_storage = getenv( 'WP_TESTS_DIR' );
 
 if ( ! $redis_user_session_storage ) {
@@ -33,3 +29,8 @@ tests_add_filter( 'muplugins_loaded', 'redis_user_session_storage_tests_manually
 
 // Start up the WP testing environment.
 require $redis_user_session_storage . '/includes/bootstrap.php';
+
+// Set Redis host for CI.
+if ( ! defined( 'WP_REDIS_USER_SESSION_HOST' ) ) {
+	define( 'WP_REDIS_USER_SESSION_HOST', 'redis' );
+}
diff --git a/tests/inc/class-test-plugin.php b/tests/inc/class-test-plugin.php
index 7dd0de8b9469c5f35c45d4d40cb1c4669d30e4c6..e86d09adf4544c8c24e50a77c2f662a421ed888e 100755
--- a/tests/inc/class-test-plugin.php
+++ b/tests/inc/class-test-plugin.php
@@ -167,20 +167,71 @@ class Test_Plugin extends WP_UnitTestCase {
 	 * Test `update_session()` method.
 	 *
 	 * @covers ::update_session()
+	 * @covers ::update_sessions()
 	 * @return void
 	 */
 	public function test_update_session() {
-		$this->markTestIncomplete();
-	}
+		$user_id = $this->factory->user->create();
+		$plugin  = new Plugin( $user_id );
 
-	/**
-	 * Test `update_sessions()` method.
-	 *
-	 * @covers ::update_sessions()
-	 * @return void
-	 */
-	public function test_update_sessions() {
-		$this->markTestIncomplete();
+		$plugin->create( time() + 60 );
+
+		$sessions = $this->_invoke_method( $user_id, 'get_sessions' );
+		$verifier = array_keys( $sessions )[0];
+
+		$this->assertNotEmpty(
+			$sessions,
+			'Failed to assert that session was created.'
+		);
+
+		$this->_invoke_method(
+			$user_id,
+			'update_session',
+			array(
+				$verifier,
+			)
+		);
+
+		$this->assertEmpty(
+			$this->_invoke_method(
+				$user_id,
+				'get_session',
+				array(
+					$verifier,
+				)
+			),
+			'Failed to assert that session is not destroyed when no session data is provided.'
+		);
+
+		$plugin->create( time() + 60 );
+
+		$sessions = $this->_invoke_method( $user_id, 'get_sessions' );
+		$verifier = array_keys( $sessions )[0];
+		$session_data = array(
+			'expiration' => time() + 60,
+			'foo'        => 'bar',
+		);
+
+		$this->_invoke_method(
+			$user_id,
+			'update_session',
+			array(
+				$verifier,
+				$session_data,
+			)
+		);
+
+		$this->assertEquals(
+			$session_data,
+			$this->_invoke_method(
+				$user_id,
+				'get_session',
+				array(
+					$verifier,
+				)
+			),
+			'Failed to assert that session is updated when session data is provided.'
+		);
 	}
 
 	/**
@@ -190,7 +241,39 @@ class Test_Plugin extends WP_UnitTestCase {
 	 * @return void
 	 */
 	public function test_destroy_other_sessions() {
-		$this->markTestIncomplete();
+		$user_id = $this->factory->user->create();
+		$plugin  = new Plugin( $user_id );
+
+		$plugin->create( time() + 60 );
+		$plugin->create( time() + 120 );
+		$plugin->create( time() + 180 );
+
+		$sessions = $this->_invoke_method( $user_id, 'get_sessions' );
+
+		$this->assertCount(
+			3,
+			$sessions,
+			'Failed to assert that multiple sessions were created.'
+		);
+
+		$verifier = array_keys( $sessions )[0];
+
+		$this->_invoke_method(
+			$user_id,
+			'destroy_other_sessions',
+			array(
+				$verifier,
+			)
+		);
+
+		$this->assertCount(
+			1,
+			$this->_invoke_method(
+				$user_id,
+				'get_sessions'
+			),
+			'Failed to assert that other sessions are destroyed.'
+		);
 	}
 
 	/**
@@ -200,7 +283,36 @@ class Test_Plugin extends WP_UnitTestCase {
 	 * @return void
 	 */
 	public function test_destroy_all_sessions() {
-		$this->markTestIncomplete();
+		$user_id = $this->factory->user->create();
+		$plugin  = new Plugin( $user_id );
+
+		$plugin->create( time() + 60 );
+		$plugin->create( time() + 120 );
+		$plugin->create( time() + 180 );
+
+		$sessions = $this->_invoke_method( $user_id, 'get_sessions' );
+
+		$this->assertCount(
+			3,
+			$this->_invoke_method(
+				$user_id,
+				'get_sessions'
+			),
+			'Failed to assert that multiple sessions were created.'
+		);
+
+		$this->_invoke_method(
+			$user_id,
+			'destroy_all_sessions'
+		);
+
+		$this->assertEmpty(
+			$this->_invoke_method(
+				$user_id,
+				'get_sessions'
+			),
+			'Failed to assert that all sessions were destroyed.'
+		);
 	}
 
 	/**
@@ -211,7 +323,56 @@ class Test_Plugin extends WP_UnitTestCase {
 	 * @return void
 	 */
 	public function test_drop_sessions() {
-		$this->markTestIncomplete();
+		$user_1        = $this->factory->user->create();
+		$plugin_user_1 = new Plugin( $user_1 );
+		$user_2        = $this->factory->user->create();
+		$plugin_user_2 = new Plugin( $user_2 );
+
+		$plugin_user_1->create( time() + 60 );
+		$plugin_user_1->create( time() + 120 );
+		$plugin_user_1->create( time() + 180 );
+		$plugin_user_2->create( time() + 60 );
+		$plugin_user_2->create( time() + 120 );
+		$plugin_user_2->create( time() + 180 );
+
+		$this->assertCount(
+			3,
+			$this->_invoke_method(
+				$user_1,
+				'get_sessions'
+			),
+			'Failed to assert that multiple sessions were created for user 1.'
+		);
+
+		$this->assertCount(
+			3,
+			$this->_invoke_method(
+				$user_2,
+				'get_sessions'
+			),
+			'Failed to assert that multiple sessions were created for user 2.'
+		);
+
+		$this->_invoke_method(
+			$user_1,
+			'flush_redis_db'
+		);
+
+		$this->assertEmpty(
+			$this->_invoke_method(
+				$user_1,
+				'get_sessions'
+			),
+			'Failed to assert that sessions were destroyed for user 1.'
+		);
+
+		$this->assertEmpty(
+			$this->_invoke_method(
+				$user_2,
+				'get_sessions'
+			),
+			'Failed to assert that sessions were destroyed for user 2.'
+		);
 	}
 
 	/**