Adding support for non-ISO date-times in Ak::getTimestamp() for allowing date-times...
[akelos.git] / test / unit / lib / AkRequest.php
blob4fa5a678e44fe52cf4731135d2987f3ae3718a0d
1 <?php
3 require_once(dirname(__FILE__).'/../../fixtures/config/config.php');
5 require_once(AK_LIB_DIR.DS.'AkRequest.php');
7 class Test_of_AkRequest_Class extends UnitTestCase
10 var $test_request;
11 var $test_request2;
12 var $test_request3;
13 var $test_request4;
14 var $test_request5;
16 var $_testRequestInstance;
17 var $_original_values;
19 function setUp()
21 $sess_request = isset($_SESSION['request']) ? $_SESSION['request'] : null;
22 $this->_original_values = array($sess_request, $_COOKIE, $_POST, $_GET, $_REQUEST);
24 $_SESSION['request'] = array(
25 'session_param'=>'session',
26 'ak'=>'/session_controller/session_action',
27 'general_param'=>'session'
30 $_COOKIE = array(
31 'cookie_param'=>'cookie',
32 'session_param'=>'cookie',
33 'general_param'=>'cookie'
36 $_POST = array(
37 'post_param'=>'post',
38 'cookie_param'=>'post',
39 'session_param'=>'post',
40 'general_param'=>'post'
43 $_GET = array(
44 'get_param'=>'get',
45 'ak'=>'/get_controller/get_action',
46 'post_param'=>'get',
47 'cookie_param'=>'get',
48 'session_param'=>'get',
49 'general_param'=>'get',
50 'gpc_param'=>'Isn\\\'t it ironic'
53 $_REQUEST = array(
54 'cmd_param'=>'cmd',
55 'get_param'=>'cmd',
56 'post_param'=>'cmd',
57 'cookie_param'=>'cmd',
58 'session_param'=>'cmd',
59 'general_param'=>'cmd'
64 $this->_testRequestInstance =& new AkRequest();
65 $this->_testRequestInstance->init();
69 function tearDown()
71 unset($this->_testRequestInstance);
73 //We reset the original values
74 $_SESSION['request'] = $this->_original_values[0];
75 $_COOKIE = $this->_original_values[1];
76 $_POST = $this->_original_values[2];
77 $_GET = $this->_original_values[3];
78 $_REQUEST = $this->_original_values[4];
82 function Test_mergeRequest()
84 $gpc_param = get_magic_quotes_gpc() ? "Isn't it ironic" : 'Isn\\\'t it ironic';
86 $expected = array(
87 'cmd_param'=>'cmd',
88 'get_param'=>'get',
89 'post_param'=>'post',
90 'cookie_param'=>'cookie',
91 'session_param'=>'session',
92 'general_param'=>'session',
93 'ak'=>'/session_controller/session_action',
94 'gpc_param'=>$gpc_param,
97 $this->_testRequestInstance->_mergeRequest();
99 $this->assertEqual($this->_testRequestInstance->_request,$expected,'Comparing request precedence');
103 function Test_parseAkRequestString()
105 $expected_values = array('user','list','100');
107 $this->assertEqual($this->_testRequestInstance->_parseAkRequestString('/user/list/100'), $expected_values);
108 $this->assertEqual($this->_testRequestInstance->_parseAkRequestString('/user/list/100/'), $expected_values);
109 $this->assertEqual($this->_testRequestInstance->_parseAkRequestString('user/list/100/'), $expected_values);
110 $this->assertEqual($this->_testRequestInstance->_parseAkRequestString('user/list/100'), $expected_values);
112 $expected_keys = array('controller','action','id');
113 $this->assertEqual($this->_testRequestInstance->_parseAkRequestString('/:controller/:action/:id','/:'), $expected_keys);
114 $this->assertEqual($this->_testRequestInstance->_parseAkRequestString('/:controller/:action/:id/:','/:'), $expected_keys);
115 $this->assertEqual($this->_testRequestInstance->_parseAkRequestString('controller/:action/:id/:','/:'), $expected_keys);
116 $this->assertEqual($this->_testRequestInstance->_parseAkRequestString('controller/:action/:id','/:'), $expected_keys);
121 function test_for_getRemoteIp()
123 $Request = new AkRequest();
125 $Request->env = array('HTTP_CLIENT_IP'=>'64.68.15.10');
126 $this->assertEqual($Request->getRemoteIp(),'64.68.15.10');
128 $Request->env = array('HTTP_X_FORWARDED_FOR'=>'64.68.15.11');
129 $this->assertEqual($Request->getRemoteIp(),'64.68.15.11');
131 $Request->env = array('HTTP_X_FORWARDED_FOR'=>'364.68.15.11');
132 $this->assertEqual($Request->getRemoteIp(),'');
134 $Request->env = array('HTTP_X_FORWARDED_FOR'=>'3e4f:123f:c12a:5566:888e:9975:aaff:2344');
135 $this->assertEqual($Request->getRemoteIp(),'3e4f:123f:c12a:5566:888e:9975:aaff:2344');
137 $Request->env = array('HTTP_X_FORWARDED_FOR'=>'3e4f:123f:c12a:5566:888e:9975:aafg:2344');
138 $this->assertEqual($Request->getRemoteIp(),'');
140 $Request->env = array('HTTP_X_FORWARDED_FOR'=>'364.68.15.11,64.68.15.11');
141 $this->assertEqual($Request->getRemoteIp(),'64.68.15.11');
143 $Request->env = array('REMOTE_ADDR'=>'64.68.15.11');
144 $this->assertEqual($Request->getRemoteIp(),'64.68.15.11');
147 function test_for_getDomain()
149 $Request = new AkRequest();
151 $env_backup = $Request->env;
153 $Request->env['SERVER_NAME'] = 'localhost';
154 $Request->env['SERVER_ADDR'] = '127.0.0.1';
156 $this->assertEqual($Request->getDomain(), 'localhost');
158 $Request->_host = 'www.dev.akelos.com';
160 $this->assertEqual($Request->getDomain(),'akelos.com');
161 $this->assertEqual($Request->getDomain(2),'dev.akelos.com');
163 $Request->env = $env_backup;
166 function test_for_getSubDomains()
168 $Request = new AkRequest();
170 $env_backup = $Request->env;
172 $Request->_host = 'www.dev.akelos.com';
174 $this->assertEqual($Request->getSubdomains(), array('www','dev'));
175 $this->assertEqual($Request->getSubdomains(2),array('www'));
177 $Request->env = $env_backup;
182 ak_test('Test_of_AkRequest_Class');