summaryrefslogtreecommitdiff
path: root/_test/tests/inc/common_clientip.test.php
diff options
context:
space:
mode:
authorAnika Henke <anika@selfthinker.org>2012-06-29 17:51:09 +0100
committerAnika Henke <anika@selfthinker.org>2012-06-29 17:51:09 +0100
commit0c06a181819249c6a4a2a6c60e13f739df1f2253 (patch)
tree859377c572d0acbfc520b02304ef515bf3aebbe0 /_test/tests/inc/common_clientip.test.php
parentef7e36e4fd2a168977754f0aac1d855fb651f104 (diff)
parent5d0aaf958325f500ce69cfb79e69eb0d8f83fdeb (diff)
downloadrpg-0c06a181819249c6a4a2a6c60e13f739df1f2253.tar.gz
rpg-0c06a181819249c6a4a2a6c60e13f739df1f2253.tar.bz2
Merge branch 'master' of github.com:splitbrain/dokuwiki into frontend_improvements
Conflicts: lib/tpl/dokuwiki/css/basic.css
Diffstat (limited to '_test/tests/inc/common_clientip.test.php')
-rw-r--r--_test/tests/inc/common_clientip.test.php151
1 files changed, 151 insertions, 0 deletions
diff --git a/_test/tests/inc/common_clientip.test.php b/_test/tests/inc/common_clientip.test.php
new file mode 100644
index 000000000..5b569cd98
--- /dev/null
+++ b/_test/tests/inc/common_clientip.test.php
@@ -0,0 +1,151 @@
+<?php
+
+class common_clientIP_test extends DokuWikiTest {
+
+ function test_simple_all(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '';
+ $out = '123.123.123.123';
+ $this->assertEquals(clientIP(),$out);
+ }
+
+ function test_proxy1_all(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '77.77.77.77';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '';
+ $out = '123.123.123.123,77.77.77.77';
+ $this->assertEquals(clientIP(),$out);
+ }
+
+ function test_proxy2_all(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '77.77.77.77';
+ $out = '123.123.123.123,77.77.77.77';
+ $this->assertEquals(clientIP(),$out);
+ }
+
+ function test_proxyhops_all(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '77.77.77.77,66.66.66.66';
+ $out = '123.123.123.123,77.77.77.77,66.66.66.66';
+ $this->assertEquals(clientIP(),$out);
+ }
+
+ function test_simple_single(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '';
+ $out = '123.123.123.123';
+ $this->assertEquals(clientIP(true),$out);
+ }
+
+ function test_proxy1_single(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '77.77.77.77';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '';
+ $out = '77.77.77.77';
+ $this->assertEquals(clientIP(true),$out);
+ }
+
+ function test_proxy2_single(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '77.77.77.77';
+ $out = '77.77.77.77';
+ $this->assertEquals(clientIP(true),$out);
+ }
+
+ function test_proxyhops_single(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '77.77.77.77,66.66.66.66';
+ $out = '66.66.66.66';
+ $this->assertEquals(clientIP(true),$out);
+ }
+
+ function test_local_all(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '127.0.0.1';
+ $out = '123.123.123.123,127.0.0.1';
+ $this->assertEquals(clientIP(),$out);
+ }
+
+ function test_local1_single(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '127.0.0.1';
+ $out = '123.123.123.123';
+ $this->assertEquals(clientIP(true),$out);
+ }
+
+ function test_local2_single(){
+ $_SERVER['REMOTE_ADDR'] = '127.0.0.1';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '123.123.123.123';
+ $out = '123.123.123.123';
+ $this->assertEquals(clientIP(true),$out);
+ }
+
+ function test_local3_single(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '127.0.0.1,10.0.0.1,192.168.0.2,172.17.1.1,172.21.1.1,172.31.1.1';
+ $out = '123.123.123.123';
+ $this->assertEquals(clientIP(true),$out);
+ }
+
+ function test_local4_single(){
+ $_SERVER['REMOTE_ADDR'] = '127.0.0.1';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '192.168.0.5';
+ $out = '192.168.0.5';
+ $this->assertEquals(clientIP(true),$out);
+ }
+
+ function test_garbage_all(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = 'some garbage, or something, 222';
+ $out = '123.123.123.123';
+ $this->assertEquals(clientIP(),$out);
+ }
+
+ function test_garbage_single(){
+ $_SERVER['REMOTE_ADDR'] = '123.123.123.123';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = 'some garbage, or something, 222';
+ $out = '123.123.123.123';
+ $this->assertEquals(clientIP(true),$out);
+ }
+
+ function test_garbageonly_all(){
+ $_SERVER['REMOTE_ADDR'] = 'argh';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = 'some garbage, or something, 222';
+ $out = '0.0.0.0';
+ $this->assertEquals(clientIP(),$out);
+ }
+
+ function test_garbageonly_single(){
+ $_SERVER['REMOTE_ADDR'] = 'argh';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = 'some garbage, or something, 222';
+ $out = '0.0.0.0';
+ $this->assertEquals(clientIP(true),$out);
+ }
+
+ function test_malicious(){
+ $_SERVER['REMOTE_ADDR'] = '';
+ $_SERVER['HTTP_X_REAL_IP'] = '';
+ $_SERVER['HTTP_X_FORWARDED_FOR'] = '<?php set_time_limit(0);echo \'my_delim\';passthru(123.123.123.123);die;?>';
+ $out = '0.0.0.0';
+ $this->assertEquals(clientIP(),$out);
+ }
+
+}
+
+//Setup VIM: ex: et ts=4 :