assertFalse( $expected === $withControlChar ); $this->assertEquals( $expected, CharArmor::removeControlChars( $withControlChar ) ); } /** * @dataProvider specialCharactersProvider */ public function testRemoveSpecialChars( $withSpecialChar, $expected ) { $this->assertEquals( $expected, CharArmor::removeSpecialChars( $withSpecialChar ) ); } public function invisibleControlCharactersProvider() { $provider[] = [ '[[Left-To-Right Mark::"‎"]]', '[[Left-To-Right Mark::""]]' ]; $provider[] = [ '[[Right-To-Left Mark::"‏"]]', '[[Right-To-Left Mark::""]]' ]; $provider[] = [ '[[Zero-Width​Space::"​"]]', '[[Zero-WidthSpace::""]]' ]; $provider[] = [ '[[Zero Width Non-Joiner::"‌"]]', '[[Zero Width Non-Joiner::""]]' ]; $provider[] = [ '[[Zero Width Joiner::"‍"]]', '[[Zero Width Joiner::""]]' ]; return $provider; } public function specialCharactersProvider() { $provider[] = [ 'visible shy­ness', 'visible shyness' ]; $provider[] = [ 'leftToRight‎Mark', 'leftToRightMark' ]; $provider[] = [ '[[Figure Space::" "]]', '[[Figure Space::" "]]' ]; $provider[] = [ '[[En Quad::" "]]', '[[En Quad::" "]]' ]; $provider[] = [ '[[Hair Space::" "]]', '[[Hair Space::" "]]' ]; return $provider; } }