/**
  * @param string $action
  * @param int $uploadId
  * @param int $uploadTreeId
  * @param int $groupId
  * @return string
  */
 protected function doNextPrev($action, $uploadId, $uploadTreeId, $groupId)
 {
     switch ($action) {
         case "setNextPrev":
             $modName = "view-license";
             $opt = self::OPTION_SKIP_FILE;
             break;
         case "setNextPrevCopyRight":
             $modName = "copyright-view";
             $opt = self::OPTION_SKIP_FILE_COPYRIGHT;
             break;
         case "setNextPrevIp":
             $modName = "ip-view";
             $opt = self::OPTION_SKIP_FILE_IP;
             break;
         case "setNextPrevEcc":
             $modName = "ecc-view";
             $opt = self::OPTION_SKIP_FILE_ECC;
             break;
     }
     $options = array('skipThese' => GetParm($opt, PARM_STRING), 'groupId' => $groupId);
     $prevItem = $this->uploadDao->getPreviousItem($uploadId, $uploadTreeId, $options);
     $prevItemId = $prevItem ? $prevItem->getId() : null;
     $nextItem = $this->uploadDao->getNextItem($uploadId, $uploadTreeId, $options);
     $nextItemId = $nextItem ? $nextItem->getId() : null;
     return array('prev' => $prevItemId, 'next' => $nextItemId, 'uri' => Traceback_uri() . "?mod=" . $modName . Traceback_parm_keep(array('upload', 'folder')));
 }
 public function testGetPreviousFull()
 {
     $this->prepareUploadTree($this->getTestFileStructure());
     $entries = array_reverse($this->entries);
     $previousId = $entries[0];
     foreach (array_slice($entries, 1) as $entry) {
         $previousItem = $this->uploadDao->getPreviousItem(32, $previousId);
         assertThat($previousItem->getId(), is($entry));
         $previousId = $entry;
     }
     $previousItem = $this->uploadDao->getPreviousItem(32, $previousId);
     assertThat($previousItem, is(nullValue()));
 }