Leitgedanken/#pma/test/libraries/PMA_zip_extension_test.php
2022-11-21 09:47:28 +01:00

187 lines
4.0 KiB
PHP

<?php
/**
* Tests zip extension usage.
*
* @package PhpMyAdmin-test
*/
/*
* Include to test.
*/
require_once 'libraries/zip_extension.lib.php';
/**
* Tests zip extension usage.
*
* @package PhpMyAdmin-test
*/
class PMA_ZipExtension_Test extends PHPUnit_Framework_TestCase
{
/**
* Test zip file content
*
* @param string $file zip file
* @param string $specific_entry regular expression to match a file
* @param mixed $output expected output
*
* @dataProvider providerForTestGetZipContents
* @return void
*/
public function testGetZipContents($file, $specific_entry, $output)
{
$this->assertEquals(
PMA_getZipContents($file, $specific_entry),
$output
);
}
/**
* Provider for testGetZipContents
*
* @return array
*/
public function providerForTestGetZipContents()
{
return array(
array(
'./test/test_data/test.zip',
null,
array(
'error' => '',
'data' => 'TEST FILE' . "\n"
)
),
array(
'./test/test_data/test.zip',
'test',
array(
'error' => 'Error in ZIP archive: Could not find "test"',
'data' => ''
)
)
);
}
/**
* Test Find file in Zip Archive
*
* @param string $file_regexp regular expression for the file name to match
* @param string $file zip archive
* @param mixed $output expected output
*
* @dataProvider providerForTestFindFileFromZipArchive
* @return void
*/
public function testFindFileFromZipArchive($file_regexp, $file, $output)
{
$this->assertEquals(
PMA_findFileFromZipArchive($file_regexp, $file),
$output
);
}
/**
* Provider for testFindFileFromZipArchive
*
* @return array Test data
*/
public function providerForTestFindFileFromZipArchive()
{
return array(
array(
'/test/',
'./test/test_data/test.zip',
'test.file'
)
);
}
/**
* Test for PMA_getNoOfFilesInZip
*
* @return void
*/
public function testGetNoOfFilesInZip()
{
$this->assertEquals(
PMA_getNoOfFilesInZip('./test/test_data/test.zip'),
1
);
}
/**
* Test for PMA_zipExtract
*
* @return void
*/
public function testZipExtract()
{
$this->assertEquals(
false,
PMA_zipExtract(
'./test/test_data/test.zip', 'wrongName'
)
);
$this->assertEquals(
"TEST FILE\n",
PMA_zipExtract(
'./test/test_data/test.zip', 'test.file'
)
);
}
/**
* Test for PMA_getZipError
*
* @param int $code error code
* @param mixed $output expected output
*
* @dataProvider providerForTestGetZipError
* @return void
*/
public function testGetZipError($code, $output)
{
$this->assertEquals(
PMA_getZipError($code),
$output
);
}
/**
* Provider for testGetZipError
*
* @return array
*/
public function providerForTestGetZipError()
{
return array(
array(
1,
'Multi-disk zip archives not supported'
),
array(
5,
'Read error'
),
array(
7,
'CRC error'
),
array(
19,
'Not a zip archive'
),
array(
21,
'Zip archive inconsistent'
),
array(
404,
404
)
);
}
}