mirror of
https://github.com/nextcloud/passman.git
synced 2024-11-12 02:52:35 +08:00
1f30ccc963
Added VaultMapper unit tests Edited some VaultMapper docs and changed a function to use the Utils implementation Added coverage phpunit annotations
140 lines
No EOL
6.6 KiB
PHP
140 lines
No EOL
6.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Test case for the Database Credential model class
|
|
* Date: 8/10/16
|
|
* Time: 23:41
|
|
* @copyright Copyright (c) 2016, Marcos Zuriaga Miguel (wolfi@wolfi.es)
|
|
* @license AGPLv3
|
|
*/
|
|
use \OCA\Passman\Db\Credential;
|
|
use \OCP\AppFramework\Db\Entity;
|
|
|
|
/**
|
|
* @coversDefaultClass \OCA\Passman\Db\Credential
|
|
* @uses \OCA\Passman\Db\EntityJSONSerializer
|
|
* @uses \OCP\AppFramework\Db\Entity
|
|
* @uses \JsonSerializable
|
|
*/
|
|
class CredentialTest extends PHPUnit_Framework_TestCase {
|
|
CONST TEST_DATA = [
|
|
'id' => 5,
|
|
'guid' => 'FA8D80E0-90AB-4D7A-9937-913F486C24EA',
|
|
'vault_id' => 1,
|
|
'user_id' => 'WolFi',
|
|
'label' => 'Test credential for unit testing',
|
|
'description' => 'eyJpdiI6InhoSVczaEpvUVpoMmo0TWpibkQ1ZEEiLCJ2IjoxLCJpdGVyIjoxMDAwLCJrcyI6MjU2LCJ0cyI6NjQsIm1vZGUiOiJjY20iLCJhZGF0YSI6IiIsImNpcGhlciI6ImFlcyIsInNhbHQiOiI3ZzdHMDhzN3FIWSIsImN0IjoiSjB0YkpBUjdMY0pSUGFEaSJ9',
|
|
'created' => 1475963590,
|
|
'changed' => 1475963600,
|
|
'tags' => 'eyJpdiI6InZ5NjUwbEtvejNPa09TOWZuWEs4OVEiLCJ2IjoxLCJpdGVyIjoxMDAwLCJrcyI6MjU2LCJ0cyI6NjQsIm1vZGUiOiJjY20iLCJhZGF0YSI6IiIsImNpcGhlciI6ImFlcyIsInNhbHQiOiI3ZzdHMDhzN3FIWSIsImN0IjoibXlqQnNBSnFWbFVrSlEifQ==',
|
|
'email' => 'eyJpdiI6ImZCblR4S2FuSFBiNGlXWmYxZlBTcmciLCJ2IjoxLCJpdGVyIjoxMDAwLCJrcyI6MjU2LCJ0cyI6NjQsIm1vZGUiOiJjY20iLCJhZGF0YSI6IiIsImNpcGhlciI6ImFlcyIsInNhbHQiOiI3ZzdHMDhzN3FIWSIsImN0IjoiQ0lTSWRNSnE2QzVIbG8zdiJ9',
|
|
'username' => 'eyJpdiI6IlVGUStYNkZTUEYwU3pvd2Z1NUxFcVEiLCJ2IjoxLCJpdGVyIjoxMDAwLCJrcyI6MjU2LCJ0cyI6NjQsIm1vZGUiOiJjY20iLCJhZGF0YSI6IiIsImNpcGhlciI6ImFlcyIsInNhbHQiOiI3ZzdHMDhzN3FIWSIsImN0IjoidFhGTGcrU3RML0Y2dUE4dSJ9',
|
|
'password' => 'eyJpdiI6Ik5Bakc0bVY5SEtBbW5tb1AwTEhKZFEiLCJ2IjoxLCJpdGVyIjoxMDAwLCJrcyI6MjU2LCJ0cyI6NjQsIm1vZGUiOiJjY20iLCJhZGF0YSI6IiIsImNpcGhlciI6ImFlcyIsInNhbHQiOiI3ZzdHMDhzN3FIWSIsImN0IjoiNEhyWTJHUGtkTEs1V0tuYXFtUXBjWXZvSkFqSyJ9',
|
|
'url' => 'eyJpdiI6IkFVZ0RyWFA4S1lwVHl6WGZkK1U3RWciLCJ2IjoxLCJpdGVyIjoxMDAwLCJrcyI6MjU2LCJ0cyI6NjQsIm1vZGUiOiJjY20iLCJhZGF0YSI6IiIsImNpcGhlciI6ImFlcyIsInNhbHQiOiI3ZzdHMDhzN3FIWSIsImN0IjoiQ2NiUUtHQlRmbkYveU5BMyJ9',
|
|
'favicon' => null,
|
|
'renew_interval' => null,
|
|
'expire_time' => 0,
|
|
'delete_time' => 0,
|
|
'files' => 'eyJpdiI6Ink4UkorSWdSYmthZGdUVEoyKzArT1EiLCJ2IjoxLCJpdGVyIjoxMDAwLCJrcyI6MjU2LCJ0cyI6NjQsIm1vZGUiOiJjY20iLCJhZGF0YSI6IiIsImNpcGhlciI6ImFlcyIsInNhbHQiOiI3ZzdHMDhzN3FIWSIsImN0IjoiNXpidHJJaE5kSCs4MHcifQ==',
|
|
'custom_fields' => 'eyJpdiI6InJCdlNNNmhINHM4OG9NUld1eTNaTHciLCJ2IjoxLCJpdGVyIjoxMDAwLCJrcyI6MjU2LCJ0cyI6NjQsIm1vZGUiOiJjY20iLCJhZGF0YSI6IiIsImNpcGhlciI6ImFlcyIsInNhbHQiOiI3ZzdHMDhzN3FIWSIsImN0IjoiZDJaRUFiSWZ5a1FJRXcifQ==',
|
|
'otp' => 'eyJpdiI6IjBzL0g0YUZvWVRaN2RFMlhETS9aMnciLCJ2IjoxLCJpdGVyIjoxMDAwLCJrcyI6MjU2LCJ0cyI6NjQsIm1vZGUiOiJjY20iLCJhZGF0YSI6IiIsImNpcGhlciI6ImFlcyIsInNhbHQiOiI3ZzdHMDhzN3FIWSIsImN0IjoiMGsvckljcGJwMWU1SVEifQ==',
|
|
'hidden' => 1,
|
|
'shared_key'=> null
|
|
];
|
|
|
|
/**
|
|
* @var Credential
|
|
*/
|
|
protected $credential;
|
|
|
|
/**
|
|
* @after
|
|
*/
|
|
public function setUp() {
|
|
$this->credential = Credential::fromRow(self::TEST_DATA);
|
|
}
|
|
|
|
/**
|
|
* @coversNothing
|
|
*/
|
|
public function testInstances() {
|
|
$this->assertTrue($this->credential instanceof Entity);
|
|
$this->assertTrue($this->credential instanceof \JsonSerializable);
|
|
}
|
|
|
|
/**
|
|
* @covers ::__construct
|
|
* @covers ::getter
|
|
* @covers ::fromRow
|
|
*/
|
|
public function testGetters(){
|
|
$this->assertEquals(self::TEST_DATA['id'], $this->credential->getId());
|
|
$this->assertEquals(self::TEST_DATA['guid'], $this->credential->getGuid());
|
|
$this->assertEquals(self::TEST_DATA['vault_id'], $this->credential->getVaultId());
|
|
$this->assertEquals(self::TEST_DATA['user_id'], $this->credential->getUserId());
|
|
$this->assertEquals(self::TEST_DATA['label'], $this->credential->getLabel());
|
|
$this->assertEquals(self::TEST_DATA['description'], $this->credential->getDescription());
|
|
$this->assertEquals(self::TEST_DATA['created'], $this->credential->getCreated());
|
|
$this->assertEquals(self::TEST_DATA['changed'], $this->credential->getChanged());
|
|
$this->assertEquals(self::TEST_DATA['tags'], $this->credential->getTags());
|
|
$this->assertEquals(self::TEST_DATA['email'], $this->credential->getEmail());
|
|
$this->assertEquals(self::TEST_DATA['username'], $this->credential->getUsername());
|
|
$this->assertEquals(self::TEST_DATA['password'], $this->credential->getPassword());
|
|
$this->assertEquals(self::TEST_DATA['url'], $this->credential->getUrl());
|
|
$this->assertEquals(self::TEST_DATA['favicon'], $this->credential->getFavicon());
|
|
$this->assertEquals(self::TEST_DATA['renew_interval'], $this->credential->getRenewInterval());
|
|
$this->assertEquals(self::TEST_DATA['expire_time'], $this->credential->getExpireTime());
|
|
$this->assertEquals(self::TEST_DATA['delete_time'], $this->credential->getDeleteTime());
|
|
$this->assertEquals(self::TEST_DATA['files'], $this->credential->getFiles());
|
|
$this->assertEquals(self::TEST_DATA['custom_fields'], $this->credential->getCustomFields());
|
|
$this->assertEquals(self::TEST_DATA['otp'], $this->credential->getOtp());
|
|
$this->assertEquals(self::TEST_DATA['hidden'], $this->credential->getHidden());
|
|
$this->assertEquals(self::TEST_DATA['shared_key'], $this->credential->getSharedKey());
|
|
}
|
|
|
|
/**
|
|
* @covers ::setter
|
|
*/
|
|
public function testSetters() {
|
|
/**
|
|
* Only testing one setter since if it works all setters should work because php magic.
|
|
* please, if you override a setter implement it here.
|
|
*/
|
|
$this->credential->setUserId('Sander');
|
|
$this->assertTrue($this->credential->getUserId() === 'Sander');
|
|
}
|
|
|
|
/**
|
|
* @covers ::jsonSerialize
|
|
*/
|
|
public function testJsonSerialize(){
|
|
$json_array = $this->credential->jsonSerialize();
|
|
|
|
$comparision_array = [
|
|
'credential_id' => self::TEST_DATA['id'],
|
|
'guid' => self::TEST_DATA['guid'],
|
|
'user_id' => self::TEST_DATA['user_id'],
|
|
'vault_id' => self::TEST_DATA['vault_id'],
|
|
'label' => self::TEST_DATA['label'],
|
|
'description' => self::TEST_DATA['description'],
|
|
'created' => self::TEST_DATA['created'],
|
|
'changed' => self::TEST_DATA['changed'],
|
|
'tags' => self::TEST_DATA['tags'],
|
|
'email' => self::TEST_DATA['email'],
|
|
'username' => self::TEST_DATA['username'],
|
|
'password' => self::TEST_DATA['password'],
|
|
'url' => self::TEST_DATA['url'],
|
|
'favicon' => self::TEST_DATA['favicon'],
|
|
'renew_interval' => self::TEST_DATA['renew_interval'],
|
|
'expire_time' => self::TEST_DATA['expire_time'],
|
|
'delete_time' => self::TEST_DATA['delete_time'],
|
|
'files' => self::TEST_DATA['files'],
|
|
'custom_fields' => self::TEST_DATA['custom_fields'],
|
|
'otp' => self::TEST_DATA['otp'],
|
|
'hidden' => self::TEST_DATA['hidden'],
|
|
'shared_key' => self::TEST_DATA['shared_key'],
|
|
];
|
|
|
|
$this->assertEquals($comparision_array, $json_array);
|
|
}
|
|
} |