--- /dev/null
+language: php
+
+php:
+ - 5.2
+ - 5.3
+ - 5.4
+ - 5.5
+ - 5.6
+ - hhvm
+
+install:
+ composer install
+
+before_script:
+ # before php 5.4, we can not use the built-in webserver. So we rely on apache
+ - sudo apt-get install apache2
+ - sudo a2enmod actions
+ - sudo a2enmod rewrite
+ - echo "export PATH=/home/vagrant/.phpenv/bin:$PATH" | sudo tee -a /etc/apache2/envvars > /dev/null
+ - echo "$(curl -fsSL https://gist.github.com/roderik/16d751c979fdeb5a14e3/raw/gistfile1.txt)" | sudo tee /etc/apache2/conf.d/phpconfig > /dev/null
+ - echo "$(curl -fsSL https://gist.github.com/roderik/2eb301570ed4a1f4c33d/raw/gistfile1.txt)" | sed -e "s,PATH,`pwd`/web,g" | sudo tee /etc/apache2/sites-available/default > /dev/null
+ - sudo service apache2 restart
+
+script:
+ # TODO: we should set up an Apache instance inside the Travis VM and test it.
+ # But it looks a bit complex, esp. as it seems that php has to be set up differently (cgi vs fpm) depending on version
+ # So for now we just take an easy way out using a known remote server.
+ # See: https://gist.github.com/roderik/3123962
+ # See: http://docs.travis-ci.com/user/languages/php/#Apache-%2B-PHP
+ php -d "include_path=.;./lib;./test" test/testsuite.php LOCALSERVER=gggeek.altervista.org URI=/sw/xmlrpc/demo/server/server.php HTTPSSERVER=gggeek.ssl.altervista.org HTTPSURI=/sw/xmlrpc/demo/server/server.php
<?php
-include(getcwd().'/parse_args.php');
+include(dirname(__FILE__).'/parse_args.php');
require_once('xmlrpc.inc');
require_once('xmlrpcs.inc');
$this->assertEquals(1, $v->scalarval());
// now check if we decoded the cookies as we had set them
$rcookies = $r->cookies();
+ // remove extra cookies which might have been set by proxies
+ foreach($rcookies as $c => $v)
+ if(!in_array($c, array('c2', 'c3', 'c4', 'c5')))
+ unset($rcookies[$c]);
foreach($cookies as $c => $v)
// format for date string in cookies: 'Mon, 31 Oct 2005 13:50:56 GMT'
// but PHP versions differ on that, some use 'Mon, 31-Oct-2005 13:50:56 GMT'...
function testProxy()
{
- global $PROXYSERVER, $PROXYPORT;
+ global $PROXYSERVER, $PROXYPORT, $NOPROXY;
if ($PROXYSERVER)
{
$this->client->setProxy($PROXYSERVER, $PROXYPORT);
$this->_runtests();
}
else
- $this->fail('PROXY definition missing: cannot test proxy');
+ if (!$NOPROXY)
+ $this->fail('PROXY definition missing: cannot test proxy');
}
function testHttp11()
function testHttp11Proxy()
{
- global $PROXYSERVER, $PROXYPORT;
+ global $PROXYSERVER, $PROXYPORT, $NOPROXY;
if(!function_exists('curl_init'))
{
$this->fail('CURL missing: cannot test http 1.1 w. proxy');
}
else if ($PROXYSERVER == '')
{
- $this->fail('PROXY definition missing: cannot test proxy w. http 1.1');
+ if (!$NOPROXY)
+ $this->fail('PROXY definition missing: cannot test proxy w. http 1.1');
return;
}
$this->method = 'http11'; // not an error the double assignment!
function testHttpsProxy()
{
- global $HTTPSSERVER, $HTTPSURI, $PROXYSERVER, $PROXYPORT;;
+ global $HTTPSSERVER, $HTTPSURI, $PROXYSERVER, $PROXYPORT, $NOPROXY;
if(!function_exists('curl_init'))
{
$this->fail('CURL missing: cannot test https functionality');
}
else if ($PROXYSERVER == '')
{
- $this->fail('PROXY definition missing: cannot test proxy w. http 1.1');
+ if (!$NOPROXY)
+ $this->fail('PROXY definition missing: cannot test proxy w. http 1.1');
return;
}
$this->client->server = $HTTPSSERVER;