diff options
author | Greg Beaver <cellog@php.net> | 2007-01-29 03:59:55 +0000 |
---|---|---|
committer | Greg Beaver <cellog@php.net> | 2007-01-29 03:59:55 +0000 |
commit | c6dc9be48998b4766004364ca57221e01d50e1c1 (patch) | |
tree | c812457cb4bb5e346999e7d1a2cd8d97b3030967 /ext/phar/tests | |
parent | 185a961812240021fb7259801237d1449e2e28b7 (diff) | |
download | php-git-c6dc9be48998b4766004364ca57221e01d50e1c1.tar.gz |
implement Phar->getMetadata() Phar->setMetadata(), add tests, implement meta-data in the header
Diffstat (limited to 'ext/phar/tests')
-rw-r--r-- | ext/phar/tests/009.phpt | 2 | ||||
-rw-r--r-- | ext/phar/tests/010.phpt | 2 | ||||
-rw-r--r-- | ext/phar/tests/phar_metadata_read.phpt | 64 | ||||
-rw-r--r-- | ext/phar/tests/phar_metadata_write.phpt | 69 | ||||
-rwxr-xr-x | ext/phar/tests/phar_oo_001.phpt | 2 | ||||
-rwxr-xr-x | ext/phar/tests/phar_test.inc | 4 |
6 files changed, 139 insertions, 4 deletions
diff --git a/ext/phar/tests/009.phpt b/ext/phar/tests/009.phpt index d594e88f4f..6a5bb73187 100644 --- a/ext/phar/tests/009.phpt +++ b/ext/phar/tests/009.phpt @@ -9,7 +9,7 @@ phar.require_hash=0 $file = "<?php Phar::mapPhar('hio'); __HALT_COMPILER(); ?>"; -$file .= pack('VVnVV', 500, 500, 0x0900, 0x00000000, 0) . str_repeat('A', 500); +$file .= pack('VVnVVV', 500, 500, 0x1000, 0x00000000, 0, 0) . str_repeat('A', 500); file_put_contents(dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php', $file); include dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php'; ?> diff --git a/ext/phar/tests/010.phpt b/ext/phar/tests/010.phpt index dd905edada..e07c85743b 100644 --- a/ext/phar/tests/010.phpt +++ b/ext/phar/tests/010.phpt @@ -13,7 +13,7 @@ __HALT_COMPILER(); ?>"; // this fails because the manifest length does not include the other 10 byte manifest data $manifest = pack('V', 1) . 'a' . pack('VVVVVV', 0, time(), 0, crc32(''), 0x00000000, 0); -$file .= pack('VVnVV', strlen($manifest), 1, 0x0900, 0x00000000, 3) . 'hio' . $manifest; +$file .= pack('VVnVV', strlen($manifest), 1, 0x1000, 0x00000000, 3) . 'hio' . pack('V', 0) . $manifest; file_put_contents(dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php', $file); include dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php'; diff --git a/ext/phar/tests/phar_metadata_read.phpt b/ext/phar/tests/phar_metadata_read.phpt new file mode 100644 index 0000000000..eca2514284 --- /dev/null +++ b/ext/phar/tests/phar_metadata_read.phpt @@ -0,0 +1,64 @@ +--TEST-- +Phar with phar-level meta-data (read) +--SKIPIF-- +<?php if (!extension_loaded("phar")) print "skip";?> +--INI-- +phar.require_hash=0 +--FILE-- +<?php +$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php'; +$pname = 'phar://' . $fname; +$file = "<?php __HALT_COMPILER(); ?>"; + +$files = array(); +$pmeta = 'hi there'; +$files['a'] = array('cont' => 'a'); +$files['b'] = array('cont' => 'b'); +$files['c'] = array('cont' => 'c', 'meta' => array('hi', 'there')); +$files['d'] = array('cont' => 'd', 'meta' => array('hi'=>'there','foo'=>'bar')); +include 'phar_test.inc'; + +foreach($files as $name => $cont) { + var_dump(file_get_contents($pname.'/'.$name)); +} + +$phar = new Phar($fname); +var_dump($phar->getMetaData()); +foreach($files as $name => $cont) { + var_dump($phar[$name]->getMetadata()); +} + +unset($phar); + +foreach($files as $name => $cont) { + var_dump(file_get_contents($pname.'/'.$name)); +} +?> +===DONE=== +--CLEAN-- +<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?> +--EXPECT-- +string(1) "a" +string(1) "b" +string(1) "c" +string(1) "d" +string(8) "hi there" +NULL +NULL +array(2) { + [0]=> + string(2) "hi" + [1]=> + string(5) "there" +} +array(2) { + ["hi"]=> + string(5) "there" + ["foo"]=> + string(3) "bar" +} +string(1) "a" +string(1) "b" +string(1) "c" +string(1) "d" +===DONE=== diff --git a/ext/phar/tests/phar_metadata_write.phpt b/ext/phar/tests/phar_metadata_write.phpt new file mode 100644 index 0000000000..a49799a2b4 --- /dev/null +++ b/ext/phar/tests/phar_metadata_write.phpt @@ -0,0 +1,69 @@ +--TEST-- +Phar with phar meta-data (write) +--SKIPIF-- +<?php if (!extension_loaded("phar")) print "skip";?> +--INI-- +phar.require_hash=0 +--FILE-- +<?php +$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php'; +$pname = 'phar://' . $fname; +$file = "<?php __HALT_COMPILER(); ?>"; + +$files = array(); +$files['a'] = array('cont' => 'a'); +$files['b'] = array('cont' => 'b', 'meta' => 'hi there'); +$files['c'] = array('cont' => 'c', 'meta' => array('hi', 'there')); +$files['d'] = array('cont' => 'd', 'meta' => array('hi'=>'there','foo'=>'bar')); +include 'phar_test.inc'; + +foreach($files as $name => $cont) { + var_dump(file_get_contents($pname.'/'.$name)); +} + +$phar = new Phar($fname); +var_dump($phar->getMetadata()); +$phar->setMetadata(array('my' => 'friend')); +var_dump($phar->getMetadata()); +$phar['a']->setMetadata(42); +$phar['b']->setMetadata(NULL); +$phar['c']->setMetadata(array(25, 'foo'=>'bar')); +$phar['d']->setMetadata(true); + +foreach($files as $name => $cont) { + var_dump($phar[$name]->getMetadata()); +} + +unset($phar); + +foreach($files as $name => $cont) { + var_dump(file_get_contents($pname.'/'.$name)); +} +?> +===DONE=== +--CLEAN-- +<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?> +--EXPECT-- +string(1) "a" +string(1) "b" +string(1) "c" +string(1) "d" +NULL +array(1) { + ["my"]=> + string(6) "friend" +} +int(42) +NULL +array(2) { + [0]=> + int(25) + ["foo"]=> + string(3) "bar" +} +bool(true) +string(1) "a" +string(1) "b" +string(1) "c" +string(1) "d" +===DONE=== diff --git a/ext/phar/tests/phar_oo_001.phpt b/ext/phar/tests/phar_oo_001.phpt index 8b18873a1f..b2bb8cc0a7 100755 --- a/ext/phar/tests/phar_oo_001.phpt +++ b/ext/phar/tests/phar_oo_001.phpt @@ -39,7 +39,7 @@ unlink(dirname(__FILE__) . '/phar_oo_test.phar.php'); __halt_compiler(); ?> --EXPECT-- -string(5) "0.9.0" +string(5) "1.0.0" int(5) string(50) "Cannot call method on an uninitialized Phar object" ===DONE=== diff --git a/ext/phar/tests/phar_test.inc b/ext/phar/tests/phar_test.inc index 36ab85a29b..213e95558c 100755 --- a/ext/phar/tests/phar_test.inc +++ b/ext/phar/tests/phar_test.inc @@ -49,7 +49,9 @@ foreach($files as $name => $cont) } $alias = 'hio'; -$manifest = pack('VnVV', count($files), 0x0900, $glags, strlen($alias)) . $alias . $manifest; + +if (isset($pmeta)) $pmeta = serialize($pmeta); else $pmeta = ''; +$manifest = pack('VnVV', count($files), 0x1000, $glags, strlen($alias)) . $alias . pack('V', strlen($pmeta)) . $pmeta . $manifest; $file .= pack('V', strlen($manifest)) . $manifest; foreach($files as $cont) |