189 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
 | 
						|
require_once 'testDataFileIterator.php';
 | 
						|
 | 
						|
class DateTest extends PHPUnit_Framework_TestCase
 | 
						|
{
 | 
						|
 | 
						|
    public function setUp()
 | 
						|
    {
 | 
						|
        if (!defined('PHPEXCEL_ROOT')) {
 | 
						|
            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
 | 
						|
        }
 | 
						|
        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
 | 
						|
	}
 | 
						|
 | 
						|
	public function testSetExcelCalendar()
 | 
						|
	{
 | 
						|
		$calendarValues = array(
 | 
						|
			PHPExcel_Shared_Date::CALENDAR_MAC_1904,
 | 
						|
			PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900,
 | 
						|
		);
 | 
						|
 | 
						|
		foreach($calendarValues as $calendarValue) {
 | 
						|
			$result = call_user_func(array('PHPExcel_Shared_Date','setExcelCalendar'),$calendarValue);
 | 
						|
			$this->assertTrue($result);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
    public function testSetExcelCalendarWithInvalidValue()
 | 
						|
	{
 | 
						|
		$unsupportedCalendar = '2012';
 | 
						|
		$result = call_user_func(array('PHPExcel_Shared_Date','setExcelCalendar'),$unsupportedCalendar);
 | 
						|
		$this->assertFalse($result);
 | 
						|
	}
 | 
						|
 | 
						|
    /**
 | 
						|
     * @dataProvider providerDateTimeExcelToPHP1900
 | 
						|
     */
 | 
						|
	public function testDateTimeExcelToPHP1900()
 | 
						|
	{
 | 
						|
		$result = call_user_func(
 | 
						|
			array('PHPExcel_Shared_Date','setExcelCalendar'),
 | 
						|
			PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900
 | 
						|
		);
 | 
						|
 | 
						|
		$args = func_get_args();
 | 
						|
		$expectedResult = array_pop($args);
 | 
						|
		if ($args[0] < 1) {
 | 
						|
			$expectedResult += gmmktime(0,0,0);
 | 
						|
		}
 | 
						|
		$result = call_user_func_array(array('PHPExcel_Shared_Date','ExcelToPHP'),$args);
 | 
						|
		$this->assertEquals($expectedResult, $result);
 | 
						|
	}
 | 
						|
 | 
						|
    public function providerDateTimeExcelToPHP1900()
 | 
						|
    {
 | 
						|
    	return new testDataFileIterator('rawTestData/Shared/DateTimeExcelToPHP1900.data');
 | 
						|
	}
 | 
						|
 | 
						|
    /**
 | 
						|
     * @dataProvider providerDateTimePHPToExcel1900
 | 
						|
     */
 | 
						|
	public function testDateTimePHPToExcel1900()
 | 
						|
	{
 | 
						|
		$result = call_user_func(
 | 
						|
			array('PHPExcel_Shared_Date','setExcelCalendar'),
 | 
						|
			PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900
 | 
						|
		);
 | 
						|
 | 
						|
		$args = func_get_args();
 | 
						|
		$expectedResult = array_pop($args);
 | 
						|
		$result = call_user_func_array(array('PHPExcel_Shared_Date','PHPToExcel'),$args);
 | 
						|
		$this->assertEquals($expectedResult, $result, NULL, 1E-5);
 | 
						|
	}
 | 
						|
 | 
						|
    public function providerDateTimePHPToExcel1900()
 | 
						|
    {
 | 
						|
    	return new testDataFileIterator('rawTestData/Shared/DateTimePHPToExcel1900.data');
 | 
						|
	}
 | 
						|
 | 
						|
    /**
 | 
						|
     * @dataProvider providerDateTimeFormattedPHPToExcel1900
 | 
						|
     */
 | 
						|
	public function testDateTimeFormattedPHPToExcel1900()
 | 
						|
	{
 | 
						|
		$result = call_user_func(
 | 
						|
			array('PHPExcel_Shared_Date','setExcelCalendar'),
 | 
						|
			PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900
 | 
						|
		);
 | 
						|
 | 
						|
		$args = func_get_args();
 | 
						|
		$expectedResult = array_pop($args);
 | 
						|
		$result = call_user_func_array(array('PHPExcel_Shared_Date','FormattedPHPToExcel'),$args);
 | 
						|
		$this->assertEquals($expectedResult, $result, NULL, 1E-5);
 | 
						|
	}
 | 
						|
 | 
						|
    public function providerDateTimeFormattedPHPToExcel1900()
 | 
						|
    {
 | 
						|
    	return new testDataFileIterator('rawTestData/Shared/DateTimeFormattedPHPToExcel1900.data');
 | 
						|
	}
 | 
						|
 | 
						|
    /**
 | 
						|
     * @dataProvider providerDateTimeExcelToPHP1904
 | 
						|
     */
 | 
						|
	public function testDateTimeExcelToPHP1904()
 | 
						|
	{
 | 
						|
		$result = call_user_func(
 | 
						|
			array('PHPExcel_Shared_Date','setExcelCalendar'),
 | 
						|
			PHPExcel_Shared_Date::CALENDAR_MAC_1904
 | 
						|
		);
 | 
						|
 | 
						|
		$args = func_get_args();
 | 
						|
		$expectedResult = array_pop($args);
 | 
						|
		if ($args[0] < 1) {
 | 
						|
			$expectedResult += gmmktime(0,0,0);
 | 
						|
		}
 | 
						|
		$result = call_user_func_array(array('PHPExcel_Shared_Date','ExcelToPHP'),$args);
 | 
						|
		$this->assertEquals($expectedResult, $result);
 | 
						|
	}
 | 
						|
 | 
						|
    public function providerDateTimeExcelToPHP1904()
 | 
						|
    {
 | 
						|
    	return new testDataFileIterator('rawTestData/Shared/DateTimeExcelToPHP1904.data');
 | 
						|
	}
 | 
						|
 | 
						|
    /**
 | 
						|
     * @dataProvider providerDateTimePHPToExcel1904
 | 
						|
     */
 | 
						|
	public function testDateTimePHPToExcel1904()
 | 
						|
	{
 | 
						|
		$result = call_user_func(
 | 
						|
			array('PHPExcel_Shared_Date','setExcelCalendar'),
 | 
						|
			PHPExcel_Shared_Date::CALENDAR_MAC_1904
 | 
						|
		);
 | 
						|
 | 
						|
		$args = func_get_args();
 | 
						|
		$expectedResult = array_pop($args);
 | 
						|
		$result = call_user_func_array(array('PHPExcel_Shared_Date','PHPToExcel'),$args);
 | 
						|
		$this->assertEquals($expectedResult, $result, NULL, 1E-5);
 | 
						|
	}
 | 
						|
 | 
						|
    public function providerDateTimePHPToExcel1904()
 | 
						|
    {
 | 
						|
    	return new testDataFileIterator('rawTestData/Shared/DateTimePHPToExcel1904.data');
 | 
						|
	}
 | 
						|
 | 
						|
    /**
 | 
						|
     * @dataProvider providerIsDateTimeFormatCode
 | 
						|
     */
 | 
						|
	public function testIsDateTimeFormatCode()
 | 
						|
	{
 | 
						|
		$args = func_get_args();
 | 
						|
		$expectedResult = array_pop($args);
 | 
						|
		$result = call_user_func_array(array('PHPExcel_Shared_Date','isDateTimeFormatCode'),$args);
 | 
						|
		$this->assertEquals($expectedResult, $result);
 | 
						|
	}
 | 
						|
 | 
						|
    public function providerIsDateTimeFormatCode()
 | 
						|
    {
 | 
						|
    	return new testDataFileIterator('rawTestData/Shared/DateTimeFormatCodes.data');
 | 
						|
	}
 | 
						|
 | 
						|
    /**
 | 
						|
     * @dataProvider providerDateTimeExcelToPHP1900Timezone
 | 
						|
     */
 | 
						|
	public function testDateTimeExcelToPHP1900Timezone()
 | 
						|
	{
 | 
						|
		$result = call_user_func(
 | 
						|
			array('PHPExcel_Shared_Date','setExcelCalendar'),
 | 
						|
			PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900
 | 
						|
		);
 | 
						|
 | 
						|
		$args = func_get_args();
 | 
						|
		$expectedResult = array_pop($args);
 | 
						|
		if ($args[0] < 1) {
 | 
						|
			$expectedResult += gmmktime(0,0,0);
 | 
						|
		}
 | 
						|
		$result = call_user_func_array(array('PHPExcel_Shared_Date','ExcelToPHP'),$args);
 | 
						|
		$this->assertEquals($expectedResult, $result);
 | 
						|
	}
 | 
						|
 | 
						|
    public function providerDateTimeExcelToPHP1900Timezone()
 | 
						|
    {
 | 
						|
    	return new testDataFileIterator('rawTestData/Shared/DateTimeExcelToPHP1900Timezone.data');
 | 
						|
	}
 | 
						|
 | 
						|
}
 |