ObsfuscateHelperTest.php 2.5 KB

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