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