<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
$randomname1 = Strings::getRandomName(10);
$randomname2 = Strings::getRandomName(10);
- $this->assertNotEquals($randomname1, $randomname2);
+ self::assertNotEquals($randomname1, $randomname2);
}
/**
$randomname1 = Strings::getRandomName(9);
$randomname2 = Strings::getRandomName(9);
- $this->assertNotEquals($randomname1, $randomname2);
+ self::assertNotEquals($randomname1, $randomname2);
}
/**
public function testRandomNameNoLength()
{
$randomname1 = Strings::getRandomName(0);
- $this->assertEquals(0, strlen($randomname1));
+ self::assertEquals(0, strlen($randomname1));
}
/**
* try to fail it with invalid input
*
- * @todo What's corect behaviour here? An exception?
+ * @todo What's correct behaviour here? An exception?
*/
public function testRandomNameNegativeLength()
{
$randomname1 = Strings::getRandomName(-23);
- $this->assertEquals(0, strlen($randomname1));
+ self::assertEquals(0, strlen($randomname1));
}
/**
public function testRandomNameLength1()
{
$randomname1 = Strings::getRandomName(1);
- $this->assertEquals(1, strlen($randomname1));
+ self::assertEquals(1, strlen($randomname1));
$randomname2 = Strings::getRandomName(1);
- $this->assertEquals(1, strlen($randomname2));
+ self::assertEquals(1, strlen($randomname2));
}
/**
{
$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(
+ self::assertEquals(
"<submit type="button" onclick="alert('failed!');" />",
$escapedString
);
'input' => '',
'valid' => false,
],
- 'nullHex' => [
- 'input' => null,
- 'valid' => false,
- ],
];
}
/**
* Tests if the string is a valid hexadecimal value
*
- * @param string $input
- * @param bool $valid
+ * @param string $input Input string
+ * @param bool $valid Whether testing on valid or invalid
*
* @dataProvider dataIsHex
*/
- public function testIsHex($input, $valid)
+ public function testIsHex(string $input, bool $valid = false)
{
- $this->assertEquals($valid, Strings::isHex($input));
+ self::assertEquals($valid, Strings::isHex($input));
}
/**
public function testSubstringReplaceASCII()
{
for ($start = -10; $start <= 10; $start += 5) {
- $this->assertEquals(
+ self::assertEquals(
substr_replace('string', 'replacement', $start),
Strings::substringReplace('string', 'replacement', $start)
);
for ($length = -10; $length <= 10; $length += 5) {
- $this->assertEquals(
+ self::assertEquals(
substr_replace('string', 'replacement', $start, $length),
Strings::substringReplace('string', 'replacement', $start, $length)
);
*/
public function testSubstringReplaceMultiByte(string $expected, string $string, string $replacement, int $start, int $length = null)
{
- $this->assertEquals(
+ self::assertEquals(
$expected,
Strings::substringReplace(
$string,
)
);
}
+
+ public function testPerformWithEscapedBlocks()
+ {
+ $originalText = '[noparse][/noparse][nobb]nobb[/nobb][noparse]noparse[/noparse]';
+
+ $text = Strings::performWithEscapedBlocks($originalText, '#[(?:noparse|nobb)].*?\[/(?:noparse|nobb)]#is', function ($text) {
+ return $text;
+ });
+
+ self::assertEquals($originalText, $text);
+ }
+
+ public function testPerformWithEscapedBlocksNested()
+ {
+ $originalText = '[noparse][/noparse][nobb]nobb[/nobb][noparse]noparse[/noparse]';
+
+ $text = Strings::performWithEscapedBlocks($originalText, '#[nobb].*?\[/nobb]#is', function ($text) {
+ $text = Strings::performWithEscapedBlocks($text, '#[noparse].*?\[/noparse]#is', function ($text) {
+ return $text;
+ });
+
+ return $text;
+ });
+
+ self::assertEquals($originalText, $text);
+ }
}