/**
  * Tests that updateSubTreePath() does not mess up a previously defined
  * alias for a node.
  */
 public function testUpdateSubTreePathLeavesAliasesAlone()
 {
     $random = mt_rand();
     $folder = new ezpObject("folder", 2);
     $folder->name = __FUNCTION__ . " Folder " . $random;
     $folder->publish();
     $child = new ezpObject("article", $folder->mainNode->node_id);
     $child->title = __FUNCTION__ . " Child " . $random;
     $child->publish();
     $folderURL = eZURLAliasML::fetchByAction('eznode', $child->mainNode->node_id);
     // Create an alias element using storePath()
     $path = "ThisIsATestAlias_{$random}";
     $action = "eznode:" . $child->mainNode->node_id;
     $alias = eZURLALiasML::storePath($path, $action, false, $folderURL[0]->attribute('id'));
     $child->mainNode->updateSubTreePath();
     // Refetch the alias ezurlalias_ml element
     $db = eZDB::instance();
     $actionValues = array($child->mainNode->node_id);
     $extraConditions = array('id' => $alias['element']->attribute('id'));
     $aliases = $db->arrayQuery(self::buildSql($actionValues, false, $extraConditions));
     self::assertEquals(1, (int) $aliases[0]['is_alias']);
     self::assertEquals(1, (int) $aliases[0]['is_original']);
 }
Exemplo n.º 2
0
 private static function generateCond($table, $prevTable, $i, $langMask, $element)
 {
     $db = eZDB::instance();
     if ($i == 0) {
         $cond = "{$table}.parent = 0 AND ({$langMask}) AND {$table}.text_md5 = " . eZURLALiasML::md5($db, $element);
     } else {
         $cond = "{$table}.parent = {$prevTable}.link AND ({$langMask}) AND {$table}.text_md5 = " . eZURLALiasML::md5($db, $element);
     }
     return $cond;
 }