ObfuscateHelperTest.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace Tools\Test\TestCase\View\Helper;
  3. use Cake\View\View;
  4. use Tools\TestSuite\TestCase;
  5. use Tools\View\Helper\ObfuscateHelper;
  6. class ObfuscateHelperTest extends TestCase {
  7. /**
  8. * @return void
  9. */
  10. public function setUp() {
  11. parent::setUp();
  12. $this->Obfuscate = new ObfuscateHelper(new View());
  13. }
  14. /**
  15. * @return void
  16. */
  17. public function tearDown() {
  18. unset($this->Table);
  19. parent::tearDown();
  20. }
  21. /**
  22. * @return void
  23. */
  24. public function testObject() {
  25. $this->assertInstanceOf('Tools\View\Helper\ObfuscateHelper', $this->Obfuscate);
  26. }
  27. /**
  28. * @return void
  29. */
  30. public function testEncodeEmail() {
  31. $result = $this->Obfuscate->encodeEmail('foobar@somedomain.com');
  32. $expected = '<span>@</span>';
  33. $this->assertContains($expected, $result);
  34. }
  35. /**
  36. * @return void
  37. */
  38. public function testEncodeEmailUrl() {
  39. $result = $this->Obfuscate->encodeEmailUrl('foobar@somedomain.com');
  40. $expected = '<script language=javascript>';
  41. $this->assertContains($expected, $result);
  42. }
  43. /**
  44. * @return void
  45. */
  46. public function testEncodeText() {
  47. $result = $this->Obfuscate->encodeText('foobar@somedomain.com');
  48. $expected = ';&#';
  49. $this->assertContains($expected, $result);
  50. }
  51. /**
  52. * @return void
  53. */
  54. public function testHideEmail() {
  55. $mails = [
  56. 'test@test.de' => 't..t@t..t.de',
  57. 'xx@yy.de' => 'x..x@y..y.de',
  58. 'erk-wf@ve-eeervdg.com' => 'e..f@v..g.com',
  59. ];
  60. foreach ($mails as $mail => $expected) {
  61. $res = $this->Obfuscate->hideEmail($mail);
  62. //echo '\''.$mail.'\' becomes \''.$res.'\' - expected \''.$expected.'\'';
  63. $this->assertEquals($expected, $res);
  64. }
  65. }
  66. /**
  67. * @return void
  68. */
  69. public function testWordCensor() {
  70. $data = [
  71. 'dfssdfsdj sdkfj sdkfj ksdfj bitch ksdfj' => 'dfssdfsdj sdkfj sdkfj ksdfj ##### ksdfj',
  72. '122 jsdf ficken Sjdkf sdfj sdf' => '122 jsdf ###### Sjdkf sdfj sdf',
  73. '122 jsdf FICKEN sjdkf sdfjs sdf' => '122 jsdf ###### sjdkf sdfjs sdf',
  74. 'dddddddddd ARSCH ddddddddddddd' => 'dddddddddd ##### ddddddddddddd',
  75. //'\';alert(String.fromCharCode(88,83,83))//\';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//\";alert(String.fromCharCode(88,83,83))//--></SCRIPT>">\'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>' => null
  76. ];
  77. foreach ($data as $value => $expected) {
  78. $res = $this->Obfuscate->wordCensor($value, ['Arsch', 'Ficken', 'Bitch']);
  79. //debug('\''.h($value).'\' becomes \''.h($res).'\'', null, false);
  80. $this->assertEquals($expected === null ? $value : $expected, $res);
  81. }
  82. }
  83. }