]> git.mxchange.org Git - friendica.git/blob - tests/src/App/ModeTest.php
Update install to generate config/local.config.php
[friendica.git] / tests / src / App / ModeTest.php
1 <?php
2
3 namespace Friendica\Test\src\App;
4
5 use Friendica\App\Mode;
6 use Friendica\Test\MockedTest;
7 use Friendica\Test\Util\ConfigMockTrait;
8 use Friendica\Test\Util\DBAMockTrait;
9 use Friendica\Test\Util\VFSTrait;
10
11 /**
12  * @runTestsInSeparateProcesses
13  * @preserveGlobalState disabled
14  */
15 class ModeTest extends MockedTest
16 {
17         use VFSTrait;
18         use DBAMockTrait;
19         use ConfigMockTrait;
20
21         public function setUp()
22         {
23                 parent::setUp(); // TODO: Change the autogenerated stub
24
25                 $this->setUpVfsDir();
26         }
27
28         public function testItEmpty()
29         {
30                 $mode = new Mode($this->root->url());
31                 $this->assertTrue($mode->isInstall());
32                 $this->assertFalse($mode->isNormal());
33         }
34
35         public function testWithoutConfig()
36         {
37                 $mode = new Mode($this->root->url());
38
39                 $this->assertTrue($this->root->hasChild('config/local.config.php'));
40
41                 $this->delConfigFile('local.config.php');
42
43                 $this->assertFalse($this->root->hasChild('config/local.config.php'));
44
45                 $mode->determine();
46
47                 $this->assertTrue($mode->isInstall());
48                 $this->assertFalse($mode->isNormal());
49
50                 $this->assertFalse($mode->has(Mode::LOCALCONFIGPRESENT));
51         }
52
53         public function testWithoutDatabase()
54         {
55                 $this->mockConnected(false, 1);
56
57                 $mode = new Mode($this->root->url());
58                 $mode->determine();
59
60                 $this->assertFalse($mode->isNormal());
61                 $this->assertTrue($mode->isInstall());
62
63                 $this->assertTrue($mode->has(Mode::LOCALCONFIGPRESENT));
64                 $this->assertFalse($mode->has(Mode::DBAVAILABLE));
65         }
66
67         public function testWithoutDatabaseSetup()
68         {
69                 $this->mockConnected(true, 1);
70                 $this->mockFetchFirst('SHOW TABLES LIKE \'config\'', false, 1);
71
72                 $mode = new Mode($this->root->url());
73                 $mode->determine();
74
75                 $this->assertFalse($mode->isNormal());
76                 $this->assertTrue($mode->isInstall());
77
78                 $this->assertTrue($mode->has(Mode::LOCALCONFIGPRESENT));
79         }
80
81         public function testWithMaintenanceMode()
82         {
83                 $this->mockConnected(true, 1);
84                 $this->mockFetchFirst('SHOW TABLES LIKE \'config\'', true, 1);
85                 $this->mockConfigGet('system', 'maintenance', true, 1);
86
87                 $mode = new Mode($this->root->url());
88                 $mode->determine();
89
90                 $this->assertFalse($mode->isNormal());
91                 $this->assertFalse($mode->isInstall());
92
93                 $this->assertTrue($mode->has(Mode::DBCONFIGAVAILABLE));
94                 $this->assertFalse($mode->has(Mode::MAINTENANCEDISABLED));
95         }
96
97         public function testNormalMode()
98         {
99                 $this->mockConnected(true, 1);
100                 $this->mockFetchFirst('SHOW TABLES LIKE \'config\'', true, 1);
101                 $this->mockConfigGet('system', 'maintenance', false, 1);
102
103                 $mode = new Mode($this->root->url());
104                 $mode->determine();
105
106                 $this->assertTrue($mode->isNormal());
107                 $this->assertFalse($mode->isInstall());
108
109                 $this->assertTrue($mode->has(Mode::DBCONFIGAVAILABLE));
110                 $this->assertTrue($mode->has(Mode::MAINTENANCEDISABLED));
111         }
112 }