public function testUserCRUDOperations() { // Create a new user $user = $this->gdata->createUser($this->id, self::GIVEN_NAME, self::FAMILY_NAME, sha1(self::PASSWORD), self::PASSWORD_HASH); $this->autoDelete($user); // Verify that returned values are correct $this->assertEquals($this->id, $user->login->username); $this->assertEquals(self::GIVEN_NAME, $user->name->givenName); $this->assertEquals(self::FAMILY_NAME, $user->name->familyName); // Since we can't retrieve the password or hash function via the // API, let's see if a ClientLogin auth request succeeds try { Zend_Gdata_ClientLogin::getHTTPClient($this->id . '@' . $this->domain, self::PASSWORD, 'xapi'); } catch (Zend_Gdata_App_AuthException $e) { $this->fail("Unable to authenticate new user via ClientLogin."); } // Check to make sure there are no extension elements/attributes // in the retrieved user $this->assertTrue(count($user->extensionElements) == 0); $this->assertTrue(count($user->extensionAttributes) == 0); // Try searching for the same user and make sure that they're returned $user2 = $this->gdata->retrieveUser($this->id); $this->assertEquals($user->saveXML(), $user2->saveXML()); // Delete user (uses builtin delete method, convenience delete // method tested further down) $user->delete(); // Ensure that user was deleted $deletedUser = $this->gdata->retrieveUser($this->id); $this->assertNull($deletedUser); }