diff --git a/application/menunode.class.inc.php b/application/menunode.class.inc.php index 59fca8528..81927e921 100644 --- a/application/menunode.class.inc.php +++ b/application/menunode.class.inc.php @@ -1159,11 +1159,11 @@ class OQLMenuNode extends MenuNode { $sUsageId = utils::GetSafeId($sUsageId); $oSearch = DBObjectSearch::FromOQL($sOql); - $sClass= $oSearch->GetClass(); + $sClass= $oSearch->GetClass(); $sIcon = MetaModel::GetClassIcon($sClass, false); if ($bSearchPane) { $aParams = array_merge(['open' => $bSearchOpen, 'table_id' => $sUsageId, 'submit_on_load' => false], $aExtraParams); - $oBlock = new DisplayBlock($oSearch, 'search', false /* Asynchronous */, $aParams); + $oBlock = new DisplayBlock($oSearch, DisplayBlock::ENUM_STYLE_LIST_SEARCH, false /* Asynchronous */, $aParams); $oBlock->Display($oPage, 0); $oPage->add("
"); } diff --git a/tests/php-unit-tests/unitary-tests/application/MenuNodeTest.php b/tests/php-unit-tests/unitary-tests/application/MenuNodeTest.php new file mode 100644 index 000000000..056f163bb --- /dev/null +++ b/tests/php-unit-tests/unitary-tests/application/MenuNodeTest.php @@ -0,0 +1,94 @@ + "GABUZOMEU", + 'org_id' => $this->CreateOrganization(uniqid())->GetKey(), + ]; + $this->oUR = $this->CreateUserRequest(666, $aUserRequestCustomParams); + } + + public function RenderOQLSearchProvider() + { + $aUseCases = []; + $aValues = [false, true]; + foreach ($aValues as $bSearchPane) { + foreach ($aValues as $bSearchOpen) { + foreach ($aValues as $bAutoreload) { + $aUseCases[] = [ + 'bSearchPane' => $bSearchPane, + 'bSearchOpen' => $bSearchOpen, + "bAutoreload" => $bAutoreload, + ]; + } + + } + + return $aUseCases; + } + } + + /** + * @dataProvider RenderOQLSearchProvider + */ + public function testRenderOQLSearch($bSearchPane, $bSearchOpen, $bAutoreload) + { + $sOql = <<CallRenderOQLSearch($bSearchPane, $bSearchOpen, $bAutoreload, $sOql); + + $this->assertTrue(false !== strpos($sContent, $this->oUR->Get('title')), $sContent); + } + + /** + * @covers N°7750 - Bug with OQL set as Shortcut + */ + public function testRenderOQLSearchOqlWithDateFormatOnDeadline() + { + $sOql = <<CallRenderOQLSearch(true, true, true, $sOql); + $this->assertTrue(true); + } catch(\Exception $e){ + echo($e->getMessage()); + $this->fail('Without N°7750 fix Exception raised => TypeError : date(): Argument #2 ($timestamp) must be of type ?int, string given'); + } + } + + public function CallRenderOQLSearch(bool $bSearchPane, bool $bSearchOpen, bool $bAutoreload, string $sOql) : string + { + $sTitle = 'title'; + $oPage = new WebPage($sTitle); + + if ($bAutoreload) { + $aExtraParams = [ + 'auto_reload' => "5", //value in seconds + ]; + } else { + $aExtraParams = []; + } + + \OQLMenuNode::RenderOQLSearch($sOql, $sTitle, 'shortcut_XXX', $bSearchPane, $bSearchOpen, $oPage, $aExtraParams, true); + + $oResponse = $oPage->GenerateResponse(); + return $oResponse->getContent(); + } +} +