0013278: add --setpassword to setup cli
[tine20] / tests / setup / Setup / CliTest.php
1 <?php
2 /**
3  * Tine 2.0 - http://www.tine20.org
4  * 
5  * @package     Setup
6  * @license     http://www.gnu.org/licenses/agpl.html
7  * @copyright   Copyright (c) 2008-2016 Metaways Infosystems GmbH (http://www.metaways.de)
8  * @author      Stefanie Stamer <s.stamer@metaways.de>
9  * 
10  */
11
12 /**
13  * Test helper
14  */
15 require_once dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'TestHelper.php';
16
17 /**
18  * Test class for Tinebase_Group
19  */
20 class Setup_CliTest extends TestCase
21 {
22     protected $_oldConfigs = array();
23
24     /**
25      * Sets up the fixture.
26      * This method is called before a test is executed.
27      *
28      * @access protected
29      */
30     protected function setUp()
31     {
32         $this->_cli = new Setup_Frontend_Cli();
33         parent::setUp();
34     }
35
36     protected function tearDown()
37     {
38         parent::tearDown();
39
40         // reset old configs
41         foreach ($this->_oldConfigs as $name => $value) {
42             Tinebase_Config::getInstance()->set($name, $value);
43         }
44     }
45
46     /**
47      * Test SetConfig
48      */
49     public function testSetConfig()
50     {
51         $this->_oldConfigs[Tinebase_Config::ALLOWEDJSONORIGINS] = Tinebase_Config::getInstance()->get(Tinebase_Config::ALLOWEDJSONORIGINS);
52         $output = $this->_cliHelper('setconfig', array('--setconfig','--','configkey=allowedJsonOrigins', 'configvalue='.'["foo","bar"]'));
53         $this->assertContains('OK - Updated configuration option allowedJsonOrigins for application Tinebase', $output);
54         $result = Tinebase_Config_Abstract::factory('Tinebase')->get('allowedJsonOrigins');
55         $this->assertEquals("foo", $result[0]);
56         $this->assertEquals("bar", $result[1]);
57     }
58
59     /**
60      * Test SetBoolConfig
61      */
62     public function testSetBoolConfig()
63     {
64         $this->_oldConfigs[Tinebase_Config::MAINTENANCE_MODE] = Tinebase_Config::getInstance()->get(Tinebase_Config::MAINTENANCE_MODE);
65
66         $values = array(1, "true");
67         foreach ($values as $configValue) {
68             $output = $this->_cliHelper('setconfig', array('--setconfig', '--', 'configkey=maintenanceMode', 'configvalue=' . $configValue));
69             $this->assertContains('OK - Updated configuration option maintenanceMode for application Tinebase', $output);
70             $result = Tinebase_Config_Abstract::factory('Tinebase')->get(Tinebase_Config::MAINTENANCE_MODE);
71             $this->assertTrue($result);
72         }
73     }
74
75     /**
76      * Test GetConfig
77      */
78     public function testGetConfig()
79     {
80         $this->testSetConfig();
81         $result = $this->_cliHelper('getconfig', array('--getconfig','--','configkey=allowedJsonOrigins'));
82         $result = Zend_Json::decode($result);
83         $this->assertEquals("foo", $result[0]);
84         $this->assertEquals("bar", $result[1]);
85     }
86
87     /**
88      * Test compare
89      */
90     public function testCompare()
91     {
92         $this->testSetConfig();
93         $result = $this->_cliHelper('compare', array('--compare','--','otherdb=tine20'));
94         $this->assertContains("Array
95 (
96 )", $result);
97     }
98
99     /**
100      * Test setpassword of replicationuser
101      */
102     public function testSetPassword()
103     {
104         $this->testSetConfig();
105         $result = $this->_cliHelper('setpassword', array('--setpassword','--','username=replicationuser', 'password=xxxx1234'));
106         self::assertEmpty($result);
107         $auth = Tinebase_Auth::getInstance()->authenticate('replicationuser', 'xxxx1234');
108         self::assertTrue($auth->isValid(), print_r($auth, true));
109     }
110 }