<?php /* * * ____ _ _ __ __ _ __ __ ____ * | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \ * | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) | * | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/ * |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_| * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * @author PocketMine Team * @link http://www.pocketmine.net/ * * */ declare(strict_types=1); namespace pocketmine\command\utils; use PHPUnit\Framework\TestCase; class CommandStringHelperTest extends TestCase{ public function parseQuoteAwareProvider() : \Generator{ yield [ 'give "steve jobs" apple', ['give', 'steve jobs', 'apple'] ]; yield [ 'say \"escaped\"', ['say', '"escaped"'] ]; yield [ 'say This message contains \"escaped quotes\", which are ignored', ['say', 'This', 'message', 'contains', '"escaped', 'quotes",', 'which', 'are', 'ignored'] ]; yield [ 'say dontspliton"half"wayquotes', ['say', 'dontspliton"half"wayquotes'] ]; } /** * @dataProvider parseQuoteAwareProvider * @param string[] $expected */ public function testParseQuoteAware(string $commandLine, array $expected) : void{ $actual = CommandStringHelper::parseQuoteAware($commandLine); self::assertSame($expected, $actual); } }