xref: /plugin/publish/_test/publish.test.php (revision abc3ac649f6e32388640757ab4013e2344b0919f)
16249ebcdSMichael Große<?php
26249ebcdSMichael Große
36249ebcdSMichael Große/**
46249ebcdSMichael Große * General tests for the publish plugin
56249ebcdSMichael Große *
6*abc3ac64SMichael Große * @group plugin_publish_integration
76249ebcdSMichael Große * @group plugin_publish
86249ebcdSMichael Große * @group plugins
9*abc3ac64SMichael Große * @group integrationtests
10*abc3ac64SMichael Große * @author Michael Große <grosse@cosmocode.de>
116249ebcdSMichael Große */
126249ebcdSMichael Großeclass approvel_test extends DokuWikiTest {
136249ebcdSMichael Große
14*abc3ac64SMichael Große    protected $pluginsEnabled = array('publish');
15*abc3ac64SMichael Große
166249ebcdSMichael Große    public function setUp(){
176249ebcdSMichael Große        parent::setUp();
186249ebcdSMichael Große
196249ebcdSMichael Große        global $USERINFO;
206249ebcdSMichael Große        $USERINFO = array(
216249ebcdSMichael Große           'pass' => '179ad45c6ce2cb97cf1029e212046e81',
226249ebcdSMichael Große           'name' => 'Arthur Dent',
236249ebcdSMichael Große           'mail' => 'arthur@example.com',
246249ebcdSMichael Große           'grps' => array ('admin','user'),
256249ebcdSMichael Große        );
266249ebcdSMichael Große
27*abc3ac64SMichael Große        global $default_server_vars;
28*abc3ac64SMichael Große        $default_server_vars['REMOTE_USER'] = 'testuser'; //Hack until Issue splitbrain/dokuwiki#1099 is fixed
29*abc3ac64SMichael Große
30*abc3ac64SMichael Große        $_SERVER['REMOTE_USER'] = 'testuser';
31*abc3ac64SMichael Große
32*abc3ac64SMichael Große        global $conf;
33*abc3ac64SMichael Große        global $AUTH_ACL;
34*abc3ac64SMichael Große        $conf['useacl']    = 1;
35*abc3ac64SMichael Große        $conf['superuser'] = '@admin';
36*abc3ac64SMichael Große        $AUTH_ACL = array(
37*abc3ac64SMichael Große            '*                     @ALL        4',
38*abc3ac64SMichael Große            '*                     @admin     16',);
396249ebcdSMichael Große    }
406249ebcdSMichael Große
41*abc3ac64SMichael Große    /**
42*abc3ac64SMichael Große     * @coversNothing
43*abc3ac64SMichael Große     */
446249ebcdSMichael Große    public function test_unaprroved_banner_exists() {
456249ebcdSMichael Große        saveWikiText('foo', 'bar', 'foobar');
466249ebcdSMichael Große        $request = new TestRequest();
476249ebcdSMichael Große        $response = $request->get(array('id' => 'foo'), '/doku.php?id=foo');
486249ebcdSMichael Große        $this->assertTrue(
496249ebcdSMichael Große            strpos($response->getContent(), '<div class="approval approved_no">') !== false,
506249ebcdSMichael Große            'The "not approved banner" is missing on a page which has not yet been aprroved with standard config.'
516249ebcdSMichael Große        );
526249ebcdSMichael Große
536249ebcdSMichael Große    }
546249ebcdSMichael Große
55*abc3ac64SMichael Große    /**
56*abc3ac64SMichael Große     * @coversNothing
57*abc3ac64SMichael Große     */
586249ebcdSMichael Große    public function test_aprroval_succesful() {
596249ebcdSMichael Große        saveWikiText('foo', 'bar', 'foobar');
606249ebcdSMichael Große        $request = new TestRequest();
61*abc3ac64SMichael Große        $response = $request->get(array(), '/doku.php?id=foo&publish_approve=1');
626249ebcdSMichael Große        $this->assertTrue(
636249ebcdSMichael Große            strpos($response->getContent(), '<div class="approval approved_yes">') !== false,
646249ebcdSMichael Große            'Approving a page failed with standard options.'
656249ebcdSMichael Große        );
666249ebcdSMichael Große
676249ebcdSMichael Große    }
686249ebcdSMichael Große
69*abc3ac64SMichael Große    /**
70*abc3ac64SMichael Große     * @coversNothing
71*abc3ac64SMichael Große     */
726249ebcdSMichael Große    public function test_no_aprroved_banner() {
73*abc3ac64SMichael Große        global $conf;
74*abc3ac64SMichael Große        $conf['plugin']['publish']['hide_approved_banner'] = 1;
756249ebcdSMichael Große        saveWikiText('foo', 'bar', 'foobar');
76*abc3ac64SMichael Große
776249ebcdSMichael Große        $request = new TestRequest();
78*abc3ac64SMichael Große        $response = $request->get(array(), '/doku.php?id=foo&publish_approve=1');
79*abc3ac64SMichael Große
806249ebcdSMichael Große        $this->assertTrue(
816249ebcdSMichael Große            strpos($response->getContent(), '<div class="approval') === false,
826249ebcdSMichael Große            'The approved banner is still showing even so it is supposed not to show.'
836249ebcdSMichael Große        );
846249ebcdSMichael Große
856249ebcdSMichael Große    }
866249ebcdSMichael Große}
87