1--TEST--
2Phar: Phar::setDefaultStub() with and without arg, zip-based phar
3--SKIPIF--
4<?php if (!extension_loaded("phar")) die("skip"); ?>
5--INI--
6phar.readonly=0
7--FILE--
8<?php
9
10$fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.zip';
11
12$phar = new Phar($fname);
13$phar['a.php'] = '<php echo "this is a\n"; ?>';
14$phar['b.php'] = '<php echo "this is b\n"; ?>';
15$phar->setStub('<?php echo "Hello World\n"; __HALT_COMPILER(); ?>');
16
17var_dump($phar->getStub());
18
19echo "============================================================================\n";
20echo "============================================================================\n";
21
22try {
23    $phar->setDefaultStub();
24    $phar->stopBuffering();
25} catch(Exception $e) {
26    echo $e->getMessage(). "\n";
27}
28
29var_dump($phar->getStub());
30
31echo "============================================================================\n";
32echo "============================================================================\n";
33
34try {
35    $phar->setDefaultStub('my/custom/thingy.php');
36} catch(Error $e) {
37    echo $e->getMessage(). "\n";
38}
39
40try {
41    $phar->stopBuffering();
42} catch(Exception $e) {
43    echo $e->getMessage(). "\n";
44}
45
46var_dump($phar->getStub());
47
48echo "============================================================================\n";
49echo "============================================================================\n";
50
51try {
52    $phar->setDefaultStub('my/custom/thingy.php', 'the/web.php');
53} catch(ValueError $e) {
54    echo $e->getMessage(). "\n";
55}
56
57try {
58    $phar->stopBuffering();
59} catch(Exception $e) {
60    echo $e->getMessage(). "\n";
61}
62
63var_dump($phar->getStub());
64
65?>
66--CLEAN--
67<?php
68unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.zip');
69?>
70--EXPECT--
71string(51) "<?php echo "Hello World\n"; __HALT_COMPILER(); ?>
72"
73============================================================================
74============================================================================
75string(60) "<?php // zip-based phar archive stub file
76__HALT_COMPILER();"
77============================================================================
78============================================================================
79Phar::setDefaultStub(): Argument #1 ($index) must be null for a tar- or zip-based phar stub, string given
80string(60) "<?php // zip-based phar archive stub file
81__HALT_COMPILER();"
82============================================================================
83============================================================================
84Phar::setDefaultStub(): Argument #1 ($index) must be null for a tar- or zip-based phar stub, string given
85string(60) "<?php // zip-based phar archive stub file
86__HALT_COMPILER();"
87