* */ class addRemoteChangelogRevision_farmsync_test extends \DokuWikiTest { protected $pluginsEnabled = array('farmsync'); public function setUp() { parent::setUp(); $changelog_text = "1422353621 127.0.0.1 C unittests user0 created 1422353856 127.0.0.1 E unittests user1 1422353857 127.0.0.1 E unittests user2 [Links] 1426689052 127.0.0.1 C de:unittests user3 ↷ Page moved from unittests to en:unittests 1426689152 127.0.0.1 C unittests user2 ↷ Page moved from en:unittests to unittests 1427888702 127.0.0.1 E unittests user1 [Links] "; $fn = DOKU_TMP_DATA . 'meta/test.changes'; io_saveFile($fn, $changelog_text); } public function test_addRemoteChangelogRevision_appendLine() { // arrange /** @var \admin_plugin_farmsync $admin */ $farm_util = new \dokuwiki\plugin\farmsync\meta\FarmSyncUtil(); $fn = DOKU_TMP_DATA . 'meta/test.changes'; $original_file = io_readFile($fn); $testline = '1461330568 127.0.0.1 E unittests admin New'; // act $result = $farm_util->addRemoteChangelogRevision($fn, $testline, false); $actual_file = io_readFile($fn); // assert $this->assertEquals($original_file . "\n" . $testline . "\n", $actual_file); $this->assertEquals(array(), $result); } public function test_addRemoteChangelogRevision_addNonexistingLine() { // arrange /** @var \admin_plugin_farmsync $admin */ $farm_util = new \dokuwiki\plugin\farmsync\meta\FarmSyncUtil(); $fn = DOKU_TMP_DATA . 'meta/test.changes'; $testline = '1422353850 127.0.0.1 E unittests admin New'; // act $result = $farm_util->addRemoteChangelogRevision($fn, $testline, false); $actual_file = io_readFile($fn); // assert $expected_file = "1422353621 127.0.0.1 C unittests user0 created $testline 1422353856 127.0.0.1 E unittests user1 1422353857 127.0.0.1 E unittests user2 [Links] 1426689052 127.0.0.1 C de:unittests user3 ↷ Page moved from unittests to en:unittests 1426689152 127.0.0.1 C unittests user2 ↷ Page moved from en:unittests to unittests 1427888702 127.0.0.1 E unittests user1 [Links] \n"; $this->assertEquals($expected_file, $actual_file); $this->assertEquals(array(), $result); } public function test_addRemoteChangelogRevision_addNonexistingLine_truncate() { // arrange /** @var \admin_plugin_farmsync $admin */ $farm_util = new \dokuwiki\plugin\farmsync\meta\FarmSyncUtil(); $fn = DOKU_TMP_DATA . 'meta/test.changes'; $testline = '1422353850 127.0.0.1 E unittests admin New'; // act $result = $farm_util->addRemoteChangelogRevision($fn, $testline, true); $actual_file = io_readFile($fn); // assert $expected_file = "1422353621 127.0.0.1 C unittests user0 created $testline\n"; $this->assertEquals($expected_file, $actual_file); $this->assertEquals(array(), $result); } public function test_addRemoteChangelogRevision_addExistingLine_move1rev() { // arrange /** @var \admin_plugin_farmsync $admin */ $farm_util = new \dokuwiki\plugin\farmsync\meta\FarmSyncUtil(); $fn = DOKU_TMP_DATA . 'meta/test.changes'; $testline = '1422353856 127.0.0.1 E unittests admin New'; // act $result = $farm_util->addRemoteChangelogRevision($fn, $testline, false); $actual_file = io_readFile($fn); // assert $expected_file = "1422353621 127.0.0.1 C unittests user0 created 1422353855 127.0.0.1 E unittests user1 $testline 1422353857 127.0.0.1 E unittests user2 [Links] 1426689052 127.0.0.1 C de:unittests user3 ↷ Page moved from unittests to en:unittests 1426689152 127.0.0.1 C unittests user2 ↷ Page moved from en:unittests to unittests 1427888702 127.0.0.1 E unittests user1 [Links] \n"; $this->assertEquals($expected_file, $actual_file); $this->assertEquals(array(1422353856), $result); } public function test_addRemoteChangelogRevision_addExistingLine_move2revs() { // arrange /** @var \admin_plugin_farmsync $admin */ $farm_util = new \dokuwiki\plugin\farmsync\meta\FarmSyncUtil(); $fn = DOKU_TMP_DATA . 'meta/test.changes'; $testline = '1422353857 127.0.0.1 E unittests admin New'; // act $result = $farm_util->addRemoteChangelogRevision($fn, $testline, false); $actual_file = io_readFile($fn); // assert $expected_file = "1422353621 127.0.0.1 C unittests user0 created 1422353855 127.0.0.1 E unittests user1 1422353856 127.0.0.1 E unittests user2 [Links] $testline 1426689052 127.0.0.1 C de:unittests user3 ↷ Page moved from unittests to en:unittests 1426689152 127.0.0.1 C unittests user2 ↷ Page moved from en:unittests to unittests 1427888702 127.0.0.1 E unittests user1 [Links] \n"; $this->assertEquals($expected_file, $actual_file); $this->assertEquals(array(1422353856, 1422353857), $result); } /** * @expectedException \Exception * @expectedExceptionMessage 2nd Argument must start with timestamp! */ public function test_addRemoteChangelogRevision_Exception() { $farm_util = new \dokuwiki\plugin\farmsync\meta\FarmSyncUtil(); $fn = DOKU_TMP_DATA . 'meta/test.changes'; $testline = 'not starting with timestamp'; $farm_util->addRemoteChangelogRevision($fn, $testline); } }