prepare v4.2.5
[m6w6/ext-http] / tests / client012.phpt
1 --TEST--
2 client ssl
3 --SKIPIF--
4 <?php
5 include "skipif.inc";
6 skip_online_test();
7 skip_client_test();
8 skip_curl_test("7.34.0");
9 if (0 === strpos(http\Client\Curl\Versions\CURL, "7.87.0")) {
10 die("skip SSL bug in libcurl-7.87\n");
11 }
12 if (strpos(http\Client\Curl\Versions\SSL, "SecureTransport") !== false)
13 die("skip SecureTransport\n");
14 ?>
15 --FILE--
16 <?php
17 echo "Test\n";
18
19 $client = new http\Client;
20
21 $client->setSslOptions(array("verifypeer" => true));
22 $client->addSslOptions(array("verifyhost" => 2));
23 var_dump(
24 array(
25 "verifypeer" => true,
26 "verifyhost" => 2,
27 ) === $client->getSslOptions()
28 );
29
30 $client->attach($observer = new class implements SplObserver {
31 public $data = [];
32
33 #[ReturnTypeWillChange]
34 function update(SplSubject $client, $req = null, $progress = null) {
35 $ti = $client->getTransferInfo($req);
36 if (isset($ti->tls_session["internals"])) {
37 foreach ((array) $ti->tls_session["internals"] as $key => $val) {
38 if (!isset($this->data[$key]) || $this->data[$key] < $val) {
39 $this->data[$key] = $val;
40 }
41 }
42 }
43 }
44 });
45
46 $client->enqueue($req = new http\Client\Request("GET", "https://twitter.com/"));
47 $client->send();
48
49 switch ($client->getTransferInfo($req)->tls_session["backend"]) {
50 case "openssl":
51 case "gnutls":
52 if (count($observer->data) < 1) {
53 printf("%s: failed count(ssl.internals) >= 1\n", $client->getTransferInfo($req)->tls_session["backend"]);
54 var_dump($observer);
55 exit;
56 }
57 break;
58 default:
59 break;
60 }
61 ?>
62 Done
63 --EXPECTF--
64 Test
65 bool(true)
66 Done