function testListSorterOption()
 {
     $option = new ListSorter_Option("Age Title", "Age DESC, Title ASC", new ListSorter_Option("Age Title", array("Age" => "ASC", "Title" => "DESC")));
     $this->assertEquals("Age Title", $option->Title);
     $this->assertEquals("age title", $option->ID);
     $this->assertEquals("age title", (string) $option);
     $this->assertTrue($option->isReversable());
     $this->assertEquals("dev?sort=age+title", $option->getLink());
     $reverse = $option->getReverseOption();
     $this->assertEquals("Age Title", $reverse->Title);
     $this->assertEquals("age title_rev", $reverse->ID);
     $this->assertEquals("age title_rev", (string) $reverse);
     $this->assertTrue($reverse->isReversable());
     $this->assertEquals("dev?sort=age+title_rev", $reverse->getLink());
 }
 function getSorter()
 {
     $sorts = array('Most Popular' => 'Popularity DESC', ListSorter_Option::create('Title (A - Z)', "Title ASC", ListSorter_Option::create('Title (Z - A)', "Title DESC")->setID("title desc"))->setID("title asc"), ListSorter_Option::create('Newest', "Created DESC", ListSorter_Option::create('Oldest', "Created ASC")));
     $sorter = new ListSorter($this->request, $sorts);
     $this->extend('updateSorter', $sorter);
     return $sorter;
 }
 public function setReverseOption(ListSorter_Option $option)
 {
     $this->reverseoption = $option;
     if (!$option->isReversable()) {
         if ($this->getID() === $option->getID()) {
             $option->setID((string) $option . "_rev");
         }
         $option->setReverseOption($this);
     }
     return $this;
 }