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
16 var $_testRequestInstance;
17 var $_original_values;
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'
31 'cookie_param'=>'cookie',
32 'session_param'=>'cookie',
33 'general_param'=>'cookie'
38 'cookie_param'=>'post',
39 'session_param'=>'post',
40 'general_param'=>'post'
45 'ak'=>'/get_controller/get_action',
47 'cookie_param'=>'get',
48 'session_param'=>'get',
49 'general_param'=>'get',
50 'gpc_param'=>'Isn\\\'t it ironic'
57 'cookie_param'=>'cmd',
58 'session_param'=>'cmd',
59 'general_param'=>'cmd'
64 $this->_testRequestInstance
=& new AkRequest();
65 $this->_testRequestInstance
->init();
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';
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');