annotate vendor/psy/psysh/test/Readline/GNUReadlineTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@13 1 <?php
Chris@13 2
Chris@13 3 /*
Chris@13 4 * This file is part of Psy Shell.
Chris@13 5 *
Chris@13 6 * (c) 2012-2018 Justin Hileman
Chris@13 7 *
Chris@13 8 * For the full copyright and license information, please view the LICENSE
Chris@13 9 * file that was distributed with this source code.
Chris@13 10 */
Chris@13 11
Chris@13 12 namespace Psy\Test\Readline;
Chris@13 13
Chris@13 14 use Psy\Readline\GNUReadline;
Chris@13 15
Chris@13 16 class GNUReadlineTest extends \PHPUnit\Framework\TestCase
Chris@13 17 {
Chris@13 18 private $historyFile;
Chris@13 19
Chris@13 20 public function setUp()
Chris@13 21 {
Chris@13 22 if (!GNUReadline::isSupported()) {
Chris@13 23 $this->markTestSkipped('GNUReadline not enabled');
Chris@13 24 }
Chris@13 25
Chris@17 26 $this->historyFile = \tempnam(\sys_get_temp_dir(), 'psysh_test_history');
Chris@17 27 \file_put_contents($this->historyFile, "_HiStOrY_V2_\n");
Chris@13 28 }
Chris@13 29
Chris@13 30 public function testHistory()
Chris@13 31 {
Chris@13 32 $readline = new GNUReadline($this->historyFile);
Chris@13 33 $this->assertEmpty($readline->listHistory());
Chris@13 34 $readline->addHistory('foo');
Chris@13 35 $this->assertSame(['foo'], $readline->listHistory());
Chris@13 36 $readline->addHistory('bar');
Chris@13 37 $this->assertSame(['foo', 'bar'], $readline->listHistory());
Chris@13 38 $readline->addHistory('baz');
Chris@13 39 $this->assertSame(['foo', 'bar', 'baz'], $readline->listHistory());
Chris@13 40 $readline->clearHistory();
Chris@13 41 $this->assertEmpty($readline->listHistory());
Chris@13 42 }
Chris@13 43
Chris@13 44 /**
Chris@13 45 * @depends testHistory
Chris@13 46 */
Chris@13 47 public function testHistorySize()
Chris@13 48 {
Chris@13 49 $readline = new GNUReadline($this->historyFile, 2);
Chris@13 50 $this->assertEmpty($readline->listHistory());
Chris@13 51 $readline->addHistory('foo');
Chris@13 52 $readline->addHistory('bar');
Chris@13 53 $this->assertSame(['foo', 'bar'], $readline->listHistory());
Chris@13 54 $readline->addHistory('baz');
Chris@13 55 $this->assertSame(['bar', 'baz'], $readline->listHistory());
Chris@13 56 $readline->addHistory('w00t');
Chris@13 57 $this->assertSame(['baz', 'w00t'], $readline->listHistory());
Chris@13 58 $readline->clearHistory();
Chris@13 59 $this->assertEmpty($readline->listHistory());
Chris@13 60 }
Chris@13 61
Chris@13 62 /**
Chris@13 63 * @depends testHistory
Chris@13 64 */
Chris@13 65 public function testHistoryEraseDups()
Chris@13 66 {
Chris@13 67 $readline = new GNUReadline($this->historyFile, 0, true);
Chris@13 68 $this->assertEmpty($readline->listHistory());
Chris@13 69 $readline->addHistory('foo');
Chris@13 70 $readline->addHistory('bar');
Chris@13 71 $readline->addHistory('foo');
Chris@13 72 $this->assertSame(['bar', 'foo'], $readline->listHistory());
Chris@13 73 $readline->addHistory('baz');
Chris@13 74 $readline->addHistory('w00t');
Chris@13 75 $readline->addHistory('baz');
Chris@13 76 $this->assertSame(['bar', 'foo', 'w00t', 'baz'], $readline->listHistory());
Chris@13 77 $readline->clearHistory();
Chris@13 78 $this->assertEmpty($readline->listHistory());
Chris@13 79 }
Chris@13 80 }