3 namespace Friendica\Test\src\App;
5 use Friendica\App\Mode;
6 use Friendica\Test\Util\VFSTrait;
7 use PHPUnit\Framework\TestCase;
10 * @runTestsInSeparateProcesses
11 * @preserveGlobalState disabled
13 class ModeTest extends TestCase
17 public function setUp()
19 parent::setUp(); // TODO: Change the autogenerated stub
24 public function testItEmpty()
26 $mode = new Mode($this->root->url());
27 $this->assertTrue($mode->isInstall());
28 $this->assertFalse($mode->isNormal());
31 public function testWithoutConfig()
33 $mode = new Mode($this->root->url());
35 $this->assertTrue($this->root->hasChild('config/local.ini.php'));
37 $this->delConfigFile('local.ini.php');
39 $this->assertFalse($this->root->hasChild('config/local.ini.php'));
43 $this->assertTrue($mode->isInstall());
44 $this->assertFalse($mode->isNormal());
46 $this->assertFalse($mode->has(Mode::LOCALCONFIGPRESENT));
49 public function testWithoutDatabase()
51 $dba = \Mockery::mock('alias:Friendica\Database\DBA');
53 ->shouldReceive('connected')
56 $mode = new Mode($this->root->url());
59 $this->assertFalse($mode->isNormal());
60 $this->assertTrue($mode->isInstall());
62 $this->assertTrue($mode->has(Mode::LOCALCONFIGPRESENT));
63 $this->assertFalse($mode->has(Mode::DBAVAILABLE));
66 public function testWithoutDatabaseSetup()
68 $dba = \Mockery::mock('alias:Friendica\Database\DBA');
70 ->shouldReceive('connected')
73 ->shouldReceive('fetchFirst')
74 ->with('SHOW TABLES LIKE \'config\'')
77 $mode = new Mode($this->root->url());
80 $this->assertFalse($mode->isNormal());
81 $this->assertTrue($mode->isInstall());
83 $this->assertTrue($mode->has(Mode::LOCALCONFIGPRESENT));
86 public function testWithMaintenanceMode()
88 $dba = \Mockery::mock('alias:Friendica\Database\DBA');
90 ->shouldReceive('connected')
93 ->shouldReceive('fetchFirst')
94 ->with('SHOW TABLES LIKE \'config\'')
97 $conf = \Mockery::mock('alias:Friendica\Core\Config');
99 ->shouldReceive('get')
100 ->with('system', 'maintenance')
103 $mode = new Mode($this->root->url());
106 $this->assertFalse($mode->isNormal());
107 $this->assertFalse($mode->isInstall());
109 $this->assertTrue($mode->has(Mode::DBCONFIGAVAILABLE));
110 $this->assertFalse($mode->has(Mode::MAINTENANCEDISABLED));
113 public function testNormalMode()
115 $dba = \Mockery::mock('alias:Friendica\Database\DBA');
117 ->shouldReceive('connected')
120 ->shouldReceive('fetchFirst')
121 ->with('SHOW TABLES LIKE \'config\'')
124 $conf = \Mockery::mock('alias:Friendica\Core\Config');
126 ->shouldReceive('get')
127 ->with('system', 'maintenance')
130 $mode = new Mode($this->root->url());
133 $this->assertTrue($mode->isNormal());
134 $this->assertFalse($mode->isInstall());
136 $this->assertTrue($mode->has(Mode::DBCONFIGAVAILABLE));
137 $this->assertTrue($mode->has(Mode::MAINTENANCEDISABLED));