summaryrefslogtreecommitdiff
path: root/_test/tests/inc/common_basicinfo.test.php
diff options
context:
space:
mode:
authorChristopher Smith <chris@jalakai.co.uk>2013-02-25 15:00:16 +0000
committerChristopher Smith <chris@jalakai.co.uk>2013-02-25 15:00:16 +0000
commit7ae29fa453970036576e8b18fe228c24a25e94ff (patch)
treee21193bdf4b238b2906153be67b8065d3fe932f7 /_test/tests/inc/common_basicinfo.test.php
parent1fe0882c56ea31e738540e942b743966927415fd (diff)
downloadrpg-7ae29fa453970036576e8b18fe228c24a25e94ff.tar.gz
rpg-7ae29fa453970036576e8b18fe228c24a25e94ff.tar.bz2
refactor info functions test
pageinfo() test no longer required, unit test committed elsewhere and verified against both previous and updated versions of pageinfo() fn. basicinfo() and mediainfo() tests separated each into their own test file.
Diffstat (limited to '_test/tests/inc/common_basicinfo.test.php')
-rw-r--r--_test/tests/inc/common_basicinfo.test.php114
1 files changed, 114 insertions, 0 deletions
diff --git a/_test/tests/inc/common_basicinfo.test.php b/_test/tests/inc/common_basicinfo.test.php
new file mode 100644
index 000000000..2e383ef8b
--- /dev/null
+++ b/_test/tests/inc/common_basicinfo.test.php
@@ -0,0 +1,114 @@
+<?php
+
+class common_infofunctions_test extends DokuWikiTest {
+
+ function setup(){
+ parent::setup();
+
+ global $USERINFO;
+ $USERINFO = array(
+ 'pass' => '179ad45c6ce2cb97cf1029e212046e81',
+ 'name' => 'Arthur Dent',
+ 'mail' => 'arthur@example.com',
+ 'grps' => array ('admin','user'),
+ );
+ $_SERVER['REMOTE_USER'] = 'testuser';
+ $_SERVER['REMOTE_ADDR'] = '1.2.3.4';
+ }
+
+ function _get_info() {
+ global $USERINFO;
+ $info = array (
+ 'isadmin' => true,
+ 'ismanager' => true,
+ 'userinfo' => $USERINFO,
+ 'perm' => 255,
+ 'namespace' => false,
+ 'ismobile' => false,
+ 'client' => 'testuser',
+ );
+
+ return $info;
+ }
+
+ /**
+ * Its important to have the correct set of keys.
+ * Other functions provide the values
+ */
+ function test_basicinfo(){
+ // test with REMOTE_USER set and the user an admin user
+ $info = $this->_get_info();
+ $this->assertEquals(basicinfo($ID,true),$info);
+
+ // with $httpclient parameter set to false
+ unset($info['ismobile']);
+ $this->assertEquals(basicinfo($ID,false),$info);
+
+ // with anonymous user
+ unset($_SERVER['REMOTE_USER']);
+ global $USERINFO; $USERINFO = array();
+
+ $info = array(
+ 'isadmin' => false,
+ 'ismanager' => false,
+ 'perm' => 8,
+ 'namespace' => false,
+ 'ismobile' => false,
+ 'client' => '1.2.3.4',
+ );
+ $this->assertEquals(basicinfo($ID,true),$info);
+ }
+
+ /**
+ * We're interested in the extra keys required for $INFO when its a page request
+ * and that $REV, $RANGE globals are set/cleared correctly
+ */
+ function test_pageinfo(){
+ global $ID,$conf;
+ $ID = 'wiki:start';
+
+ $info = $this->_get_info();
+ $info['id'] = 'wiki:start';
+ $info['namespace'] = 'wiki';
+ $info['rev'] = null;
+ $info['subscribed'] = false;
+ $info['locked'] = false;
+ $info['filepath'] = $conf['datadir'].'/wiki/start.txt';
+ $info['exists'] = false;
+ $info['writable'] = true;
+ $info['editable'] = true;
+ $info['lastmod'] = false;
+ $info['meta'] = array();
+ $info['ip'] = null;
+ $info['user'] = null;
+ $info['sum'] = null;
+ $info['editor'] = null;
+
+ // basic test, no revision
+ $this->assertEquals(pageinfo(),$info);
+
+ // TODO: test with revision = current page
+
+ // TODO: test with true revision
+
+ // TODO: test with revision & range
+
+ // TODO: validate against the same test run on master branch pre this change
+ }
+
+ /**
+ * We're interested in the extra keys for $INFO when its a media request
+ */
+ function test_mediainfo(){
+ global $NS, $IMG;
+ $NS = '';
+ $IMG = 'testimage.png';
+
+ $info = $this->_get_info();
+ $info['image'] = 'testimage.png';
+
+ $this->assertEquals(mediainfo(),$info);
+ }
+}
+
+//Setup VIM: ex: et ts=4 :