/** * @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); }
/** * @group Core * @group Period * @group Period_Range */ public function testRangePreviousmonth() { $range = new Piwik_Period_Range('month', 'previous10'); $end = Piwik_Date::today(); $end = $end->subMonth(1); $correct = array(); for ($i = 0; $i < 10; $i++) { $date = $end->subMonth($i); $week = new Piwik_Period_Month($date); $correct[] = $week->toString(); } $correct = array_reverse($correct); $this->assertEquals(10, $range->getNumberOfSubperiods()); $this->assertEquals($correct, $range->toString()); }
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); } }
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); } }
/** * @group Core * @group Period * @group Period_Month */ public function testGetPrettyString() { Piwik_Translate::getInstance()->loadEnglishTranslation(); $month = new Piwik_Period_Month(Piwik_Date::factory('2024-10-09')); $shouldBe = '2024-10'; $this->assertEquals($shouldBe, $month->getPrettyString()); }
function test_range_previousmonth() { $range = new Piwik_Period_Range('month', 'previous10'); $end = Piwik_Date::today(); $end = $end->subMonth(1); $correct = array(); for ($i = 0; $i < 10; $i++) { $date = $end->subMonth($i); $week = new Piwik_Period_Month($date); $correct[] = $week->toString(); } $correct = array_reverse($correct); $this->assertEqual($range->getNumberOfSubperiods(), 10); $this->assertEqual($range->isFinished(), true); $this->assertEqual($range->toString(), $correct); }