1<?php 2 3class io_readfile_test extends DokuWikiTest { 4 5 /* 6 * dependency for tests needing zlib extension to pass 7 */ 8 public function test_ext_zlib() { 9 if (!extension_loaded('zlib')) { 10 $this->markTestSkipped('skipping all zlib tests. Need zlib extension'); 11 } 12 } 13 14 /* 15 * dependency for tests needing zlib extension to pass 16 */ 17 public function test_ext_bz2() { 18 if (!extension_loaded('bz2')) { 19 $this->markTestSkipped('skipping all bzip2 tests. Need bz2 extension'); 20 } 21 } 22 23 function test_plain(){ 24 // since git converts line endings, we can't check in this test file but have to create it ourselves 25 $plain = TMP_DIR.'/test.txt'; 26 file_put_contents($plain, "The\015\012Test\015\012"); 27 28 $this->assertEquals("The\012Test\012", io_readFile($plain)); 29 $this->assertEquals("The\015\012Test\015\012", io_readFile($plain, false)); 30 $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/nope.txt')); 31 } 32 33 /** 34 * @depends test_ext_zlib 35 */ 36 function test_gzfiles(){ 37 $this->assertEquals("The\012Test\012", io_readFile(__DIR__.'/io_readfile/test.txt.gz')); 38 $this->assertEquals("The\015\012Test\015\012", io_readFile(__DIR__.'/io_readfile/test.txt.gz', false)); 39 $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/nope.txt.gz')); 40 $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/corrupt.txt.gz')); 41 } 42 43 /** 44 * @depends test_ext_bz2 45 */ 46 function test_bzfiles(){ 47 $this->assertEquals("The\012Test\012", io_readFile(__DIR__.'/io_readfile/test.txt.bz2')); 48 $this->assertEquals("The\015\012Test\015\012", io_readFile(__DIR__.'/io_readfile/test.txt.bz2', false)); 49 $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/nope.txt.bz2')); 50 $this->assertEquals(false, io_readFile(__DIR__.'/io_readfile/corrupt.txt.bz2')); 51 // internal bzfile function 52 $this->assertEquals(array("The\015\012","Test\015\012"), bzfile(__DIR__.'/io_readfile/test.txt.bz2', true)); 53 $this->assertEquals(array_fill(0, 120, str_repeat('a', 80)."\012"), bzfile(__DIR__.'/io_readfile/large.txt.bz2', true)); 54 $line = str_repeat('a', 8888)."\012"; 55 $this->assertEquals(array($line,"\012",$line,"!"), bzfile(__DIR__.'/io_readfile/long.txt.bz2', true)); 56 } 57 58} 59