diff --git a/islandora.module b/islandora.module index a241b6df..01f51a2b 100644 --- a/islandora.module +++ b/islandora.module @@ -1025,42 +1025,26 @@ function islandora_get_tuque_connection($new_user = NULL, $url = NULL) { $tuque = &drupal_static(__FUNCTION__); - global $user; + if ($new_user === NULL) { + global $user; + $new_user = $user; + } + // If tuque is NULL. if (!$tuque) { - // If the provided user is not null, pass it along to Tuque. - if ($new_user) { - $tuque = islandora_make_tuque($new_user, $url); - } - // Otherwise give Tuque the global user. - else { - $tuque = islandora_make_tuque($user, $url); - } + $tuque = islandora_make_tuque($new_user, $url); } // Else, tuque already exists. So only make it if the users are different. else { - if ($new_user) { - // Get the name of the new user. If it's '', then it's actually - // 'anonymous' as far as Tuque is concerned. - $new_user_name = $new_user->name; - if (empty($new_user_name)) { - $new_user_name = 'anonymous'; - } - if ($new_user_name != $tuque->connection->username) { - $tuque = islandora_make_tuque($new_user); - } + // Get the name of the new user. If it's '', then it's actually + // 'anonymous' as far as Tuque is concerned. + $new_user_name = $new_user->name; + if (empty($new_user_name)) { + $new_user_name = 'anonymous'; } - else { - // Get the name of the global user. If it's '', then it's actually - // 'anonymous' as far as Tuque is concerned. - $user_name = $user->name; - if (empty($user_name)) { - $user_name = 'anonymous'; - } - if ($user->name != $tuque->connection->username) { - $tuque = islandora_make_tuque($user); - } + if ($new_user_name != $tuque->connection->username) { + $tuque = islandora_make_tuque($new_user, $url); } } return $tuque; diff --git a/tests/islandora_tuque.test b/tests/islandora_tuque.test index d81941f4..bd7d513e 100644 --- a/tests/islandora_tuque.test +++ b/tests/islandora_tuque.test @@ -14,8 +14,8 @@ class IslandoraTuqueTestCase extends IslandoraWebTestCase { */ public static function getInfo() { return array( - 'name' => 'Islandora Tuque', - 'description' => 'Tests basic tuque functionality.', + 'name' => 'Islandora Tuque User Cache', + 'description' => 'Tests the tuque cache when a user changes.', 'group' => 'Islandora', ); } @@ -34,42 +34,30 @@ class IslandoraTuqueTestCase extends IslandoraWebTestCase { */ public function testTuqueUserChange() { global $user; - $tuque = islandora_get_tuque_connection($user); - $old_user_name = $tuque->connection->username; - $new_user = user_load(0); - $tuque = islandora_get_tuque_connection($new_user); - $new_user_name = $tuque->connection->username; - $this->assertNotEqual($old_user_name, $new_user_name, "User in tuque's connection changes when a new user is provided to islandora_get_tuque_connection()."); - $old_user_name = $new_user_name; - $tuque = islandora_get_tuque_connection(); - $new_user_name = $tuque->connection->username; - $this->assertEqual($old_user_name, $new_user_name, "User in tuque's connection does not change when no user is provided to islandora_get_tuque_connection()."); + $this->assertEqual($old_user_name, $new_user_name, "User in tuque's connection changes back when no user is provided."); } /** * Tests that tuque does not exist and the user is not null. */ public function testTuqueDoesNotExistAndUserIsNotNull() { - $tuque = &drupal_static(__FUNCTION__); - $tuque = NULL; - - $user_to_provide = user_load(0); + drupal_static_reset('islandora_get_tuque_connection'); + $user_to_provide = user_load(1); $new_tuque = islandora_get_tuque_connection($user_to_provide); $new_tuque_user_name = $new_tuque->connection->username; - $this->assertNotNull($new_tuque); - $this->assertNotNull($tuque); + $this->assertNotNull($new_tuque, 'Tuque is not NULL'); $this->assertEqual($user_to_provide->name, $new_tuque_user_name); } @@ -77,71 +65,9 @@ class IslandoraTuqueTestCase extends IslandoraWebTestCase { * Tests that tuque does not exist and the user is null. */ public function testTuqueDoesNotExistAndUserIsNull() { - $tuque = &drupal_static(__FUNCTION__); - $tuque = NULL; - - $user_to_provide = NULL; - - $new_tuque = islandora_get_tuque_connection($user_to_provide); + $new_tuque = islandora_get_tuque_connection(); $new_tuque_user_name = $new_tuque->connection->username; - - global $user; - - $this->assertNotNull($new_tuque); - $this->assertNotNull($tuque); - $this->assertEqual($new_tuque_user_name, $user); - } - - /** - * Test that tuque exists, the user is not null, the user is not tuque's user. - */ - public function testTuqueExistsAndUserIsNotNullAndUserIsNotTuquesUser() { - $tuque = &drupal_static(__FUNCTION__); - $user_to_provide = user_load(0); - $new_tuque = islandora_get_tuque_connection($user_to_provide); - - $this->assertNotNull($new_tuque); - $this->assertNotNull($tuque); - $this->assertNotEqual($user_to_provide->name, $new_tuque->connection->username); - } - - /** - * Tests that tuque exists, the user is not null, the user is tuque's user. - */ - public function testTuqueExistsAndUserIsNotNullAndUserIsTuquesUser() { - $tuque = &drupal_static(__FUNCTION__); - $new_tuque = islandora_get_tuque_connection($tuque->connection->username); - - $this->assertNotNull($new_tuque); - $this->assertNotNull($tuque); - $this->assertEqual($tuque->connection->username, $new_tuque->connection->username); - } - - /** - * Tests that tuque exists, the user is null, global user is not tuque's user. - */ - public function testTuqueExistsAndUserIsNullAndGlobalUserIsNotTuquesUser() { - $tuque = &drupal_static(__FUNCTION__); global $user; - $user = NULL; - $new_tuque = islandora_get_tuque_connection($user); - - $this->assertNotNull($new_tuque); - $this->assertNotNull($tuque); - $this->assertNotEqual($new_tuque->connection->username, $user); - } - - /** - * Tests that tuque exists, the user is null, global user is tuque's user. - */ - public function testTuqueExistsAndUserIsNullAndGlobalUserIsTuquesUser() { - $tuque = &drupal_static(__FUNCTION__); - global $_islandora_user; - $_islandora_user = $tuque->connection->username; - $new_tuque = islandora_get_tuque_connection($user); - - $this->assertNotNull($new_tuque); - $this->assertNotNull($tuque); - $this->assertEqual($new_tuque->connection->username, $user); + $this->assertEqual($new_tuque_user_name, $user->name); } -} +} \ No newline at end of file