]> git.mxchange.org Git - friendica.git/blob - tests/src/App/ModeTest.php
Merge pull request #5987 from MrPetovan/task/empty-index-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\Util\VFSTrait;
7 use PHPUnit\Framework\TestCase;
8
9 /**
10  * @runTestsInSeparateProcesses
11  * @preserveGlobalState disabled
12  */
13 class ModeTest extends TestCase
14 {
15         use VFSTrait;
16
17         public function setUp()
18         {
19                 parent::setUp(); // TODO: Change the autogenerated stub
20
21                 $this->setUpVfsDir();
22         }
23
24         public function testItEmpty()
25         {
26                 $mode = new Mode($this->root->url());
27                 $this->assertTrue($mode->isInstall());
28                 $this->assertFalse($mode->isNormal());
29         }
30
31         public function testWithoutConfig()
32         {
33                 $mode = new Mode($this->root->url());
34
35                 $this->assertTrue($this->root->hasChild('config/local.ini.php'));
36
37                 $this->delConfigFile('local.ini.php');
38
39                 $this->assertFalse($this->root->hasChild('config/local.ini.php'));
40
41                 $mode->determine();
42
43                 $this->assertTrue($mode->isInstall());
44                 $this->assertFalse($mode->isNormal());
45
46                 $this->assertFalse($mode->has(Mode::LOCALCONFIGPRESENT));
47         }
48
49         public function testWithoutDatabase()
50         {
51                 $dba =  \Mockery::mock('alias:Friendica\Database\DBA');
52                 $dba
53                         ->shouldReceive('connected')
54                         ->andReturn(false);
55
56                 $mode = new Mode($this->root->url());
57                 $mode->determine();
58
59                 $this->assertFalse($mode->isNormal());
60                 $this->assertTrue($mode->isInstall());
61
62                 $this->assertTrue($mode->has(Mode::LOCALCONFIGPRESENT));
63                 $this->assertFalse($mode->has(Mode::DBAVAILABLE));
64         }
65
66         public function testWithoutDatabaseSetup()
67         {
68                 $dba =  \Mockery::mock('alias:Friendica\Database\DBA');
69                 $dba
70                         ->shouldReceive('connected')
71                         ->andReturn(true);
72                 $dba
73                         ->shouldReceive('fetchFirst')
74                         ->with('SHOW TABLES LIKE \'config\'')
75                         ->andReturn(false);
76
77                 $mode = new Mode($this->root->url());
78                 $mode->determine();
79
80                 $this->assertFalse($mode->isNormal());
81                 $this->assertTrue($mode->isInstall());
82
83                 $this->assertTrue($mode->has(Mode::LOCALCONFIGPRESENT));
84         }
85
86         public function testWithMaintenanceMode()
87         {
88                 $dba =  \Mockery::mock('alias:Friendica\Database\DBA');
89                 $dba
90                         ->shouldReceive('connected')
91                         ->andReturn(true);
92                 $dba
93                         ->shouldReceive('fetchFirst')
94                         ->with('SHOW TABLES LIKE \'config\'')
95                         ->andReturn(true);
96
97                 $conf = \Mockery::mock('alias:Friendica\Core\Config');
98                 $conf
99                         ->shouldReceive('get')
100                         ->with('system', 'maintenance')
101                         ->andReturn(true);
102
103                 $mode = new Mode($this->root->url());
104                 $mode->determine();
105
106                 $this->assertFalse($mode->isNormal());
107                 $this->assertFalse($mode->isInstall());
108
109                 $this->assertTrue($mode->has(Mode::DBCONFIGAVAILABLE));
110                 $this->assertFalse($mode->has(Mode::MAINTENANCEDISABLED));
111         }
112
113         public function testNormalMode()
114         {
115                 $dba =  \Mockery::mock('alias:Friendica\Database\DBA');
116                 $dba
117                         ->shouldReceive('connected')
118                         ->andReturn(true);
119                 $dba
120                         ->shouldReceive('fetchFirst')
121                         ->with('SHOW TABLES LIKE \'config\'')
122                         ->andReturn(true);
123
124                 $conf = \Mockery::mock('alias:Friendica\Core\Config');
125                 $conf
126                         ->shouldReceive('get')
127                         ->with('system', 'maintenance')
128                         ->andReturn(false);
129
130                 $mode = new Mode($this->root->url());
131                 $mode->determine();
132
133                 $this->assertTrue($mode->isNormal());
134                 $this->assertFalse($mode->isInstall());
135
136                 $this->assertTrue($mode->has(Mode::DBCONFIGAVAILABLE));
137                 $this->assertTrue($mode->has(Mode::MAINTENANCEDISABLED));
138         }
139 }