userDriver = $drv; $conf->userAuthPreferHTTP = true; $this->data = new Test\RuntimeData($conf); $this->data->user = new User($this->data); $this->data->user->authorizationEnabled(false); $_SERVER['PHP_AUTH_USER'] = self::USER1; $_SERVER['PHP_AUTH_PW'] = "secret"; } function testListUsers() { $this->assertCount(0,$this->data->user->list()); } function testCheckIfAUserDoesNotExist() { $this->assertFalse($this->data->user->exists(self::USER1)); } function testAddAUser() { $this->data->user->add(self::USER1, "secret"); $this->assertCount(1,$this->data->user->list()); } function testCheckIfAUserDoesExist() { $this->data->user->add(self::USER1, "secret"); $this->assertTrue($this->data->user->exists(self::USER1)); } function testAddADuplicateUser() { $this->data->user->add(self::USER1, "secret"); $this->assertException("alreadyExists", "User"); $this->data->user->add(self::USER1, "secret"); } function testAddMultipleUsers() { $this->data->user->add(self::USER1, "secret"); $this->data->user->add(self::USER2, "secret"); $this->assertCount(2,$this->data->user->list()); } function testRemoveAUser() { $this->data->user->add(self::USER1, "secret"); $this->assertCount(1,$this->data->user->list()); $this->data->user->remove(self::USER1); $this->assertCount(0,$this->data->user->list()); } function testRemoveAMissingUser() { $this->assertException("doesNotExist", "User"); $this->data->user->remove(self::USER1); } function testAuthenticateAUser() { $this->data->user->add(self::USER1, "secret"); $this->assertTrue($this->data->user->auth(self::USER1, "secret")); $this->assertFalse($this->data->user->auth(self::USER1, "superman")); } function testChangeAPassword() { $this->data->user->add(self::USER1, "secret"); $this->assertEquals("superman", $this->data->user->passwordSet(self::USER1, "superman")); $this->assertTrue($this->data->user->auth(self::USER1, "superman")); $this->assertFalse($this->data->user->auth(self::USER1, "secret")); $this->assertEquals($this->data->conf->userTempPasswordLength, strlen($this->data->user->passwordSet(self::USER1))); } function testChangeAPasswordForAMissingUser() { $this->assertException("doesNotExist", "User"); $this->data->user->passwordSet(self::USER1, "superman"); } function testGetThePropertiesOfAUser() { $this->data->user->add(self::USER1, "secret"); $p = $this->data->user->propertiesGet(self::USER1); $this->assertArrayHasKey('name', $p); $this->assertArrayNotHasKey('password', $p); $this->assertEquals(self::USER1, $p['name']); } }