Skip to content
This repository has been archived by the owner on Jan 8, 2020. It is now read-only.

Commit

Permalink
[#2774] Provided unit tests
Browse files Browse the repository at this point in the history
- Tested default argument separator
- Tested that argument separator may be provided
- Provided functional test indicating provided argument separator is
  used
  • Loading branch information
weierophinney committed Nov 9, 2012
1 parent f7b29f8 commit 7b3da41
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 11 deletions.
3 changes: 2 additions & 1 deletion library/Zend/Http/Client.php
Expand Up @@ -375,9 +375,10 @@ public function setArgSeparator($argSeparator)
*/
public function getArgSeparator()
{
$argSeparator = $this->options['argseparator'];
$argSeparator = $this->config['argseparator'];
if (empty($argSeparator)) {
$argSeparator = ini_get('arg_separator.output');
$this->setArgSeparator($argSeparator);
}
return $argSeparator;
}
Expand Down
42 changes: 32 additions & 10 deletions tests/ZendTest/Http/Client/CommonHttpTests.php
Expand Up @@ -113,20 +113,28 @@ protected function tearDown()
* Simple request tests
*/

public function methodProvider()
{
return array(
array(Request::METHOD_GET),
array(Request::METHOD_POST),
array(Request::METHOD_OPTIONS),
array(Request::METHOD_PUT),
array(Request::METHOD_DELETE),
array(Request::METHOD_PATCH),
);
}

/**
* Test simple requests
*
* @dataProvider methodProvider
*/
public function testSimpleRequests()
public function testSimpleRequests($method)
{
$methods= array(Request::METHOD_GET, Request::METHOD_POST, Request::METHOD_OPTIONS,
Request::METHOD_PUT, Request::METHOD_DELETE, Request::METHOD_PATCH);

foreach ($methods as $method) {
$this->client->setMethod($method);
$res = $this->client->send();
$this->assertTrue($res->isSuccess(), "HTTP {$method} request failed.");
}
$this->client->setMethod($method);
$res = $this->client->send();
$this->assertTrue($res->isSuccess(), "HTTP {$method} request failed.");
}

/**
Expand Down Expand Up @@ -977,6 +985,21 @@ public function testContentTypeAdditionlInfo($params)
$request->getHeaders()->get('Content-Type')->getFieldValue());
}

/**
* @group 2774
* @group 2745
*/
public function testUsesProvidedArgSeparator()
{
$this->client->setArgSeparator(';');
$request = new Request();
$request->setUri('http://framework.zend.com');
$request->setQuery(array('foo' => 'bar', 'baz' => 'bat'));
$this->client->send($request);
$rawRequest = $this->client->getLastRawRequest();

This comment has been minimized.

Copy link
@demonkoryu

demonkoryu Nov 9, 2012

Contributor

Is this Order of Arguments Really guaranteed? Iirc Arrays are ordernd Maps in php and so its possible that the Array Keys are Provided in alphabetic instead of initialization Order.

This comment has been minimized.

Copy link
@weierophinney

weierophinney via email Nov 10, 2012

Author Member
$this->assertContains('?foo=bar;baz=bat', $rawRequest);
}

/**
* Internal helpder function to get the contents of test files
*
Expand Down Expand Up @@ -1045,5 +1068,4 @@ public static function invalidConfigProvider()
array(55)
);
}

}
22 changes: 22 additions & 0 deletions tests/ZendTest/Http/ClientTest.php
Expand Up @@ -79,4 +79,26 @@ public function testIfArrayIteratorOfHeadersCanBeSet()
$cookies = $client->getCookies();
$this->assertEquals(2, count($cookies));
}

/**
* @group 2774
* @group 2745
*/
public function testArgSeparatorDefaultsToIniSetting()
{
$argSeparator = ini_get('arg_separator.output');
$client = new Client();
$this->assertEquals($argSeparator, $client->getArgSeparator());
}

/**
* @group 2774
* @group 2745
*/
public function testCanOverrideArgSeparator()
{
$client = new Client();
$client->setArgSeparator(';');
$this->assertEquals(';', $client->getArgSeparator());
}
}

0 comments on commit 7b3da41

Please sign in to comment.