Exemple #1
0
 /**
  * @group Core
  * @group Period
  */
 public function testGetLabel()
 {
     $period = new Piwik_Period_Day(Piwik_Date::today());
     $label = $period->getLabel();
     $this->assertInternalType('string', $label);
     $this->assertNotEmpty($label);
     $period = new Piwik_Period_Week(Piwik_Date::today());
     $label = $period->getLabel();
     $this->assertInternalType('string', $label);
     $this->assertNotEmpty($label);
     $period = new Piwik_Period_Month(Piwik_Date::today());
     $label = $period->getLabel();
     $this->assertInternalType('string', $label);
     $this->assertNotEmpty($label);
     $period = new Piwik_Period_Year(Piwik_Date::today());
     $label = $period->getLabel();
     $this->assertInternalType('string', $label);
     $this->assertNotEmpty($label);
 }
Exemple #2
0
 /**
  * @group Core
  * @group Period
  * @group Period_Range
  */
 public function testRangeWeekLast1()
 {
     $range = new Piwik_Period_Range('week', 'last1');
     $currentWeek = new Piwik_Period_Week(Piwik_Date::today());
     $this->assertEquals(1, $range->getNumberOfSubperiods());
     $this->assertEquals(array($currentWeek->toString()), $range->toString());
 }
Exemple #3
0
 protected function processOptimalSubperiods($startDate, $endDate)
 {
     while ($startDate->isEarlier($endDate) || $startDate == $endDate) {
         $endOfPeriod = null;
         $month = new Piwik_Period_Month($startDate);
         $endOfMonth = $month->getDateEnd();
         $startOfMonth = $month->getDateStart();
         if ($startDate == $startOfMonth && ($endOfMonth->isEarlier($endDate) || $endOfMonth == $endDate || $endOfMonth->isLater($this->today)) && !($endDate->isEarlier($this->today) && $this->today->compareMonth($endOfMonth) == 0)) {
             $this->addSubperiod($month);
             $endOfPeriod = $endOfMonth;
         } else {
             // From start date,
             //  Process end of week
             $week = new Piwik_Period_Week($startDate);
             $startOfWeek = $week->getDateStart();
             $endOfWeek = $week->getDateEnd();
             $useMonthsNextIteration = $startDate->addPeriod(2, 'month')->setDay(1)->isEarlier($endDate);
             if ($useMonthsNextIteration && $endOfWeek->isLater($endOfMonth)) {
                 $this->fillArraySubPeriods($startDate, $endOfMonth, 'day');
                 $endOfPeriod = $endOfMonth;
             } elseif ($endOfWeek->isLater($endDate) && ($endOfWeek->isEarlier($this->today) || $endDate->isEarlier($this->today))) {
                 $this->fillArraySubPeriods($startDate, $endDate, 'day');
                 break 1;
             } elseif ($startOfWeek->isEarlier($startDate) && $endOfWeek->isEarlier($this->today)) {
                 $this->fillArraySubPeriods($startDate, $endOfWeek, 'day');
                 $endOfPeriod = $endOfWeek;
             } else {
                 $this->addSubperiod($week);
                 $endOfPeriod = $endOfWeek;
             }
         }
         $startDate = $endOfPeriod->addDay(1);
     }
 }
Exemple #4
0
 function test_range_week_last1()
 {
     $range = new Piwik_Period_Range('week', 'last1');
     $currentWeek = new Piwik_Period_Week(Piwik_Date::today());
     $this->assertEqual($range->getNumberOfSubperiods(), 1);
     $this->assertEqual($range->toString(), array($currentWeek->toString()));
 }
Exemple #5
0
	protected function processOptimalSubperiods($startDate, $endDate)
	{
		while($startDate->isEarlier($endDate)
			|| $startDate == $endDate)
		{
			$endOfPeriod = null;
			
			$month = new Piwik_Period_Month($startDate);
			$endOfMonth = $month->getDateEnd();
			$startOfMonth = $month->getDateStart();
			if($startDate == $startOfMonth
				&& ($endOfMonth->isEarlier($endDate)
					|| $endOfMonth == $endDate
					|| $endOfMonth->isLater($this->today)
					)
				// We don't use the month if 
				// the end day is in this month, is before today, and month not finished
				&& !($endDate->isEarlier($this->today)
					&& $this->today->compareMonth($endOfMonth) == 0)
			)
			{
				$this->addSubperiod($month);
				$endOfPeriod = $endOfMonth;
			}
			else
			{
				// From start date,
				//  Process end of week
				$week = new Piwik_Period_Week($startDate);
				$startOfWeek = $week->getDateStart();
				$endOfWeek = $week->getDateEnd();

				$useMonthsNextIteration = $startDate->addPeriod(2, 'month')->setDay(1)->isEarlier($endDate);
				if($useMonthsNextIteration
					&& $endOfWeek->isLater($endOfMonth))
				{
					$this->fillArraySubPeriods($startDate, $endOfMonth, 'day');
					$endOfPeriod = $endOfMonth;
				}
				//   If end of this week is later than end date, we use days
				elseif($endOfWeek->isLater($endDate)
						&& ($endOfWeek->isEarlier($this->today)
							|| $endDate->isEarlier($this->today))
				)
				{
					$this->fillArraySubPeriods($startDate, $endDate, 'day');
					break 1;
				}
				elseif($startOfWeek->isEarlier($startDate)
					&& $endOfWeek->isEarlier($this->today))
				{
					$this->fillArraySubPeriods($startDate, $endOfWeek, 'day');
					$endOfPeriod = $endOfWeek;
				}
				else
				{
					$this->addSubperiod($week);
					$endOfPeriod = $endOfWeek;
				}
			}
			$startDate = $endOfPeriod->addDay(1);
		}
	}
Exemple #6
0
 /**
  * @group Core
  * @group Period
  * @group Period_Week
  */
 public function testGetPrettyString()
 {
     Piwik_Translate::getInstance()->loadEnglishTranslation();
     $week = new Piwik_Period_Week(Piwik_Date::factory('2024-10-09'));
     $shouldBe = 'From 2024-10-07 to 2024-10-13';
     $this->assertEquals($shouldBe, $week->getPrettyString());
 }