TokensTableTest.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace Tools\Test\Model\Table;
  3. use Cake\ORM\TableRegistry;
  4. use Tools\TestSuite\TestCase;
  5. class TokensTableTest extends TestCase {
  6. /**
  7. * @var \Tools\Model\Table\TokensTable;
  8. */
  9. public $Tokens;
  10. /**
  11. * @var array
  12. */
  13. public $fixtures = [
  14. 'plugin.Tools.Tokens'
  15. ];
  16. /**
  17. * @return void
  18. */
  19. public function setUp() {
  20. parent::setUp();
  21. $this->Tokens = TableRegistry::getTableLocator()->get('Tools.Tokens');
  22. }
  23. /**
  24. * @return void
  25. */
  26. public function testTokenInstance() {
  27. $this->assertInstanceOf('Tools\Model\Table\TokensTable', $this->Tokens);
  28. }
  29. /**
  30. * @return void
  31. */
  32. public function testGenerateKey() {
  33. $key = $this->Tokens->generateKey(4);
  34. //pr($key);
  35. $this->assertTrue(!empty($key) && strlen($key) === 4);
  36. }
  37. /**
  38. * @return void
  39. */
  40. public function testNewKeySpendKey() {
  41. $key = $this->Tokens->newKey('test', null, null, 'xyz');
  42. $this->assertTrue(!empty($key));
  43. $res = $this->Tokens->useKey('test', $key);
  44. //pr($res);
  45. $this->assertTrue(!empty($res));
  46. $res = $this->Tokens->useKey('test', $key);
  47. //pr($res);
  48. $this->assertTrue(!empty($res) && !empty($res['used']));
  49. $res = $this->Tokens->useKey('test', $key . 'x');
  50. $this->assertFalse($res);
  51. $res = $this->Tokens->useKey('testx', $key);
  52. $this->assertFalse($res);
  53. }
  54. /**
  55. * @return void
  56. */
  57. public function testGarbageCollector() {
  58. $data = [
  59. 'created' => date(FORMAT_DB_DATETIME, time() - 3 * MONTH),
  60. 'type' => 'y',
  61. 'key' => 'x'
  62. ];
  63. $entity = $this->Tokens->newEntity($data, ['validate' => false]);
  64. $this->Tokens->save($entity);
  65. $count = $this->Tokens->find('count');
  66. $this->Tokens->garbageCollector();
  67. $count2 = $this->Tokens->find('count');
  68. $this->assertTrue($count > $count2);
  69. }
  70. }