/** * Tests JTableNested::delete * * @return void * * @since 11.3 */ public function testDelete() { $table = $this->object; $assetsTable = new JTableAsset(self::$dbo); $treeAssetsOriginal = $assetsTable->getTree('1'); $this->assertEquals(159, count($treeAssetsOriginal), 'Line: ' . __LINE__ . ' Assets root tree should have 159 nodes'); // Delete Sample Data weblinks (18) & children $table->load('18'); $this->assertTrue($table->delete('18', true), 'Line: ' . __LINE__ . ' Should delete 18'); // Check categories table $treeTemp = $table->getTree('1'); $this->assertEquals(63, count($treeTemp), 'Line: ' . __LINE__ . ' Root tree should have 63 nodes'); $this->checkLftRgt($treeTemp); $this->assertEquals('14', $treeTemp[1]->id, 'Line: ' . __LINE__ . ' id for element 1 should be 14'); $this->assertEquals('19', $treeTemp[2]->id, 'Line: ' . __LINE__ . ' id for element 2 should be 19'); $this->assertEquals(0, count($table->getTree('18')), 'Line: ' . __LINE__ . ' Id 18 should have been deleted'); $this->assertEquals(0, count($table->getTree('31')), 'Line: ' . __LINE__ . ' Id 31 should have been deleted'); // Check assets table $treeAssetsTemp = $assetsTable->getTree('1'); $this->assertEquals(155, count($treeAssetsTemp), 'Line: ' . __LINE__ . ' After delete, assets root tree should have 155 nodes'); $this->assertEquals(0, count($assetsTable->getTree('43')), 'Line: ' . __LINE__ . ' Id 43 should have been deleted from assets'); $this->assertEquals(0, count($assetsTable->getTree('56')), 'Line: ' . __LINE__ . ' Id 56 should have been deleted from assets'); // Delete Modules (22) and don't delete children // Child nodes should be moved up to parent $table->load('22'); $this->assertTrue($table->delete('22', false), 'Line: ' . __LINE__ . ' Delete id 22 should be successful'); // Check categories table $treeTemp = $table->getTree('1'); $this->assertEquals(62, count($treeTemp), 'Line: ' . __LINE__ . ' Root tree should have 62 nodes'); $this->checkLftRgt($treeTemp); $this->assertEquals('64', $treeTemp[5]->id, 'Line: ' . __LINE__ . ' id for element 5 should be 64'); $this->assertEquals('4', $treeTemp[5]->level, 'Line: ' . __LINE__ . ' level for element 5 should be 4'); $this->assertEquals('65', $treeTemp[6]->id, 'Line: ' . __LINE__ . ' id for element 6 should be 65'); $this->assertEquals('4', $treeTemp[6]->level, 'Line: ' . __LINE__ . ' id for element 6 should be 4'); $this->assertEquals('66', $treeTemp[7]->id, 'Line: ' . __LINE__ . ' id for element 7 should be 66'); $this->assertEquals('4', $treeTemp[7]->level, 'Line: ' . __LINE__ . ' id for element 7 should be 4'); $this->assertEquals('67', $treeTemp[8]->id, 'Line: ' . __LINE__ . ' id for element 8 should be 67'); $this->assertEquals('4', $treeTemp[8]->level, 'Line: ' . __LINE__ . ' id for element 8 should be 4'); $this->assertEquals('75', $treeTemp[9]->id, 'Line: ' . __LINE__ . ' id for element 9 should be 75'); $this->assertEquals('4', $treeTemp[9]->level, 'Line: ' . __LINE__ . ' id for element 9 should be 4'); $this->assertEquals(0, count($table->getTree('22')), 'Line: ' . __LINE__ . ' id 22 should be deleted'); // Check assets table $treeAssetsTemp = $assetsTable->getTree('1'); $this->assertEquals(154, count($treeAssetsTemp), 'Line: ' . __LINE__ . ' After delete, assets root tree should have 154 nodes'); $this->assertEquals(0, count($assetsTable->getTree('47')), 'Line: ' . __LINE__ . ' Id 47 should have been deleted from assets'); // Try using delete method without the table->load // It should fail and return false $table->reset(); $this->assertFalse($table->delete('14'), 'Line: ' . __LINE__ . ' Table delete should fail because table->load() was not run first'); // Delete Templates (23) without arguments (using just the $table->load) $table->load('23'); $this->assertTrue($table->delete(), 'Line: ' . __LINE__ . ' Should delete id 23 and children'); // Check categories $treeTemp = $table->getTree('1'); $this->assertEquals(58, count($treeTemp), 'Line: ' . __LINE__ . ' Root tree should have 58 nodes'); $this->checkLftRgt($treeTemp); $this->assertEquals('24', $treeTemp[10]->id, 'Line: ' . __LINE__ . ' id for element 10 should be 24'); $this->assertEquals(0, count($table->getTree('23')), 'Line: ' . __LINE__ . ' id 23 should be deleted'); // Check assets $treeAssetsTemp = $assetsTable->getTree('1'); $this->assertEquals(148, count($treeAssetsTemp), 'Line: ' . __LINE__ . ' After delete, assets root tree should have 148 nodes'); $this->assertEquals(0, count($assetsTable->getTree('48')), 'Line: ' . __LINE__ . ' Id 48 should have been deleted from assets'); $this->assertEquals(0, count($assetsTable->getTree('98')), 'Line: ' . __LINE__ . ' Id 98 should have been deleted from assets'); $this->assertEquals(0, count($assetsTable->getTree('147')), 'Line: ' . __LINE__ . ' Id 147 should have been deleted from assets (article)'); $table->load('21'); // Components no children $this->assertTrue($table->delete('21', false), 'Line: ' . __LINE__ . ' Should delete id 21 but not children'); // Check categories $treeTemp = $table->getTree('1'); $this->assertEquals(57, count($treeTemp), 'Line: ' . __LINE__ . ' Root tree should have 58 nodes'); $this->checkLftRgt($treeTemp); $this->assertEquals('64', $treeTemp[4]->id, 'Line: ' . __LINE__ . ' id for element 4 should be 64'); $this->assertEquals(0, count($table->getTree('21')), 'Line: ' . __LINE__ . ' id 21 should be deleted'); // Check assets $treeAssetsTemp = $assetsTable->getTree('1'); $this->assertEquals(147, count($treeAssetsTemp), 'Line: ' . __LINE__ . ' After delete, assets root tree should have 147 nodes'); // Test table with no assets $menuTable = new JTableMenu(self::$dbo); $menuTable->load('2'); $this->assertTrue($menuTable->delete('2', true), 'Line: ' . __LINE__ . ' Menu id 2 should be deleted'); $treeMenuTemp = $menuTable->getTree('1'); $this->checkLftRgt($treeMenuTemp); $this->assertEquals(16, count($treeMenuTemp), 'Line: ' . __LINE__ . ' Menu table should have 16 rows'); $this->assertEquals(147, count($treeAssetsTemp), 'Line: ' . __LINE__ . ' After delete, assets root tree should still have 147 nodes'); // Check assets $treeAssetsTemp = $assetsTable->getTree('1'); $this->assertEquals(147, count($treeAssetsTemp), 'Line: ' . __LINE__ . ' Assets root tree should have 147 nodes'); // Check lock $lockedTable = $this->getMock('JTableCategory', array('_lock'), array('jos_categories', 'id', self::$dbo)); $lockedTable->expects($this->any())->method('_lock')->will($this->returnValue(false)); $this->assertFalse($lockedTable->delete('1'), 'Line: ' . __LINE__ . ' Delete should fail because cannot lock'); }
static function rent_history($option) { global $database, $my, $Itemid, $booklibrary_configuration, $mainframe, $mosConfig_list_limit; PHP_booklibrary::addTitleAndMetaTags(); // $menu = new mosMenu($database); // $menu->load( $Itemid ); // $params = new mosParameters( $menu->params ); if (version_compare(JVERSION, '3.0', 'lt')) { $menu = new JTableMenu($database); // for 1.6 $menu->load($Itemid); $params = new mosParameters($menu->params); } else { $menu = new JTableMenu($database); $menu->load($Itemid); $params = new JRegistry(); $params->loadString($menu->params); } $database->setQuery("SELECT id FROM #__menu WHERE link='index.php?option=com_booklibrary'"); if ($database->loadResult() != $Itemid) { $params->def('wrongitemid', '1'); } if ($my->email == null) { echo "\n <script type=\"text/JavaScript\" language = \"JavaScript\">\n alert('You cannot view My Books that were not authorizated!');\n window.history.go(-1);\n </script>"; exit; } $limit = $booklibrary_configuration['page']['items']; $limitstart = mosGetParam($_REQUEST, 'limitstart', 0); $database->setQuery("SELECT count(*) FROM #__booklibrary_lend AS l" . "\nLEFT JOIN #__booklibrary AS a ON a.id = l. fk_bookid" . "\nWHERE l.fk_userid = '{$my->id}'"); $total = $database->loadResult(); echo $database->getErrorMsg(); $pageNav = new JPagination($total, $limitstart, $limit); // for J 1.6 $query = "SELECT l.*,a.* FROM #__booklibrary_lend AS l" . "\nLEFT JOIN #__booklibrary AS a ON a.id = l. fk_bookid " . "\nWHERE l.fk_userid = '" . $my->id . "' LIMIT {$pageNav->limitstart},{$pageNav->limit};"; $database->setQuery($query); $books = $database->loadObjectList(); HTML_booklibrary::showRentHistory($option, $books, $pageNav, $params); }