add json content type handler if ext/json is present
[m6w6/ext-http] / tests / factory.phpt
1 --TEST--
2 factory
3 --SKIPIF--
4 <?php
5 include "skipif.inc";
6 in_array("curl", http\Client\Factory::getAvailableDrivers()) or die ("skip CURL support missing");
7 ?>
8 --FILE--
9 <?php
10 echo "Test\n";
11
12 class MyClient extends http\Curl\Client {}
13 class MyPool extends http\Curl\Client\Pool {}
14 class MyShare extends http\Curl\Client\DataShare {}
15
16 class MyFactory extends http\Client\Factory {
17 protected $driver = "curl";
18 protected $persistentHandleId = "My";
19 protected $clientClass = "MyClient";
20 protected $clientPoolClass = "MyPool";
21 protected $clientDataShareClass = "MyShare";
22
23 protected $dummy = "foo";
24 }
25
26 $f = new MyFactory(array("driver" => "curl"));
27 $r = $f->createClient();
28 $p = $f->createPool();
29 $s = $f->createDataShare();
30
31 $r->setRequest(new http\Client\Request("GET", "http://localhost/"));
32 $x = $f->createPool($r);
33 $y = $f->createDatashare($r);
34
35 var_dump(
36 array_map("get_class", array($f,$r,$p,$s,$x,$y)),
37 $f->getDriver()
38 );
39
40 foreach (array("Client", "Pool", "DataShare") as $type) {
41 try {
42 var_dump((new http\Client\Factory(array("driver" => "nonexistant")))->{"create$type"}());
43 } catch (Exception $e) {
44 echo $e->getMessage(), "\n";
45 }
46 }
47
48 echo "Done\n";
49 ?>
50 --EXPECTF--
51 Test
52 array(6) {
53 [0]=>
54 string(9) "MyFactory"
55 [1]=>
56 string(8) "MyClient"
57 [2]=>
58 string(6) "MyPool"
59 [3]=>
60 string(7) "MyShare"
61 [4]=>
62 string(6) "MyPool"
63 [5]=>
64 string(7) "MyShare"
65 }
66 string(4) "curl"
67 clients are not supported by this driver
68 pools are not supported by this driver
69 datashares are not supported by this driver
70 Done