public function testDiff()
 {
     $tz = date_default_timezone_get();
     date_default_timezone_set('Europe/Paris');
     stub($this->base_language)->getText('system', 'datefmt_short')->returns(Tracker_FormElement_DateFormatter::DATE_FORMAT);
     stub($this->field)->formatDateForDisplay(1221221466)->returns("2008-09-12");
     stub($this->field)->formatDateForDisplay(1234567890)->returns("2009-02-14");
     $date_1 = new Tracker_Artifact_ChangesetValue_Date(111, $this->field, false, 1221221466);
     $date_2 = new Tracker_Artifact_ChangesetValue_Date(111, $this->field, false, 1234567890);
     $this->assertEqual($date_1->diff($date_2), 'changed from 2009-02-14 to 2008-09-12');
     $this->assertEqual($date_2->diff($date_1), 'changed from 2008-09-12 to 2009-02-14');
     date_default_timezone_set($tz);
 }
 function testDiff()
 {
     $tz = ini_get('date.timezone');
     ini_set('date.timezone', 'Europe/Paris');
     $GLOBALS['Language']->setReturnValue('getText', "changed from", array('plugin_tracker_artifact', 'changed_from'));
     $GLOBALS['Language']->setReturnValue('getText', "to", array('plugin_tracker_artifact', 'to'));
     $GLOBALS['Language']->setReturnValue('getText', "Y-m-d", array('system', 'datefmt_short'));
     $field = new MockTracker_FormElement_Field_Date();
     $date_1 = new Tracker_Artifact_ChangesetValue_Date(111, $field, false, 1221221466);
     $date_2 = new Tracker_Artifact_ChangesetValue_Date(111, $field, false, 1234567890);
     $this->assertEqual($date_1->diff($date_2), 'changed from 2009-02-14 to 2008-09-12');
     $this->assertEqual($date_2->diff($date_1), 'changed from 2008-09-12 to 2009-02-14');
     ini_set('date.timezone', $tz);
 }
 function testDiff()
 {
     $tz = date_default_timezone_get();
     date_default_timezone_set('Europe/Paris');
     $GLOBALS['Language']->setReturnValue('getText', "changed from", array('plugin_tracker_artifact', 'changed_from'));
     $GLOBALS['Language']->setReturnValue('getText', "to", array('plugin_tracker_artifact', 'to'));
     $GLOBALS['Language']->setReturnValue('getText', Tracker_FormElement_DateFormatter::DATE_FORMAT, array('system', 'datefmt_short'));
     $field = new MockTracker_FormElement_Field_Date();
     stub($field)->formatDateForDisplay(1221221466)->returns("2008-09-12");
     stub($field)->formatDateForDisplay(1234567890)->returns("2009-02-14");
     $date_1 = new Tracker_Artifact_ChangesetValue_Date(111, $field, false, 1221221466);
     $date_2 = new Tracker_Artifact_ChangesetValue_Date(111, $field, false, 1234567890);
     $this->assertEqual($date_1->diff($date_2), 'changed from 2009-02-14 to 2008-09-12');
     $this->assertEqual($date_2->diff($date_1), 'changed from 2008-09-12 to 2009-02-14');
     date_default_timezone_set($tz);
 }
 /**
  * Returns diff between current date and date in param
  *
  * @param Tracker_Artifact_ChangesetValue_Date $changeset_value the changeset value to compare
  *
  * @return string The difference between another $changeset_value, false if no differneces
  */
 public function diff($changeset_value, $format = 'html')
 {
     $next_date = $this->getDate();
     if ($changeset_value->getTimestamp() != 0) {
         $previous_date = $changeset_value->getDate();
         if ($previous_date !== $next_date) {
             if ($next_date === '') {
                 return $GLOBALS['Language']->getText('plugin_tracker_artifact', 'cleared');
             } else {
                 return $GLOBALS['Language']->getText('plugin_tracker_artifact', 'changed_from') . ' ' . $previous_date . ' ' . $GLOBALS['Language']->getText('plugin_tracker_artifact', 'to') . ' ' . $next_date;
             }
         }
     } else {
         return $GLOBALS['Language']->getText('plugin_tracker_artifact', 'set_to') . ' ' . $next_date;
     }
     return false;
 }
 /**
  * Fetch the html code to display the field value in artifact in read only mode
  *
  * @param Tracker_Artifact                $artifact The artifact
  * @param Tracker_Artifact_ChangesetValue $value    The actual value of the field
  *
  * @return string
  */
 public function fetchArtifactValueReadOnly(Tracker_Artifact $artifact, Tracker_Artifact_ChangesetValue $value = null)
 {
     $html = '';
     if (!$value) {
         $value = new Tracker_Artifact_ChangesetValue_Date(null, $this, false, $artifact->getSubmittedOn());
     }
     $timestamp = $value->getTimestamp();
     $value = $timestamp ? $this->formatDateForDisplay($timestamp) : '';
     $html .= $value;
     return $html;
 }