1--TEST--
2Phar::conversion to other formats
3--EXTENSIONS--
4phar
5zlib
6bz2
7--INI--
8phar.require_hash=0
9phar.readonly=0
10--FILE--
11<?php
12
13$fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar';
14$fname2 = __DIR__ . '/' . basename(__FILE__, '.php') . '2.tbz';
15$pname = 'phar://' . $fname;
16$stub = '<?php echo "first stub\n"; __HALT_COMPILER(); ?>';
17$file = $stub;
18
19$files = array();
20$files['a'] = 'a';
21$files['b'] = 'b';
22$files['c'] = 'c';
23
24include 'files/phar_test.inc';
25
26$phar = new Phar($fname);
27$zip = $phar->convertToData(Phar::ZIP);
28echo $zip->getPath() . "\n";
29$tgz = $phar->convertToData(Phar::TAR, Phar::GZ);
30echo $tgz->getPath() . "\n";
31$tbz = $phar->convertToData(Phar::TAR, Phar::BZ2);
32echo $tbz->getPath() . "\n";
33try {
34$phar = $tbz->convertToExecutable(Phar::PHAR, Phar::NONE);
35} catch (Exception $e) {
36echo $e->getMessage() . "\n";
37}
38copy($tbz->getPath(), $fname2);
39$tbz = new PharData($fname2);
40$phar = $tbz->convertToExecutable(Phar::PHAR, Phar::NONE);
41echo $phar->getPath() . "\n";
42$phar['a'] = 'hi';
43$phar['a']->setMetadata('hi');
44$zip = $phar->convertToExecutable(Phar::ZIP);
45echo $zip->getPath() . "\n";
46echo $zip['a']->getMetadata() . "\n";
47$data = $zip->convertToData();
48echo $data->getPath() . "\n";
49// extra code coverage
50try {
51$data->setStub('hi');
52} catch (Exception $e) {
53echo $e->getMessage() . "\n";
54}
55try {
56$data->setDefaultStub();
57} catch (Exception $e) {
58echo $e->getMessage() . "\n";
59}
60try {
61$data->setAlias('hi');
62} catch (Exception $e) {
63echo $e->getMessage() . "\n";
64}
65$tar = $phar->convertToExecutable(Phar::TAR);
66echo $tar->getPath() . "\n";
67$data = $tar->convertToData();
68echo $data->getPath() . "\n";
69$tgz = $tar->convertToExecutable(null, Phar::GZ);
70echo $tgz->getPath() . "\n";
71try {
72$tgz->convertToExecutable(25);
73} catch (Exception $e) {
74echo $e->getMessage() . "\n";
75}
76try {
77$tgz->convertToExecutable(Phar::ZIP, Phar::GZ);
78} catch (Exception $e) {
79echo $e->getMessage() . "\n";
80}
81try {
82$tgz->convertToExecutable(Phar::ZIP, Phar::BZ2);
83} catch (Exception $e) {
84echo $e->getMessage() . "\n";
85}
86try {
87$phar->convertToData();
88} catch (Exception $e) {
89echo $e->getMessage() . "\n";
90}
91try {
92$tgz->convertToData(Phar::PHAR);
93} catch (Exception $e) {
94echo $e->getMessage() . "\n";
95}
96try {
97$tgz->convertToData(25);
98} catch (Exception $e) {
99echo $e->getMessage() . "\n";
100}
101try {
102$tgz->convertToData(Phar::ZIP, Phar::GZ);
103} catch (Exception $e) {
104echo $e->getMessage() . "\n";
105}
106try {
107$tgz->convertToData(Phar::ZIP, Phar::BZ2);
108} catch (Exception $e) {
109echo $e->getMessage() . "\n";
110}
111try {
112$tgz->convertToExecutable(Phar::TAR, 25);
113} catch (Exception $e) {
114echo $e->getMessage() . "\n";
115}
116try {
117$tgz->convertToData(Phar::TAR, 25);
118} catch (Exception $e) {
119echo $e->getMessage() . "\n";
120}
121// extra code coverage
122try {
123$data->setStub('hi');
124} catch (Exception $e) {
125echo $e->getMessage() . "\n";
126}
127try {
128$data->setAlias('hi');
129} catch (Exception $e) {
130echo $e->getMessage() . "\n";
131}
132try {
133$data->setDefaultStub();
134} catch (Exception $e) {
135echo $e->getMessage() . "\n";
136}
137try {
138$tgz->convertToData(Phar::TAR, Phar::GZ, '.phar.tgz.oops');
139} catch (Exception $e) {
140echo $e->getMessage() . "\n";
141}
142
143try {
144$phar->convertToExecutable(Phar::TAR, Phar::GZ, '.tgz.oops');
145} catch (Exception $e) {
146echo $e->getMessage() . "\n";
147}
148
149try {
150$tgz->convertToData(Phar::TAR, Phar::GZ, '.phar/.tgz.oops');
151} catch (Exception $e) {
152echo $e->getMessage() . "\n";
153}
154?>
155--CLEAN--
156<?php
157unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar');
158unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.zip');
159unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar.gz');
160unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar.bz2');
161unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.tbz');
162unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.phar');
163unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.phar.tar');
164unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.tar');
165unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.phar.zip');
166unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.zip');
167unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.phar.tar.gz');
168__HALT_COMPILER();
169?>
170--EXPECTF--
171%sphar_convert_again.zip
172%sphar_convert_again.tar.gz
173%sphar_convert_again.tar.bz2
174Unable to add newly converted phar "%sphar_convert_again.phar" to the list of phars, a phar with that name already exists
175%sphar_convert_again2.phar
176%sphar_convert_again2.phar.zip
177hi
178%sphar_convert_again2.zip
179A Phar stub cannot be set in a plain zip archive
180A Phar stub cannot be set in a plain zip archive
181A Phar alias cannot be set in a plain zip archive
182%sphar_convert_again2.phar.tar
183%sphar_convert_again2.tar
184%sphar_convert_again2.phar.tar.gz
185Unknown file format specified, please pass one of Phar::PHAR, Phar::TAR or Phar::ZIP
186Cannot compress entire archive with gzip, zip archives do not support whole-archive compression
187Cannot compress entire archive with bz2, zip archives do not support whole-archive compression
188Cannot write out data phar archive, use Phar::TAR or Phar::ZIP
189Cannot write out data phar archive, use Phar::TAR or Phar::ZIP
190Unknown file format specified, please pass one of Phar::TAR or Phar::ZIP
191Cannot compress entire archive with gzip, zip archives do not support whole-archive compression
192Cannot compress entire archive with bz2, zip archives do not support whole-archive compression
193Unknown compression specified, please pass one of Phar::GZ or Phar::BZ2
194Unknown compression specified, please pass one of Phar::GZ or Phar::BZ2
195A Phar stub cannot be set in a plain tar archive
196A Phar alias cannot be set in a plain tar archive
197A Phar stub cannot be set in a plain tar archive
198data phar "%sphar_convert_again2.phar.tgz.oops" has invalid extension phar.tgz.oops
199phar "%sphar_convert_again2.tgz.oops" has invalid extension tgz.oops
200data phar "%sphar_convert_again2.phar/.tgz.oops" has invalid extension phar/.tgz.oops
201