X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=tests%2Fsrc%2FApp%2FModeTest.php;h=fe65793f8e1b92e5699bf80aa447bd45d8a83a30;hb=f1e7d97b8cae93e1c77f5a5085880409b01fcdbe;hp=56b9cc913f21b14edcb10570c243780dd761aeae;hpb=6f944f1e53cb1da86ff9b539fb639167a6db913b;p=friendica.git diff --git a/tests/src/App/ModeTest.php b/tests/src/App/ModeTest.php index 56b9cc913f..fe65793f8e 100644 --- a/tests/src/App/ModeTest.php +++ b/tests/src/App/ModeTest.php @@ -2,6 +2,7 @@ namespace Friendica\Test\src\App; +use Detection\MobileDetect; use Friendica\App\Mode; use Friendica\App\Module; use Friendica\Core\Config; @@ -182,12 +183,13 @@ class ModeTest extends MockedTest /** * Test if not called by index is backend */ - public function testIsBackendNotIndex() + public function testIsBackendNotIsBackend() { - $server = ['PHP_SELF' => '/daemon.php']; + $server = []; $module = new Module(); + $mobileDetect = new MobileDetect(); - $mode = (new Mode())->determineBackend($module, $server); + $mode = (new Mode())->determineRunMode(true, $module, $server, $mobileDetect); $this->assertTrue($mode->isBackend()); } @@ -197,10 +199,11 @@ class ModeTest extends MockedTest */ public function testIsBackendButIndex() { - $server = ['PHP_SELF' => '/index.php']; + $server = []; $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, true); + $mobileDetect = new MobileDetect(); - $mode = (new Mode())->determineBackend($module, $server); + $mode = (new Mode())->determineRunMode(false, $module, $server, $mobileDetect); $this->assertTrue($mode->isBackend()); } @@ -210,11 +213,79 @@ class ModeTest extends MockedTest */ public function testIsNotBackend() { - $server = ['PHP_SELF' => '/index.php']; + $server = []; $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, false); + $mobileDetect = new MobileDetect(); - $mode = (new Mode())->determineBackend($module, $server); + $mode = (new Mode())->determineRunMode(false, $module, $server, $mobileDetect); $this->assertFalse($mode->isBackend()); } + + /** + * Test if the call is an ajax call + */ + public function testIsAjax() + { + // This is the server environment variable to determine ajax calls + $server = [ + 'HTTP_X_REQUESTED_WITH' => 'xmlhttprequest', + ]; + + $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, false); + $mobileDetect = new MobileDetect(); + + $mode = (new Mode())->determineRunMode(true, $module, $server, $mobileDetect); + + $this->assertTrue($mode->isAjax()); + } + + /** + * Test if the call is not nan ajax call + */ + public function testIsNotAjax() + { + $server = []; + $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, false); + $mobileDetect = new MobileDetect(); + + $mode = (new Mode())->determineRunMode(true, $module, $server, $mobileDetect); + + $this->assertFalse($mode->isAjax()); + } + + /** + * Test if the call is a mobile and is a tablet call + */ + public function testIsMobileIsTablet() + { + $server = []; + $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, false); + $mobileDetect = \Mockery::mock(MobileDetect::class); + $mobileDetect->shouldReceive('isMobile')->andReturn(true); + $mobileDetect->shouldReceive('isTablet')->andReturn(true); + + $mode = (new Mode())->determineRunMode(true, $module, $server, $mobileDetect); + + $this->assertTrue($mode->isMobile()); + $this->assertTrue($mode->isTablet()); + } + + + /** + * Test if the call is not a mobile and is not a tablet call + */ + public function testIsNotMobileIsNotTablet() + { + $server = []; + $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, false); + $mobileDetect = \Mockery::mock(MobileDetect::class); + $mobileDetect->shouldReceive('isMobile')->andReturn(false); + $mobileDetect->shouldReceive('isTablet')->andReturn(false); + + $mode = (new Mode())->determineRunMode(true, $module, $server, $mobileDetect); + + $this->assertFalse($mode->isMobile()); + $this->assertFalse($mode->isTablet()); + } }