Skip to content

Commit

Permalink
Verify that the SOAP API works properly when compression is requested.
Browse files Browse the repository at this point in the history
  • Loading branch information
rombert committed May 16, 2010
1 parent 78b53d2 commit 208d302
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 2 deletions.
2 changes: 2 additions & 0 deletions tests/soap/AllTests.php
Expand Up @@ -34,6 +34,7 @@
require_once 'AttachmentTest.php';
require_once 'LoginTest.php';
require_once 'CategoryTest.php';
require_once 'CompressionTest.php';

/**
* @package Tests
Expand Down Expand Up @@ -65,6 +66,7 @@ public static function suite()
$suite->addTestSuite('AttachmentTest');
$suite->addTestSuite('LoginTest');
$suite->addTestSuite('CategoryTest');
$suite->addTestSuite('CompressionTest');

return $suite;
}
Expand Down
62 changes: 62 additions & 0 deletions tests/soap/CompressionTest.php
@@ -0,0 +1,62 @@
<?php
# MantisBT - a php based bugtracking system

# MantisBT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# MantisBT is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with MantisBT. If not, see <http://www.gnu.org/licenses/>.

/**
* @package Tests
* @subpackage UnitTests
* @copyright Copyright (C) 2010 MantisBT Team - mantisbt-dev@lists.sourceforge.net
* @link http://www.mantisbt.org
*/

require_once 'SoapBase.php';

/**
* Test fixture for calls with compression enabled
*/
class CompressionTest extends SoapBase {

/**
* A test case that tests the following:
*
* <ol>
* <li>Creating an issue.</li>
* <li>Retrieving an issue.</li>
* </ol>
*
* <p>If any of the calls performed with compression enabled will
* fail, the test will fail in turn with a SoapFault.</p>
*/
public function testGetIssueWithCompressionEnabled() {
$issueToAdd = $this->getIssueToAdd( 'CompressionTest.testUpdateSummary' );

$issueId = $this->client->mc_issue_add(
$this->userName,
$this->password,
$issueToAdd);

$this->deleteAfterRun( $issueId );

$createdIssue = $this->client->mc_issue_get(
$this->userName,
$this->password,
$issueId);
}

protected function extraSoapClientFlags() {

return array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP);
}
}
11 changes: 9 additions & 2 deletions tests/soap/SoapBase.php
Expand Up @@ -46,11 +46,12 @@ protected function setUp()
!$GLOBALS['MANTIS_TESTSUITE_SOAP_ENABLED']) {
$this->markTestSkipped( 'The Soap tests are disabled.' );
}

$this->client = new
SoapClient(
$GLOBALS['MANTIS_TESTSUITE_SOAP_HOST'],
array_merge($this->defaultSoapClientOptions, $this->extraSoapClientFlags())
array_merge($this->defaultSoapClientOptions, $this->extraSoapClientFlags()
)
);
}

Expand Down Expand Up @@ -120,4 +121,10 @@ protected function skipIfAllowNoCategoryIsDisabled() {
$this->markTestSkipped( 'g_allow_no_category is not ON.' );
}
}

protected function skipIsZlibIsNotAvailable() {
if( !extension_loaded( 'zlib' ) ) {
$this->markTestSkipped('zlib extension not found.');
}
}
}

0 comments on commit 208d302

Please sign in to comment.