summaryrefslogtreecommitdiff
path: root/_test/tests/inc
diff options
context:
space:
mode:
Diffstat (limited to '_test/tests/inc')
-rw-r--r--_test/tests/inc/init_checkssl.test.php81
-rw-r--r--_test/tests/inc/input.test.php50
2 files changed, 131 insertions, 0 deletions
diff --git a/_test/tests/inc/init_checkssl.test.php b/_test/tests/inc/init_checkssl.test.php
new file mode 100644
index 000000000..c57d3c37e
--- /dev/null
+++ b/_test/tests/inc/init_checkssl.test.php
@@ -0,0 +1,81 @@
+<?php
+
+class init_checkssl_test extends DokuWikiTest {
+
+ /**
+ * Running behind an SSL proxy, HTTP between server and proxy
+ * HTTPS not set
+ * HTTP_X_FORWARDED_PROTO
+ * set to https
+ */
+ function test1() {
+ $_SERVER['HTTP_X_FORWARDED_PROTO'] = 'https';
+
+ $this->assertEquals(is_ssl(), true);
+ }
+
+ /**
+ * Running behind a plain HTTP proxy, HTTP between server and proxy
+ * HTTPS not set
+ * HTTP_X_FORWARDED_PROTO set to http
+ */
+ function test2() {
+ $_SERVER['HTTP_X_FORWARDED_PROTO'] = 'http';
+
+ $this->assertEquals(is_ssl(), false);
+ }
+
+ /**
+ * Running behind an SSL proxy, HTTP between server and proxy
+ * HTTPS set to off,
+ * HTTP_X_FORWARDED_PROTO set to https
+ */
+ function test3() {
+ $_SERVER['HTTP_X_FORWARDED_PROTO'] = 'https';
+ $_SERVER['HTTPS'] = 'off';
+
+ $this->assertEquals(is_ssl(), true);
+ }
+
+ /**
+ * Not running behind a proxy, HTTPS server
+ * HTTPS set to on,
+ * HTTP_X_FORWARDED_PROTO not set
+ */
+ function test4() {
+ $_SERVER['HTTPS'] = 'on';
+
+ $this->assertEquals(is_ssl(), true);
+ }
+
+ /**
+ * Not running behind a proxy, plain HTTP server
+ * HTTPS not set
+ * HTTP_X_FORWARDED_PROTO not set
+ */
+ function test5() {
+ $this->assertEquals(is_ssl(), false);
+ }
+
+ /**
+ * Not running behind a proxy, plain HTTP server
+ * HTTPS set to off
+ * HTTP_X_FORWARDED_PROTO not set
+ */
+ function test6() {
+ $_SERVER['HTTPS'] = 'off';
+ $this->assertEquals(is_ssl(), false);
+ }
+
+ /**
+ * Running behind an SSL proxy, SSL between proxy and HTTP server
+ * HTTPS set to on,
+ * HTTP_X_FORWARDED_PROTO set to https
+ */
+ function test7() {
+ $_SERVER['HTTP_X_FORWARDED_PROTO'] = 'https';
+ $_SERVER['HTTPS'] = 'on';
+
+ $this->assertEquals(is_ssl(), true);
+ }
+}
diff --git a/_test/tests/inc/input.test.php b/_test/tests/inc/input.test.php
index cec0b80f6..4a8fb8d71 100644
--- a/_test/tests/inc/input.test.php
+++ b/_test/tests/inc/input.test.php
@@ -14,8 +14,58 @@ class input_test extends DokuWikiTest {
'empty' => '',
'emptya' => array(),
'do' => array('save' => 'Speichern'),
+
);
+ /**
+ * custom filter function
+ *
+ * @param $string
+ * @return mixed
+ */
+ public function myfilter($string) {
+ $string = str_replace('foo', 'bar', $string);
+ $string = str_replace('baz', '', $string);
+ return $string;
+ }
+
+ public function test_filter() {
+ $_GET = array(
+ 'foo' => 'foo',
+ 'zstring'=> "foo\0bar",
+ 'znull' => "\0",
+ 'zint' => '42'."\0".'42',
+ 'zintbaz'=> "baz42",
+ );
+ $_POST = $_GET;
+ $_REQUEST = $_GET;
+ $INPUT = new Input();
+
+ $filter = array($this,'myfilter');
+
+ $this->assertNotSame('foobar', $INPUT->str('zstring'));
+ $this->assertSame('foobar', $INPUT->filter()->str('zstring'));
+ $this->assertSame('bar', $INPUT->filter($filter)->str('foo'));
+ $this->assertSame('bar', $INPUT->filter()->str('znull', 'bar', true));
+ $this->assertNotSame('foobar', $INPUT->str('zstring')); // make sure original input is unmodified
+
+ $this->assertNotSame('foobar', $INPUT->get->str('zstring'));
+ $this->assertSame('foobar', $INPUT->get->filter()->str('zstring'));
+ $this->assertSame('bar', $INPUT->get->filter($filter)->str('foo'));
+ $this->assertSame('bar', $INPUT->get->filter()->str('znull', 'bar', true));
+ $this->assertNotSame('foobar', $INPUT->get->str('zstring')); // make sure original input is unmodified
+
+ $this->assertNotSame(4242, $INPUT->int('zint'));
+ $this->assertSame(4242, $INPUT->filter()->int('zint'));
+ $this->assertSame(42, $INPUT->filter($filter)->int('zintbaz'));
+ $this->assertSame(42, $INPUT->filter()->str('znull', 42, true));
+
+ $this->assertSame(true, $INPUT->bool('znull'));
+ $this->assertSame(false, $INPUT->filter()->bool('znull'));
+
+ $this->assertSame('foobar', $INPUT->filter()->valid('zstring', array('foobar', 'bang')));
+ }
+
public function test_str() {
$_REQUEST = $this->data;
$_POST = $this->data;