3 namespace Friendica\Test\src\App;
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;
12 * @runTestsInSeparateProcesses
13 * @preserveGlobalState disabled
15 class ModeTest extends MockedTest
21 public function setUp()
23 parent::setUp(); // TODO: Change the autogenerated stub
28 public function testItEmpty()
30 $mode = new Mode($this->root->url());
31 $this->assertTrue($mode->isInstall());
32 $this->assertFalse($mode->isNormal());
35 public function testWithoutConfig()
37 $mode = new Mode($this->root->url());
39 $this->assertTrue($this->root->hasChild('config/local.config.php'));
41 $this->delConfigFile('local.config.php');
43 $this->assertFalse($this->root->hasChild('config/local.config.php'));
47 $this->assertTrue($mode->isInstall());
48 $this->assertFalse($mode->isNormal());
50 $this->assertFalse($mode->has(Mode::LOCALCONFIGPRESENT));
53 public function testWithoutDatabase()
55 $this->mockConnected(false, 1);
57 $mode = new Mode($this->root->url());
60 $this->assertFalse($mode->isNormal());
61 $this->assertTrue($mode->isInstall());
63 $this->assertTrue($mode->has(Mode::LOCALCONFIGPRESENT));
64 $this->assertFalse($mode->has(Mode::DBAVAILABLE));
67 public function testWithoutDatabaseSetup()
69 $this->mockConnected(true, 1);
70 $this->mockFetchFirst('SHOW TABLES LIKE \'config\'', false, 1);
72 $mode = new Mode($this->root->url());
75 $this->assertFalse($mode->isNormal());
76 $this->assertTrue($mode->isInstall());
78 $this->assertTrue($mode->has(Mode::LOCALCONFIGPRESENT));
81 public function testWithMaintenanceMode()
83 $this->mockConnected(true, 1);
84 $this->mockFetchFirst('SHOW TABLES LIKE \'config\'', true, 1);
85 $this->mockConfigGet('system', 'maintenance', true, 1);
87 $mode = new Mode($this->root->url());
90 $this->assertFalse($mode->isNormal());
91 $this->assertFalse($mode->isInstall());
93 $this->assertTrue($mode->has(Mode::DBCONFIGAVAILABLE));
94 $this->assertFalse($mode->has(Mode::MAINTENANCEDISABLED));
97 public function testNormalMode()
99 $this->mockConnected(true, 1);
100 $this->mockFetchFirst('SHOW TABLES LIKE \'config\'', true, 1);
101 $this->mockConfigGet('system', 'maintenance', false, 1);
103 $mode = new Mode($this->root->url());
106 $this->assertTrue($mode->isNormal());
107 $this->assertFalse($mode->isInstall());
109 $this->assertTrue($mode->has(Mode::DBCONFIGAVAILABLE));
110 $this->assertTrue($mode->has(Mode::MAINTENANCEDISABLED));