1--TEST--
2openssl_x509_export_to_file() tests
3--SKIPIF--
4<?php if (!extension_loaded("openssl")) print "skip"; ?>
5--FILE--
6<?php
7$outfilename = __DIR__ . "/openssl_x509_export_to_file__outfilename.tmp";
8$cert_file = __DIR__ . "/cert.crt";
9
10$a = file_get_contents($cert_file);
11$b = "file://" . $cert_file;
12$c = "invalid cert";
13$d = openssl_x509_read($a);
14$e = array();
15
16var_dump(openssl_x509_export_to_file($a, $outfilename)); // read cert as a binary string
17var_dump(openssl_x509_export_to_file($b, $outfilename)); // read cert from a filename string
18var_dump(openssl_x509_export_to_file($c, $outfilename)); // read an invalid cert, fails
19var_dump(openssl_x509_export_to_file($d, $outfilename)); // read cert from a resource
20try {
21    openssl_x509_export_to_file($e, $outfilename); // read an array, fails
22} catch (TypeError $exception) {
23    echo $exception->getMessage() . "\n";
24}
25echo "---\n";
26var_dump($exists = file_exists($outfilename));
27?>
28--CLEAN--
29<?php
30$outfilename = __DIR__ . "/openssl_x509_export_to_file__outfilename.tmp";
31if (file_exists($outfilename)) {
32    unlink($outfilename);
33}
34?>
35--EXPECTF--
36bool(true)
37bool(true)
38
39Warning: openssl_x509_export_to_file(): X.509 Certificate cannot be retrieved in %s on line %d
40bool(false)
41bool(true)
42openssl_x509_export_to_file(): Argument #1 ($certificate) must be of type OpenSSLCertificate|string, array given
43---
44bool(true)
45