Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Feature/Controller/UsersTest.php
Show First 20 Lines • Show All 55 Lines • ▼ Show 20 Lines | public function testInfo(): void | ||||
$response = $this->actingAs($user)->get("api/auth/info"); | $response = $this->actingAs($user)->get("api/auth/info"); | ||||
$response->assertStatus(200); | $response->assertStatus(200); | ||||
$json = $response->json(); | $json = $response->json(); | ||||
$this->assertEquals($user->id, $json['id']); | $this->assertEquals($user->id, $json['id']); | ||||
$this->assertEquals($user->email, $json['email']); | $this->assertEquals($user->email, $json['email']); | ||||
$this->assertEquals(User::STATUS_NEW, $json['status']); | $this->assertEquals(User::STATUS_NEW | User::STATUS_ACTIVE, $json['status']); | ||||
$this->assertTrue(is_array($json['statusInfo'])); | $this->assertTrue(is_array($json['statusInfo'])); | ||||
$this->assertTrue(is_array($json['settings'])); | $this->assertTrue(is_array($json['settings'])); | ||||
$this->assertTrue(is_array($json['aliases'])); | $this->assertTrue(is_array($json['aliases'])); | ||||
// Note: Details of the content are tested in testUserResponse() | // Note: Details of the content are tested in testUserResponse() | ||||
} | } | ||||
/** | /** | ||||
▲ Show 20 Lines • Show All 124 Lines • ▼ Show 20 Lines | public function testIndex(): void | ||||
$response->assertStatus(200); | $response->assertStatus(200); | ||||
$json = $response->json(); | $json = $response->json(); | ||||
$this->assertCount(3, $json); | $this->assertCount(3, $json); | ||||
$this->assertSame($jack->email, $json[0]['email']); | $this->assertSame($jack->email, $json[0]['email']); | ||||
$this->assertSame($john->email, $json[1]['email']); | $this->assertSame($john->email, $json[1]['email']); | ||||
$this->assertSame($ned->email, $json[2]['email']); | $this->assertSame($ned->email, $json[2]['email']); | ||||
// Values below are tested by Unit tests | |||||
$this->assertArrayHasKey('isDeleted', $json[0]); | |||||
$this->assertArrayHasKey('isSuspended', $json[0]); | |||||
$this->assertArrayHasKey('isActive', $json[0]); | |||||
$this->assertArrayHasKey('isLdapReady', $json[0]); | |||||
$this->assertArrayHasKey('isImapReady', $json[0]); | |||||
$response = $this->actingAs($ned)->get("/api/v4/users"); | $response = $this->actingAs($ned)->get("/api/v4/users"); | ||||
$response->assertStatus(200); | $response->assertStatus(200); | ||||
$json = $response->json(); | $json = $response->json(); | ||||
$this->assertCount(3, $json); | $this->assertCount(3, $json); | ||||
$this->assertSame($jack->email, $json[0]['email']); | $this->assertSame($jack->email, $json[0]['email']); | ||||
▲ Show 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | public function testStatusInfo(): void | ||||
'type' => Domain::TYPE_PUBLIC, | 'type' => Domain::TYPE_PUBLIC, | ||||
]); | ]); | ||||
$user->status = User::STATUS_NEW; | $user->status = User::STATUS_NEW; | ||||
$user->save(); | $user->save(); | ||||
$result = UsersController::statusInfo($user); | $result = UsersController::statusInfo($user); | ||||
$this->assertSame('new', $result['status']); | $this->assertFalse($result['isReady']); | ||||
$this->assertCount(3, $result['process']); | $this->assertCount(3, $result['process']); | ||||
$this->assertSame('user-new', $result['process'][0]['label']); | $this->assertSame('user-new', $result['process'][0]['label']); | ||||
$this->assertSame(true, $result['process'][0]['state']); | $this->assertSame(true, $result['process'][0]['state']); | ||||
$this->assertSame('user-ldap-ready', $result['process'][1]['label']); | $this->assertSame('user-ldap-ready', $result['process'][1]['label']); | ||||
$this->assertSame(false, $result['process'][1]['state']); | $this->assertSame(false, $result['process'][1]['state']); | ||||
$this->assertSame('user-imap-ready', $result['process'][2]['label']); | $this->assertSame('user-imap-ready', $result['process'][2]['label']); | ||||
$this->assertSame(false, $result['process'][2]['state']); | $this->assertSame(false, $result['process'][2]['state']); | ||||
$user->status |= User::STATUS_LDAP_READY | User::STATUS_IMAP_READY; | $user->status |= User::STATUS_LDAP_READY | User::STATUS_IMAP_READY; | ||||
$user->save(); | $user->save(); | ||||
$result = UsersController::statusInfo($user); | $result = UsersController::statusInfo($user); | ||||
$this->assertSame('new', $result['status']); | $this->assertTrue($result['isReady']); | ||||
$this->assertCount(3, $result['process']); | $this->assertCount(3, $result['process']); | ||||
$this->assertSame('user-new', $result['process'][0]['label']); | $this->assertSame('user-new', $result['process'][0]['label']); | ||||
$this->assertSame(true, $result['process'][0]['state']); | $this->assertSame(true, $result['process'][0]['state']); | ||||
$this->assertSame('user-ldap-ready', $result['process'][1]['label']); | $this->assertSame('user-ldap-ready', $result['process'][1]['label']); | ||||
$this->assertSame(true, $result['process'][1]['state']); | $this->assertSame(true, $result['process'][1]['state']); | ||||
$this->assertSame('user-imap-ready', $result['process'][2]['label']); | $this->assertSame('user-imap-ready', $result['process'][2]['label']); | ||||
$this->assertSame(true, $result['process'][2]['state']); | $this->assertSame(true, $result['process'][2]['state']); | ||||
$user->status |= User::STATUS_ACTIVE; | |||||
$user->save(); | |||||
$domain->status |= Domain::STATUS_VERIFIED; | $domain->status |= Domain::STATUS_VERIFIED; | ||||
$domain->type = Domain::TYPE_EXTERNAL; | $domain->type = Domain::TYPE_EXTERNAL; | ||||
$domain->save(); | $domain->save(); | ||||
$result = UsersController::statusInfo($user); | $result = UsersController::statusInfo($user); | ||||
$this->assertSame('active', $result['status']); | $this->assertFalse($result['isReady']); | ||||
$this->assertCount(7, $result['process']); | $this->assertCount(7, $result['process']); | ||||
$this->assertSame('user-new', $result['process'][0]['label']); | $this->assertSame('user-new', $result['process'][0]['label']); | ||||
$this->assertSame(true, $result['process'][0]['state']); | $this->assertSame(true, $result['process'][0]['state']); | ||||
$this->assertSame('user-ldap-ready', $result['process'][1]['label']); | $this->assertSame('user-ldap-ready', $result['process'][1]['label']); | ||||
$this->assertSame(true, $result['process'][1]['state']); | $this->assertSame(true, $result['process'][1]['state']); | ||||
$this->assertSame('user-imap-ready', $result['process'][2]['label']); | $this->assertSame('user-imap-ready', $result['process'][2]['label']); | ||||
$this->assertSame(true, $result['process'][2]['state']); | $this->assertSame(true, $result['process'][2]['state']); | ||||
$this->assertSame('domain-new', $result['process'][3]['label']); | $this->assertSame('domain-new', $result['process'][3]['label']); | ||||
$this->assertSame(true, $result['process'][3]['state']); | $this->assertSame(true, $result['process'][3]['state']); | ||||
$this->assertSame('domain-ldap-ready', $result['process'][4]['label']); | $this->assertSame('domain-ldap-ready', $result['process'][4]['label']); | ||||
$this->assertSame(false, $result['process'][4]['state']); | $this->assertSame(false, $result['process'][4]['state']); | ||||
$this->assertSame('domain-verified', $result['process'][5]['label']); | $this->assertSame('domain-verified', $result['process'][5]['label']); | ||||
$this->assertSame(true, $result['process'][5]['state']); | $this->assertSame(true, $result['process'][5]['state']); | ||||
$this->assertSame('domain-confirmed', $result['process'][6]['label']); | $this->assertSame('domain-confirmed', $result['process'][6]['label']); | ||||
$this->assertSame(false, $result['process'][6]['state']); | $this->assertSame(false, $result['process'][6]['state']); | ||||
$user->status |= User::STATUS_DELETED; | |||||
$user->save(); | |||||
$result = UsersController::statusInfo($user); | |||||
$this->assertSame('deleted', $result['status']); | |||||
} | } | ||||
/** | /** | ||||
* Test user data response used in show and info actions | * Test user data response used in show and info actions | ||||
*/ | */ | ||||
public function testUserResponse(): void | public function testUserResponse(): void | ||||
{ | { | ||||
$user = $this->getTestUser('john@kolab.org'); | $user = $this->getTestUser('john@kolab.org'); | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | public function testShow(): void | ||||
$response->assertStatus(200); | $response->assertStatus(200); | ||||
$this->assertEquals($userA->id, $json['id']); | $this->assertEquals($userA->id, $json['id']); | ||||
$this->assertEquals($userA->email, $json['email']); | $this->assertEquals($userA->email, $json['email']); | ||||
$this->assertTrue(is_array($json['statusInfo'])); | $this->assertTrue(is_array($json['statusInfo'])); | ||||
$this->assertTrue(is_array($json['settings'])); | $this->assertTrue(is_array($json['settings'])); | ||||
$this->assertTrue(is_array($json['aliases'])); | $this->assertTrue(is_array($json['aliases'])); | ||||
$this->assertSame([], $json['skus']); | $this->assertSame([], $json['skus']); | ||||
// Values below are tested by Unit tests | |||||
$this->assertArrayHasKey('isDeleted', $json); | |||||
$this->assertArrayHasKey('isSuspended', $json); | |||||
$this->assertArrayHasKey('isActive', $json); | |||||
$this->assertArrayHasKey('isLdapReady', $json); | |||||
$this->assertArrayHasKey('isImapReady', $json); | |||||
$john = $this->getTestUser('john@kolab.org'); | $john = $this->getTestUser('john@kolab.org'); | ||||
$jack = $this->getTestUser('jack@kolab.org'); | $jack = $this->getTestUser('jack@kolab.org'); | ||||
$ned = $this->getTestUser('ned@kolab.org'); | $ned = $this->getTestUser('ned@kolab.org'); | ||||
// Test unauthorized access to a profile of other user | // Test unauthorized access to a profile of other user | ||||
$response = $this->actingAs($jack)->get("/api/v4/users/{$userA->id}"); | $response = $this->actingAs($jack)->get("/api/v4/users/{$userA->id}"); | ||||
$response->assertStatus(403); | $response->assertStatus(403); | ||||
▲ Show 20 Lines • Show All 406 Lines • Show Last 20 Lines |