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