1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
<?php
/**
* Copyright (c) 2014 Lukas Reschke <lukas@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
class TestHTTPHelper extends \Test\TestCase {
/** @var \OCP\IConfig*/
private $config;
/** @var \OC\HTTPHelper */
private $httpHelperMock;
/** @var \OCP\Http\Client\IClientService */
private $clientService;
protected function setUp() {
parent::setUp();
$this->config = $this->getMockBuilder('\OCP\IConfig')
->disableOriginalConstructor()->getMock();
$this->clientService = $this->getMock('\OCP\Http\Client\IClientService');
$this->httpHelperMock = $this->getMockBuilder('\OC\HTTPHelper')
->setConstructorArgs(array($this->config, $this->clientService))
->setMethods(array('getHeaders'))
->getMock();
}
public function isHttpTestData() {
return array(
array('http://wwww.owncloud.org/enterprise/', true),
array('https://wwww.owncloud.org/enterprise/', true),
array('HTTPS://WWW.OWNCLOUD.ORG', true),
array('HTTP://WWW.OWNCLOUD.ORG', true),
array('FILE://WWW.OWNCLOUD.ORG', false),
array('file://www.owncloud.org', false),
array('FTP://WWW.OWNCLOUD.ORG', false),
array('ftp://www.owncloud.org', false),
);
}
/**
* @dataProvider isHttpTestData
*/
public function testIsHTTP($url, $expected) {
$this->assertSame($expected, $this->httpHelperMock->isHTTPURL($url));
}
public function testPostSuccess() {
$client = $this->getMockBuilder('\OCP\Http\Client\IClient')
->disableOriginalConstructor()->getMock();
$this->clientService
->expects($this->once())
->method('newClient')
->will($this->returnValue($client));
$response = $this->getMockBuilder('\OCP\Http\Client\IResponse')
->disableOriginalConstructor()->getMock();
$client
->expects($this->once())
->method('post')
->with(
'https://owncloud.org',
[
'body' => [
'Foo' => 'Bar',
],
'connect_timeout' => 10,
]
)
->will($this->returnValue($response));
$response
->expects($this->once())
->method('getBody')
->will($this->returnValue('Body of the requested page'));
$response = $this->httpHelperMock->post('https://owncloud.org', ['Foo' => 'Bar']);
$expected = [
'success' => true,
'result' => 'Body of the requested page'
];
$this->assertSame($expected, $response);
}
public function testPostException() {
$client = $this->getMockBuilder('\OCP\Http\Client\IClient')
->disableOriginalConstructor()->getMock();
$this->clientService
->expects($this->once())
->method('newClient')
->will($this->returnValue($client));
$client
->expects($this->once())
->method('post')
->with(
'https://owncloud.org',
[
'body' => [
'Foo' => 'Bar',
],
'connect_timeout' => 10,
]
)
->will($this->throwException(new \Exception('Something failed')));
$response = $this->httpHelperMock->post('https://owncloud.org', ['Foo' => 'Bar']);
$expected = [
'success' => false,
'result' => 'Something failed'
];
$this->assertSame($expected, $response);
}
}
|