]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Util/StringsTest.php
Merge pull request #7785 from nupplaphil/bug/7676-is_file_warning
[friendica.git] / tests / src / Util / StringsTest.php
index eb5e707a70c2b12c3d94dd11e0f57248fa86cdaa..d090b1c5dd3a088f9dad89a5323616c3f0cce2e5 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * @file tests/src/Util/StringsTest.php
  */
-namespace Friendica\Test\Util;
+namespace Friendica\Test\src\Util;
 
 use Friendica\Util\Strings;
 use PHPUnit\Framework\TestCase;
@@ -12,38 +12,109 @@ use PHPUnit\Framework\TestCase;
  */
 class StringsTest extends TestCase
 {
-    /**
-       * escape and unescape
-       */
-       public function testEscapeUnescape()
-       {
-               $text="<tag>I want to break\n this!11!<?hard?></tag>";
-               $xml=XML::escape($text);
-               $retext=XML::unescape($text);
-               $this->assertEquals($text, $retext);
-    }
-    
        /**
-        * escape and put in a document
+        * randomnames should be random, even length
         */
-       public function testEscapeDocument()
-       {
-               $tag="<tag>I want to break</tag>";
-               $xml=XML::escape($tag);
-               $text='<text>'.$xml.'</text>';
-               $xml_parser=xml_parser_create();
-               //should be possible to parse it
-               $values=array();
-               $index=array();
-               $this->assertEquals(1, xml_parse_into_struct($xml_parser, $text, $values, $index));
-               $this->assertEquals(
-                       array('TEXT'=>array(0)),
-                       $index
-               );
+       public function testRandomEven()
+       {
+               $randomname1 = Strings::getRandomName(10);
+               $randomname2 = Strings::getRandomName(10);
+
+               $this->assertNotEquals($randomname1, $randomname2);
+       }
+
+       /**
+        * randomnames should be random, odd length
+        */
+       public function testRandomOdd()
+       {
+               $randomname1 = Strings::getRandomName(9);
+               $randomname2 = Strings::getRandomName(9);
+
+               $this->assertNotEquals($randomname1, $randomname2);
+       }
+
+       /**
+        * try to fail ramdonnames
+        */
+       public function testRandomNameNoLength()
+       {
+               $randomname1 = Strings::getRandomName(0);
+               $this->assertEquals(0, strlen($randomname1));
+       }
+
+       /**
+        * try to fail it with invalid input
+        *
+        * @todo What's corect behaviour here? An exception?
+        */
+       public function testRandomNameNegativeLength()
+       {
+               $randomname1 = Strings::getRandomName(-23);
+               $this->assertEquals(0, strlen($randomname1));
+       }
+
+       /**
+        * test with a length, that may be too short
+        */
+       public function testRandomNameLength1()
+       {
+               $randomname1 = Strings::getRandomName(1);
+               $this->assertEquals(1, strlen($randomname1));
+
+               $randomname2 = Strings::getRandomName(1);
+               $this->assertEquals(1, strlen($randomname2));
+       }
+
+       /**
+        * test, that tags are escaped
+        */
+       public function testEscapeHtml()
+       {
+               $invalidstring='<submit type="button" onclick="alert(\'failed!\');" />';
+
+               $validstring = Strings::escapeTags($invalidstring);
+               $escapedString = Strings::escapeHtml($invalidstring);
+
+               $this->assertEquals('[submit type="button" onclick="alert(\'failed!\');" /]', $validstring);
                $this->assertEquals(
-                       array(array('tag'=>'TEXT', 'type'=>'complete', 'level'=>1, 'value'=>$tag)),
-                       $values
+                       "&lt;submit type=&quot;button&quot; onclick=&quot;alert('failed!');&quot; /&gt;",
+                       $escapedString
                );
-               xml_parser_free($xml_parser);
+       }
+
+       public function dataIsHex()
+       {
+               return [
+                       'validHex' => [
+                               'input' => '90913473615bf00c122ac78338492980',
+                               'valid' => true,
+                       ],
+                       'invalidHex' => [
+                               'input' => '90913473615bf00c122ac7833849293',
+                               'valid' => false,
+                       ],
+                       'emptyHex' => [
+                               'input' => '',
+                               'valid' => false,
+                       ],
+                       'nullHex' => [
+                               'input' => null,
+                               'valid' => false,
+                       ],
+               ];
+       }
+
+       /**
+        * Tests if the string is a valid hexadecimal value
+        *
+        * @param string $input
+        * @param bool $valid
+        *
+        * @dataProvider dataIsHex
+        */
+       public function testIsHex($input, $valid)
+       {
+               $this->assertEquals($valid, Strings::isHex($input));
        }
 }