summaryrefslogtreecommitdiff
path: root/_test/tests/inc/io_replaceinfile.test.php
diff options
context:
space:
mode:
Diffstat (limited to '_test/tests/inc/io_replaceinfile.test.php')
-rw-r--r--_test/tests/inc/io_replaceinfile.test.php28
1 files changed, 26 insertions, 2 deletions
diff --git a/_test/tests/inc/io_replaceinfile.test.php b/_test/tests/inc/io_replaceinfile.test.php
index 98f21868f..c2dbc0dd4 100644
--- a/_test/tests/inc/io_replaceinfile.test.php
+++ b/_test/tests/inc/io_replaceinfile.test.php
@@ -2,6 +2,8 @@
class io_replaceinfile_test extends DokuWikiTest {
+ protected $contents = "The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012";
+
/*
* dependency for tests needing zlib extension to pass
*/
@@ -21,8 +23,8 @@ class io_replaceinfile_test extends DokuWikiTest {
}
function _write($file){
- $contents = "The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012";
- io_saveFile($file, $contents);
+
+ io_saveFile($file, $this->contents);
// Replace one, no regex
$this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete00\012", false, 1));
$this->assertEquals("The\012Delete00\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012", io_readFile($file));
@@ -41,6 +43,7 @@ class io_replaceinfile_test extends DokuWikiTest {
$this->_write(TMP_DIR.'/test.txt');
}
+
/**
* @depends test_ext_zlib
*/
@@ -55,4 +58,25 @@ class io_replaceinfile_test extends DokuWikiTest {
$this->_write(TMP_DIR.'/test.txt.bz2');
}
+ /**
+ *
+ */
+ function test_edgecase1()
+ {
+ $file = TMP_DIR . '/test.txt';
+ // Replace all, no regex, backreference like construct in replacement line
+ io_saveFile($file, $this->contents);
+ $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete\\00\012", false, -1));
+ $this->assertEquals("The\012Delete\\00\012Delete\\00\012Delete01\012Delete02\012Delete\\00\012DeleteX\012Test\012", io_readFile($file), "Edge case: backreference like construct in replacement line");
+ }
+ /**
+ * @small
+ */
+ function test_edgecase2() {
+ $file = TMP_DIR.'/test.txt';
+ // Replace all, no regex, replacement line == search line
+ io_saveFile($file, $this->contents);
+ $this->assertTrue(io_replaceInFile($file, "Delete\012", "Delete\012", false, -1));
+ $this->assertEquals("The\012Delete\012Delete\012Delete01\012Delete02\012Delete\012DeleteX\012Test\012", io_readFile($file), "Edge case: new line the same as old line");
+ }
}