]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/App/ModeTest.php
Merge remote-tracking branch 'upstream/develop' into sanitize-gcontact
[friendica.git] / tests / src / App / ModeTest.php
index 56b9cc913f21b14edcb10570c243780dd761aeae..fe65793f8e1b92e5699bf80aa447bd45d8a83a30 100644 (file)
@@ -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());
+       }
 }