1
0

Vizhash16x16Test.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php declare(strict_types=1);
  2. use PHPUnit\Framework\TestCase;
  3. use PrivateBin\Data\Filesystem;
  4. use PrivateBin\Persistence\ServerSalt;
  5. use PrivateBin\Vizhash16x16;
  6. class Vizhash16x16Test extends TestCase
  7. {
  8. private $_file;
  9. private $_path;
  10. public function setUp(): void
  11. {
  12. /* Setup Routine */
  13. $this->_path = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'privatebin_data';
  14. if (!is_dir($this->_path)) {
  15. mkdir($this->_path);
  16. }
  17. $this->_file = $this->_path . DIRECTORY_SEPARATOR . 'vizhash.png';
  18. ServerSalt::setStore(new Filesystem(['dir' => $this->_path]));
  19. }
  20. public function tearDown(): void
  21. {
  22. /* Tear Down Routine */
  23. chmod($this->_path, 0700);
  24. Helper::rmDir($this->_path);
  25. }
  26. public function testVizhashGeneratesUniquePngsPerIp()
  27. {
  28. $vz = new Vizhash16x16();
  29. $pngdata = $vz->generate(hash('sha512', '127.0.0.1'));
  30. file_put_contents($this->_file, $pngdata);
  31. $finfo = new finfo(FILEINFO_MIME_TYPE);
  32. $this->assertEquals('image/png', $finfo->file($this->_file));
  33. $this->assertNotEquals($pngdata, $vz->generate(hash('sha512', '2001:1620:2057:dead:beef::cafe:babe')));
  34. $this->assertEquals($pngdata, $vz->generate(hash('sha512', '127.0.0.1')));
  35. }
  36. }