Extend rcmail::url() to produce absolute and fully qualified URLs
parent
48e340a829
commit
06fdaf88cb
@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Test class to test rcmail class
|
||||
*
|
||||
* @package Tests
|
||||
*/
|
||||
class RcmailFunc extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
function setUp()
|
||||
{
|
||||
// set some HTTP env vars
|
||||
$_SERVER['HTTP_HOST'] = 'mail.example.org';
|
||||
$_SERVER['SERVER_PORT'] = '443';
|
||||
$_SERVER['SCRIPT_NAME'] = '/sub/index.php';
|
||||
$_SERVER['HTTPS'] = true;
|
||||
|
||||
rcmail::get_instance()->filename = '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Class constructor
|
||||
*/
|
||||
function test_class()
|
||||
{
|
||||
$object = rcmail::get_instance();
|
||||
$this->assertInstanceOf('rcmail', $object, "Class singleton");
|
||||
}
|
||||
|
||||
/**
|
||||
* Test rcmail::url()
|
||||
*/
|
||||
function test_url()
|
||||
{
|
||||
$rcmail = rcmail::get_instance();
|
||||
$this->assertEquals(
|
||||
'./?_task=cli&_action=test',
|
||||
$rcmail->url('test'),
|
||||
"Action only"
|
||||
);
|
||||
$this->assertEquals(
|
||||
'./?_task=cli&_action=test&_a=AA',
|
||||
$rcmail->url(array('action' => 'test', 'a' => 'AA')),
|
||||
"Unprefixed parameters"
|
||||
);
|
||||
$this->assertEquals(
|
||||
'./?_task=cli&_action=test&_b=BB',
|
||||
$rcmail->url(array('_action' => 'test', '_b' => 'BB', '_c' => null)),
|
||||
"Prefixed parameters (skip empty)"
|
||||
);
|
||||
$this->assertEquals(
|
||||
'/sub/?_task=cli&_action=test&_mode=ABS',
|
||||
$rcmail->url(array('_action' => 'test', '_mode' => 'ABS'), true),
|
||||
"Absolute URL"
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'https://mail.example.org/sub/?_task=calendar&_action=test&_mode=FQ',
|
||||
$rcmail->url(array('task' => 'calendar', '_action' => 'test', '_mode' => 'FQ'), true, true),
|
||||
"Fully Qualified URL"
|
||||
);
|
||||
|
||||
// with different SCRIPT_NAME values
|
||||
$_SERVER['SCRIPT_NAME'] = 'index.php';
|
||||
$this->assertEquals(
|
||||
'/?_task=cli&_action=test&_mode=ABS',
|
||||
$rcmail->url(array('_action' => 'test', '_mode' => 'ABS'), true),
|
||||
"Absolute URL (root)"
|
||||
);
|
||||
$_SERVER['SCRIPT_NAME'] = '';
|
||||
$this->assertEquals(
|
||||
'/?_task=cli&_action=test&_mode=ABS',
|
||||
$rcmail->url(array('_action' => 'test', '_mode' => 'ABS'), true),
|
||||
"Absolute URL (root)"
|
||||
);
|
||||
|
||||
$_SERVER['HTTPS'] = false;
|
||||
$_SERVER['SERVER_PORT'] = '8080';
|
||||
$this->assertEquals(
|
||||
'http://mail.example.org:8080/?_task=cli&_action=test&_mode=ABS',
|
||||
$rcmail->url(array('_action' => 'test', '_mode' => 'ABS'), true, true),
|
||||
"Full URL with port"
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue