Example #1
0
 /**
  * Tests getItemUnhideDialog() method.
  *
  * @return void
  * @test
  */
 public function testGetItemUnhideDialog()
 {
     $expectedQuery = "SELECT `item_name`, `item_type`" . " FROM `pmadb`.`navigationhiding`" . " WHERE `username`='user' AND `db_name`='db' AND `table_name`=''";
     $dbi = $this->getMockBuilder('PMA_DatabaseInterface')->disableOriginalConstructor()->getMock();
     $dbi->expects($this->once())->method('tryQuery')->with($expectedQuery)->will($this->returnValue(true));
     $dbi->expects($this->at(1))->method('fetchArray')->will($this->returnValue(array('item_name' => 'tableName', 'item_type' => 'table')));
     $dbi->expects($this->at(2))->method('fetchArray')->will($this->returnValue(array('item_name' => 'viewName', 'item_type' => 'view')));
     $dbi->expects($this->at(3))->method('fetchArray')->will($this->returnValue(false));
     $dbi->expects($this->once())->method('freeResult');
     $GLOBALS['dbi'] = $dbi;
     $html = $this->object->getItemUnhideDialog('db');
     $this->assertContains('<td>tableName</td>', $html);
     $this->assertContains('<a href="navigation.php' . PMA_URL_getCommon() . '&unhideNavItem=true&itemType=table&itemName=tableName&dbName=db"' . ' class="unhideNavItem ajax">', $html);
 }
// Also initialises the collapsible tree class
require_once './libraries/navigation/Navigation.class.php';
$response = PMA_Response::getInstance();
$navigation = new PMA_Navigation();
if (!$response->isAjax()) {
    $response->addHTML(PMA_Message::error(__('Fatal error: The navigation can only be accessed via AJAX')));
    exit;
}
$cfgRelation = PMA_getRelationsParam();
if (isset($cfgRelation['navwork']) && $cfgRelation['navwork']) {
    if (isset($_REQUEST['hideNavItem'])) {
        if (!empty($_REQUEST['itemName']) && !empty($_REQUEST['itemType']) && !empty($_REQUEST['dbName'])) {
            $navigation->hideNavigationItem($_REQUEST['itemName'], $_REQUEST['itemType'], $_REQUEST['dbName'], !empty($_REQUEST['tableName']) ? $_REQUEST['tableName'] : null);
        }
        exit;
    }
    if (isset($_REQUEST['unhideNavItem'])) {
        if (!empty($_REQUEST['itemName']) && !empty($_REQUEST['itemType']) && !empty($_REQUEST['dbName'])) {
            $navigation->unhideNavigationItem($_REQUEST['itemName'], $_REQUEST['itemType'], $_REQUEST['dbName'], !empty($_REQUEST['tableName']) ? $_REQUEST['tableName'] : null);
        }
        exit;
    }
    if (isset($_REQUEST['showUnhideDialog'])) {
        if (!empty($_REQUEST['dbName'])) {
            $response->addJSON('message', $navigation->getItemUnhideDialog($_REQUEST['dbName']));
        }
        exit;
    }
}
// Do the magic
$response->addJSON('message', $navigation->getDisplay());