2011-05-01 11:28:46 +02:00
< ? php
2014-03-13 09:20:05 +01:00
/* Copyright ( C ) 2010 - 2014 Laurent Destailleur < eldy @ users . sourceforge . net >
2015-04-23 10:35:08 +02:00
* Copyright ( C ) 2015 Juanjo Menent < jmenent @ 2 byte . es >
2011-05-01 11:28:46 +02:00
*
2012-03-25 14:25:32 +02:00
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
2013-01-16 15:36:08 +01:00
* the Free Software Foundation ; either version 3 of the License , or
2012-03-25 14:25:32 +02:00
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
2011-12-17 21:58:44 +01:00
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < http :// www . gnu . org / licenses />.
* or see http :// www . gnu . org /
2012-03-25 14:25:32 +02:00
*/
2011-05-01 11:28:46 +02:00
/**
2014-03-11 23:39:26 +01:00
* \file test / phpunit / FunctionsLibTest . php
2011-05-01 11:28:46 +02:00
* \ingroup test
* \brief PHPUnit test
* \remarks To run this script as CLI : phpunit filename . php
*/
global $conf , $user , $langs , $db ;
//define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver
2014-05-01 19:57:53 +02:00
//require_once 'PHPUnit/Autoload.php';
2015-02-25 16:47:34 +01:00
require_once dirname ( __FILE__ ) . '/../../htdocs/master.inc.php' ;
require_once dirname ( __FILE__ ) . '/../../htdocs/core/lib/date.lib.php' ;
if ( ! defined ( 'NOREQUIREUSER' )) define ( 'NOREQUIREUSER' , '1' );
if ( ! defined ( 'NOREQUIREDB' )) define ( 'NOREQUIREDB' , '1' );
if ( ! defined ( 'NOREQUIRESOC' )) define ( 'NOREQUIRESOC' , '1' );
if ( ! defined ( 'NOREQUIRETRAN' )) define ( 'NOREQUIRETRAN' , '1' );
if ( ! defined ( 'NOCSRFCHECK' )) define ( 'NOCSRFCHECK' , '1' );
if ( ! defined ( 'NOTOKENRENEWAL' )) define ( 'NOTOKENRENEWAL' , '1' );
if ( ! defined ( 'NOREQUIREMENU' )) define ( 'NOREQUIREMENU' , '1' ); // If there is no menu to show
if ( ! defined ( 'NOREQUIREHTML' )) define ( 'NOREQUIREHTML' , '1' ); // If we don't need to load the html.form.class.php
if ( ! defined ( 'NOREQUIREAJAX' )) define ( 'NOREQUIREAJAX' , '1' );
if ( ! defined ( " NOLOGIN " )) define ( " NOLOGIN " , '1' ); // If this page is public (can be called outside logged session)
2011-05-01 11:28:46 +02:00
/**
2011-09-23 14:21:00 +02:00
* Class for PHPUnit tests
2011-09-10 14:28:00 +02:00
*
2011-05-01 11:28:46 +02:00
* @ backupGlobals disabled
* @ backupStaticAttributes enabled
* @ remarks backupGlobals must be disabled to have db , conf , user and lang not erased .
*/
2014-03-11 23:39:26 +01:00
class FunctionsLibTest extends PHPUnit_Framework_TestCase
2011-05-01 11:28:46 +02:00
{
2011-12-17 16:44:48 +01:00
protected $savconf ;
protected $savuser ;
protected $savlangs ;
protected $savdb ;
/**
* Constructor
* We save global variables into local variables
*
* @ return CoreTest
*/
2012-07-30 17:17:33 +02:00
function __construct ()
2011-12-17 16:44:48 +01:00
{
//$this->sharedFixture
global $conf , $user , $langs , $db ;
$this -> savconf = $conf ;
$this -> savuser = $user ;
$this -> savlangs = $langs ;
$this -> savdb = $db ;
print __METHOD__ . " db->type= " . $db -> type . " user->id= " . $user -> id ;
//print " - db ".$db->db;
print " \n " ;
}
// Static methods
public static function setUpBeforeClass ()
2011-05-01 11:28:46 +02:00
{
2011-12-17 16:44:48 +01:00
global $conf , $user , $langs , $db ;
//$db->begin(); // This is to have all actions inside a transaction even if test launched without suite.
2011-05-01 11:28:46 +02:00
2011-12-17 16:44:48 +01:00
print __METHOD__ . " \n " ;
2011-05-01 11:28:46 +02:00
}
2015-01-06 17:54:36 +01:00
// tear down after class
2011-05-01 11:28:46 +02:00
public static function tearDownAfterClass ()
{
2011-12-17 16:44:48 +01:00
global $conf , $user , $langs , $db ;
//$db->rollback();
2011-05-01 11:28:46 +02:00
2011-12-17 16:44:48 +01:00
print __METHOD__ . " \n " ;
2011-05-01 11:28:46 +02:00
}
2012-02-06 00:07:48 +01:00
/**
* Init phpunit tests
*
* @ return void
*/
2011-05-01 11:28:46 +02:00
protected function setUp ()
{
2011-12-17 16:44:48 +01:00
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
2011-05-01 11:28:46 +02:00
2011-12-17 16:44:48 +01:00
print __METHOD__ . " \n " ;
2011-05-01 11:28:46 +02:00
}
2012-02-06 00:07:48 +01:00
/**
* End phpunit tests
*
* @ return void
*/
2011-05-01 11:28:46 +02:00
protected function tearDown ()
{
2011-12-17 16:44:48 +01:00
print __METHOD__ . " \n " ;
2011-05-01 11:28:46 +02:00
}
2012-02-29 19:41:12 +01:00
/**
2015-02-22 12:35:51 +01:00
* testGetBrowserInfo
2012-02-29 19:41:12 +01:00
*
* @ return void
*/
2015-02-22 12:35:51 +01:00
public function testGetBrowserInfo ()
2012-02-29 19:41:12 +01:00
{
2015-02-23 10:39:02 +01:00
// MSIE 5.0
$user_agent = 'Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt; KITV4 Wanadoo; KITV5 Wanadoo)' ;
2015-02-22 12:35:51 +01:00
$tmp = getBrowserInfo ( $user_agent );
2012-02-29 19:41:12 +01:00
$this -> assertEquals ( 'ie' , $tmp [ 'browsername' ]);
$this -> assertEquals ( '5.0' , $tmp [ 'browserversion' ]);
2015-02-25 16:41:51 +01:00
$this -> assertEmpty ( $tmp [ 'phone' ]);
2015-02-23 10:45:22 +01:00
$this -> assertFalse ( $tmp [ 'tablet' ]);
$this -> assertEquals ( 'classic' , $tmp [ 'layout' ]);
2015-02-22 12:35:51 +01:00
2015-02-23 10:39:02 +01:00
// Firefox 0.9.1
$user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5a) Gecko/20030728 Mozilla Firefox/0.9.1' ;
2015-02-22 12:35:51 +01:00
$tmp = getBrowserInfo ( $user_agent );
2012-02-29 19:41:12 +01:00
$this -> assertEquals ( 'firefox' , $tmp [ 'browsername' ]);
$this -> assertEquals ( '0.9.1' , $tmp [ 'browserversion' ]);
2015-02-25 16:41:51 +01:00
$this -> assertEmpty ( $tmp [ 'phone' ]);
2015-02-23 10:45:22 +01:00
$this -> assertFalse ( $tmp [ 'tablet' ]);
$this -> assertEquals ( 'classic' , $tmp [ 'layout' ]);
2015-02-22 12:35:51 +01:00
$user_agent = 'Mozilla/3.0 (Windows 98; U) Opera 6.03 [en]' ;
$tmp = getBrowserInfo ( $user_agent );
2012-02-29 19:41:12 +01:00
$this -> assertEquals ( 'opera' , $tmp [ 'browsername' ]);
$this -> assertEquals ( '6.03' , $tmp [ 'browserversion' ]);
2015-02-25 16:41:51 +01:00
$this -> assertEmpty ( $tmp [ 'phone' ]);
2015-02-23 10:45:22 +01:00
$this -> assertFalse ( $tmp [ 'tablet' ]);
$this -> assertEquals ( 'classic' , $tmp [ 'layout' ]);
2015-02-22 12:35:51 +01:00
$user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21' ;
$tmp = getBrowserInfo ( $user_agent );
2012-02-29 19:41:12 +01:00
$this -> assertEquals ( 'chrome' , $tmp [ 'browsername' ]);
$this -> assertEquals ( '19.0.1042.0' , $tmp [ 'browserversion' ]);
2015-02-25 16:41:51 +01:00
$this -> assertEmpty ( $tmp [ 'phone' ]);
2015-02-23 10:45:22 +01:00
$this -> assertFalse ( $tmp [ 'tablet' ]);
$this -> assertEquals ( 'classic' , $tmp [ 'layout' ]);
2015-02-22 12:35:51 +01:00
$user_agent = 'chrome (Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11)' ;
$tmp = getBrowserInfo ( $user_agent );
2012-02-29 20:51:44 +01:00
$this -> assertEquals ( 'chrome' , $tmp [ 'browsername' ]);
$this -> assertEquals ( '17.0.963.56' , $tmp [ 'browserversion' ]);
2015-02-25 16:41:51 +01:00
$this -> assertEmpty ( $tmp [ 'phone' ]);
2015-02-23 10:45:22 +01:00
$this -> assertFalse ( $tmp [ 'tablet' ]);
$this -> assertEquals ( 'classic' , $tmp [ 'layout' ]);
2015-02-22 12:35:51 +01:00
$user_agent = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1' ;
$tmp = getBrowserInfo ( $user_agent );
2012-02-29 19:41:12 +01:00
$this -> assertEquals ( 'safari' , $tmp [ 'browsername' ]);
$this -> assertEquals ( '533.21.1' , $tmp [ 'browserversion' ]);
2015-02-25 16:41:51 +01:00
$this -> assertEmpty ( $tmp [ 'phone' ]);
2015-02-23 10:45:22 +01:00
$this -> assertFalse ( $tmp [ 'tablet' ]);
$this -> assertEquals ( 'classic' , $tmp [ 'layout' ]);
2015-02-23 10:39:02 +01:00
//Internet Explorer 11
$user_agent = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko' ;
$tmp = getBrowserInfo ( $user_agent );
$this -> assertEquals ( 'ie' , $tmp [ 'browsername' ]);
$this -> assertEquals ( '11.0' , $tmp [ 'browserversion' ]);
2015-02-25 16:41:51 +01:00
$this -> assertEmpty ( $tmp [ 'phone' ]);
2015-02-23 10:45:22 +01:00
$this -> assertFalse ( $tmp [ 'tablet' ]);
$this -> assertEquals ( 'classic' , $tmp [ 'layout' ]);
2015-02-23 10:42:10 +01:00
//iPad
$user_agent = 'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25' ;
$tmp = getBrowserInfo ( $user_agent );
2015-02-23 10:45:22 +01:00
$this -> assertEquals ( 'safari' , $tmp [ 'browsername' ]);
$this -> assertEquals ( '8536.25' , $tmp [ 'browserversion' ]);
$this -> assertEquals ( 'ios' , $tmp [ 'browseros' ]);
$this -> assertEquals ( 'tablet' , $tmp [ 'layout' ]);
$this -> assertEquals ( 'iphone' , $tmp [ 'phone' ]);
2012-02-29 19:41:12 +01:00
}
2012-06-14 20:15:50 +02:00
2012-07-02 19:30:37 +02:00
/**
* testDolTextIsHtml
*
* @ return void
*/
public function testDolTextIsHtml ()
{
// True
$input = '<html>xxx</html>' ;
$after = dol_textishtml ( $input );
$this -> assertTrue ( $after );
$input = '<body>xxx</body>' ;
$after = dol_textishtml ( $input );
$this -> assertTrue ( $after );
$input = 'xxx <b>yyy</b> zzz' ;
$after = dol_textishtml ( $input );
$this -> assertTrue ( $after );
2014-05-07 19:06:15 +02:00
$input = 'text with <div>some div</div>' ;
$after = dol_textishtml ( $input );
$this -> assertTrue ( $after );
$input = 'text with HTML entities' ;
$after = dol_textishtml ( $input );
$this -> assertTrue ( $after );
2012-07-02 19:30:37 +02:00
$input = 'xxx<br>' ;
$after = dol_textishtml ( $input );
$this -> assertTrue ( $after );
2014-05-07 19:06:15 +02:00
$input = 'xxx<br >' ;
2012-07-02 19:30:37 +02:00
$after = dol_textishtml ( $input );
$this -> assertTrue ( $after );
2014-05-07 19:06:15 +02:00
$input = 'xxx<br style="eee">' ;
$after = dol_textishtml ( $input );
$this -> assertTrue ( $after );
$input = 'xxx<br style="eee" >' ;
2012-07-02 19:30:37 +02:00
$after = dol_textishtml ( $input );
$this -> assertTrue ( $after );
2014-05-24 14:57:41 +02:00
$input = '<h2>abc</h2>' ;
$after = dol_textishtml ( $input );
$this -> assertTrue ( $after );
2015-04-15 18:50:41 +02:00
$input = '<img id="abc" src="https://xxx.com/aaa/image.png" />' ;
2015-03-26 12:05:52 +01:00
$after = dol_textishtml ( $input );
$this -> assertTrue ( $after , 'Failure on test of img tag' );
2015-04-15 18:50:41 +02:00
$input = '<a class="azerty" href="https://xxx.com/aaa/image.png" />' ;
$after = dol_textishtml ( $input );
$this -> assertTrue ( $after , 'Failure on test of a tag' );
2012-07-02 19:30:37 +02:00
// False
$input = 'xxx < br>' ;
$after = dol_textishtml ( $input );
$this -> assertFalse ( $after );
2014-05-07 19:06:15 +02:00
$input = 'xxx <email@email.com>' ; // <em> is html, <em... is not
$after = dol_textishtml ( $input );
$this -> assertFalse ( $after );
$input = 'xxx <brstyle="ee">' ;
$after = dol_textishtml ( $input );
$this -> assertFalse ( $after );
2015-04-15 18:50:41 +02:00
$input = 'This is a text with html comments <!-- comment -->' ; // we suppose this is not enough to be html content
$after = dol_textishtml ( $input );
$this -> assertFalse ( $after );
2012-06-14 20:15:50 +02:00
}
2011-05-01 11:28:46 +02:00
/**
2012-02-12 16:41:43 +01:00
* testDolHtmlCleanLastBr
*
* @ return boolean
2011-05-01 11:28:46 +02:00
*/
2011-12-17 16:53:36 +01:00
public function testDolHtmlCleanLastBr ()
2011-05-01 11:28:46 +02:00
{
2014-01-10 01:25:28 +01:00
$input = " A string \n " ;
$after = dol_htmlcleanlastbr ( $input );
$this -> assertEquals ( " A string " , $after );
$input = " A string first \n A string second \n " ;
$after = dol_htmlcleanlastbr ( $input );
$this -> assertEquals ( " A string first \n A string second " , $after );
$input = " A string \n \n \n " ;
$after = dol_htmlcleanlastbr ( $input );
$this -> assertEquals ( " A string " , $after );
2011-05-01 11:28:46 +02:00
$input = " A string<br> " ;
$after = dol_htmlcleanlastbr ( $input );
2011-05-01 12:24:46 +02:00
$this -> assertEquals ( " A string " , $after );
2014-01-10 01:25:28 +01:00
2011-05-01 11:28:46 +02:00
$input = " A string first<br> \n A string second<br> " ;
$after = dol_htmlcleanlastbr ( $input );
2011-05-01 12:24:46 +02:00
$this -> assertEquals ( " A string first<br> \n A string second " , $after );
2014-01-10 01:25:28 +01:00
2011-05-01 11:38:38 +02:00
$input = " A string \n <br type= \" _moz \" /> \n " ;
2011-05-01 11:28:46 +02:00
$after = dol_htmlcleanlastbr ( $input );
2011-05-01 12:24:46 +02:00
$this -> assertEquals ( " A string " , $after );
2014-01-10 01:25:28 +01:00
2011-05-01 11:28:46 +02:00
$input = " A string \n <br><br /> \n \n " ;
$after = dol_htmlcleanlastbr ( $input );
2011-05-01 12:24:46 +02:00
$this -> assertEquals ( " A string " , $after );
2011-05-01 11:28:46 +02:00
return true ;
}
2014-05-07 19:06:15 +02:00
/**
* testDolConcat
*
* @ return boolean
*/
public function testDolConcat ()
{
$text1 = " A string 1 " ; $text2 = " A string 2 " ; // text 1 and 2 are text, concat need only \n
$after = dol_concatdesc ( $text1 , $text2 );
$this -> assertEquals ( " A string 1 \n A string 2 " , $after );
$text1 = " A<br>string 1 " ; $text2 = " A string 2 " ; // text 1 is html, concat need <br>\n
$after = dol_concatdesc ( $text1 , $text2 );
$this -> assertEquals ( " A<br>string 1<br> \n A string 2 " , $after );
$text1 = " A string 1 " ; $text2 = " A <b>string</b> 2 " ; // text 2 is html, concat need <br>\n
$after = dol_concatdesc ( $text1 , $text2 );
$this -> assertEquals ( " A string 1<br> \n A <b>string</b> 2 " , $after );
return true ;
}
/**
* testDolStringNohtmltag
*
* @ return boolean
*/
public function testDolStringNohtmltag ()
{
$text = " A \n string \n " ;
$after = dol_string_nohtmltag ( $text , 0 );
$this -> assertEquals ( " A \n string " , $after , " test1 " );
$text = " A <b>string<b> \n \n with html tag and '<' chars<br> \n " ;
$after = dol_string_nohtmltag ( $text , 0 );
$this -> assertEquals ( " A string \n \n with html tag and '<' chars " , $after , " test2 " );
$text = " A <b>string<b> \n \n with tag with < chars<br> \n " ;
$after = dol_string_nohtmltag ( $text , 1 );
$this -> assertEquals ( " A string with tag with < chars " , $after , " test3 " );
return true ;
}
2011-05-01 12:24:46 +02:00
/**
2012-02-12 16:41:43 +01:00
* testDolHtmlEntitiesBr
*
* @ return boolean
2011-05-01 12:24:46 +02:00
*/
2011-12-17 16:53:36 +01:00
public function testDolHtmlEntitiesBr ()
2011-05-01 12:24:46 +02:00
{
2014-01-10 01:25:28 +01:00
// Text not already HTML
$input = " A string \n with a é, &, < and >. " ;
$after = dol_htmlentitiesbr ( $input , 0 ); // Add <br> before \n
$this -> assertEquals ( " A string<br> \n with a é, &, < and >. " , $after );
$input = " A string \n with a é, &, < and >. " ;
$after = dol_htmlentitiesbr ( $input , 1 ); // Replace \n with <br>
$this -> assertEquals ( " A string<br>with a é, &, < and >. " , $after );
$input = " A string \n with a é, &, < and >. \n \n " ; // With some \n at end that should be cleaned
2011-05-01 12:24:46 +02:00
$after = dol_htmlentitiesbr ( $input , 0 ); // Add <br> before \n
$this -> assertEquals ( " A string<br> \n with a é, &, < and >. " , $after );
2014-01-10 01:25:28 +01:00
$input = " A string \n with a é, &, < and >. \n \n " ; // With some \n at end that should be cleaned
2011-05-01 12:24:46 +02:00
$after = dol_htmlentitiesbr ( $input , 1 ); // Replace \n with <br>
$this -> assertEquals ( " A string<br>with a é, &, < and >. " , $after );
2014-01-10 01:25:28 +01:00
// Text already HTML, so &,<,> should not be converted
$input = " A string<br> \n with a é, &, < and >. " ;
2011-05-01 12:24:46 +02:00
$after = dol_htmlentitiesbr ( $input );
$this -> assertEquals ( " A string<br> \n with a é, &, < and >. " , $after );
2014-01-10 01:25:28 +01:00
$input = " <li> \n A string with a é, &, < and >.</li> \n Another string " ;
2011-05-01 12:24:46 +02:00
$after = dol_htmlentitiesbr ( $input );
$this -> assertEquals ( " <li> \n A string with a é, &, < and >.</li> \n Another string " , $after );
2014-01-10 01:25:28 +01:00
$input = " A string<br> \n with a é, &, < and >.<br> " ; // With some <br> at end that should be cleaned
$after = dol_htmlentitiesbr ( $input );
$this -> assertEquals ( " A string<br> \n with a é, &, < and >. " , $after );
$input = " <li> \n A string with a é, &, < and >.</li> \n Another string<br> " ; // With some <br> at end that should be cleaned
$after = dol_htmlentitiesbr ( $input );
$this -> assertEquals ( " <li> \n A string with a é, &, < and >.</li> \n Another string " , $after );
// TODO Add test with param $removelasteolbr = 0
2011-05-01 12:24:46 +02:00
return true ;
}
2012-06-14 20:15:50 +02:00
2012-07-02 19:30:37 +02:00
/**
* testDolNbOfLinesBis
*
* @ return boolean
*/
public function testDolNbOfLinesBis ()
{
2012-06-15 00:15:59 +02:00
// This is not a html string so nb of lines depends on \n
2012-07-02 19:30:37 +02:00
$input = " A string \n with a é, &, < and > and bold tag. \n Third line " ;
$after = dol_nboflines_bis ( $input , 0 );
$this -> assertEquals ( $after , 3 );
2012-06-14 20:15:50 +02:00
2012-06-15 00:15:59 +02:00
// This is a html string so nb of lines depends on <br>
$input = " A string \n with a é, &, < and > and <b>bold</b> tag. \n Third line " ;
$after = dol_nboflines_bis ( $input , 0 );
$this -> assertEquals ( $after , 1 );
// This is a html string so nb of lines depends on <br>
2012-07-02 19:30:37 +02:00
$input = " A string<br>with a é, &, < and > and <b>bold</b> tag.<br>Third line " ;
$after = dol_nboflines_bis ( $input , 0 );
$this -> assertEquals ( $after , 3 );
return true ;
2011-12-17 16:53:36 +01:00
}
2012-06-14 20:15:50 +02:00
2011-12-17 16:44:48 +01:00
/**
2014-09-07 12:22:04 +02:00
* testDolUnaccent
*
* @ return boolean
*/
public function testDolUnaccent ()
{
// Text not already HTML
$input = " A string \n with a à ä é è ë ï ü ö ÿ, &, < and >. " ;
$after = dol_string_unaccent ( $input );
$this -> assertEquals ( " A string \n with a a a e e e i u o y, &, < and >. " , $after );
}
/**
* testDolUtf8Check
2012-02-12 16:41:43 +01:00
*
* @ return void
*/
public function testDolUtf8Check ()
{
// True
$result = utf8_check ( 'azerty' );
$this -> assertTrue ( $result );
$file = dirname ( __FILE__ ) . '/textutf8.txt' ;
$filecontent = file_get_contents ( $file );
$result = utf8_check ( $filecontent );
$this -> assertTrue ( $result );
$file = dirname ( __FILE__ ) . '/textiso.txt' ;
$filecontent = file_get_contents ( $file );
$result = utf8_check ( $filecontent );
$this -> assertFalse ( $result );
}
/**
* testDolTrunc
*
* @ return boolean
2011-12-17 16:44:48 +01:00
*/
public function testDolTrunc ()
{
// Default trunc (will add ... if truncation truncation or keep last char if only one char)
$input = " éeéeéeàa " ;
$after = dol_trunc ( $input , 3 );
$this -> assertEquals ( " éeé... " , $after );
$after = dol_trunc ( $input , 2 );
$this -> assertEquals ( " ée... " , $after );
$input = " éeé " ;
$after = dol_trunc ( $input , 3 );
$this -> assertEquals ( " éeé " , $after );
$after = dol_trunc ( $input , 2 );
$this -> assertEquals ( " éeé " , $after );
$after = dol_trunc ( $input , 1 );
$this -> assertEquals ( " é... " , $after );
// Trunc with no ...
$input = " éeéeéeàa " ;
$after = dol_trunc ( $input , 3 , 'right' , 'UTF-8' , 1 );
$this -> assertEquals ( " éeé " , $after );
$after = dol_trunc ( $input , 2 , 'right' , 'UTF-8' , 1 );
$this -> assertEquals ( " ée " , $after );
$input = " éeé " ;
$after = dol_trunc ( $input , 3 , 'right' , 'UTF-8' , 1 );
$this -> assertEquals ( " éeé " , $after );
$after = dol_trunc ( $input , 2 , 'right' , 'UTF-8' , 1 );
$this -> assertEquals ( " ée " , $after );
$after = dol_trunc ( $input , 1 , 'right' , 'UTF-8' , 1 );
$this -> assertEquals ( " é " , $after );
$input = " éeéeéeàa " ;
$after = dol_trunc ( $input , 4 , 'middle' );
$this -> assertEquals ( " ée...àa " , $after );
2011-05-01 12:24:46 +02:00
2011-12-17 16:44:48 +01:00
return true ;
}
2012-02-05 15:13:31 +01:00
/**
2012-02-06 00:07:48 +01:00
* testDolMkTime
*
* @ return void
2012-02-05 15:13:31 +01:00
*/
public function testDolMkTime ()
{
2014-03-21 16:22:41 +01:00
global $conf ;
2014-03-21 18:05:08 +01:00
$savtz = date_default_timezone_get ();
// Some test for UTC TZ
date_default_timezone_set ( 'UTC' );
// Check bad hours
2012-02-05 15:13:31 +01:00
$result = dol_mktime ( 25 , 0 , 0 , 1 , 1 , 1970 , 1 , 1 ); // Error (25 hours)
print __METHOD__ . " result= " . $result . " \n " ;
$this -> assertEquals ( '' , $result );
$result = dol_mktime ( 2 , 61 , 0 , 1 , 1 , 1970 , 1 , 1 ); // Error (61 minutes)
print __METHOD__ . " result= " . $result . " \n " ;
$this -> assertEquals ( '' , $result );
$result = dol_mktime ( 2 , 1 , 61 , 1 , 1 , 1970 , 1 , 1 ); // Error (61 seconds)
print __METHOD__ . " result= " . $result . " \n " ;
$this -> assertEquals ( '' , $result );
$result = dol_mktime ( 2 , 1 , 1 , 1 , 32 , 1970 , 1 , 1 ); // Error (day 32)
print __METHOD__ . " result= " . $result . " \n " ;
$this -> assertEquals ( '' , $result );
$result = dol_mktime ( 2 , 1 , 1 , 13 , 1 , 1970 , 1 , 1 ); // Error (month 13)
print __METHOD__ . " result= " . $result . " \n " ;
$this -> assertEquals ( '' , $result );
$result = dol_mktime ( 2 , 1 , 1 , 1 , 1 , 1970 , 1 ); // 1970-01-01 02:01:01 in GMT area -> 7261
print __METHOD__ . " result= " . $result . " \n " ;
$this -> assertEquals ( 7261 , $result );
2012-05-14 16:46:48 +02:00
$result = dol_mktime ( 2 , 0 , 0 , 1 , 1 , 1970 , 0 ); // 1970-01-01 02:00:00 = 7200 in local area Europe/Paris = 3600 GMT
2012-02-05 15:13:31 +01:00
print __METHOD__ . " result= " . $result . " \n " ;
2012-05-14 16:46:48 +02:00
$tz = getServerTimeZoneInt ( 'winter' ); // +1 in Europe/Paris at this time (this time is winter)
2014-03-21 16:22:41 +01:00
$this -> assertEquals ( 7200 - ( $tz * 3600 ), $result ); // 7200 if we are at greenwich winter, 7200-($tz*3600) at local winter
2014-03-21 18:05:08 +01:00
// Some test for local TZ Europe/Paris
date_default_timezone_set ( 'Europe/Paris' );
2014-04-16 15:16:33 +02:00
2014-03-21 16:22:41 +01:00
// Check that tz for paris in winter is used
$result = dol_mktime ( 2 , 0 , 0 , 1 , 1 , 1970 , 'server' ); // 1970-01-01 02:00:00 = 7200 in local area Europe/Paris = 3600 GMT
print __METHOD__ . " result= " . $result . " \n " ;
$this -> assertEquals ( 3600 , $result ); // 7200 if we are at greenwich winter, 3600 at Europe/Paris
2014-04-16 15:16:33 +02:00
2014-03-21 16:22:41 +01:00
// Check that daylight saving time is used
$result = dol_mktime ( 2 , 0 , 0 , 6 , 1 , 2014 , 0 ); // 2014-06-01 02:00:00 = 1401588000-3600(location)-3600(daylight) in local area Europe/Paris = 1401588000 GMT
print __METHOD__ . " result= " . $result . " \n " ;
$this -> assertEquals ( 1401588000 - 3600 - 3600 , $result ); // 1401588000 are at greenwich summer, 1401588000-3600(location)-3600(daylight) at Europe/Paris summer
2014-04-16 15:16:33 +02:00
2014-03-21 18:05:08 +01:00
date_default_timezone_set ( $savtz );
2012-02-06 05:31:19 +01:00
}
2012-06-17 23:27:17 +02:00
/**
* testDolEscapeJs
*
* @ return void
*/
public function testDolEscapeJs ()
{
$input = " x&<b>#</b>, \" ' " ; // " will be converted into '
$result = dol_escape_js ( $input );
2014-02-17 15:40:04 +01:00
$this -> assertEquals ( " x&<b>#</b>, \ ' \ ' " , $result , " Test mode=0 " );
$result = dol_escape_js ( $input , 1 );
$this -> assertEquals ( " x&<b>#</b>, \" \ ' " , $result , " Test mode=1 " );
$result = dol_escape_js ( $input , 2 );
$this -> assertEquals ( " x&<b>#</b>, \\ \" ' " , $result , " Test mode=2 " );
2012-06-17 23:27:17 +02:00
}
/**
* testDolEscapeHtmlTag
*
* @ return void
*/
public function testDolEscapeHtmlTag ()
{
$input = 'x&<b>#</b>,"' ; // & and " are converted into html entities, <b> are removed
$result = dol_escape_htmltag ( $input );
$this -> assertEquals ( 'x&#,"' , $result );
$input = 'x&<b>#</b>,"' ; // & and " are converted into html entities, <b> are not removed
$result = dol_escape_htmltag ( $input , 1 );
$this -> assertEquals ( 'x&<b>#</b>,"' , $result );
}
2012-10-31 01:45:48 +01:00
/**
* testDolFormatAddress
*
* @ return void
*/
public function testDolFormatAddress ()
{
global $conf , $user , $langs , $db ;
$conf = $this -> savconf ;
$user = $this -> savuser ;
$langs = $this -> savlangs ;
$db = $this -> savdb ;
$object = new Societe ( $db );
$object -> initAsSpecimen ();
$object -> country_code = 'FR' ;
$address = dol_format_address ( $object );
$this -> assertEquals ( " 21 jump street \n 99999 MyTown " , $address );
$object -> country_code = 'GB' ;
$address = dol_format_address ( $object );
$this -> assertEquals ( " 21 jump street \n MyTown, MyState \n 99999 " , $address );
$object -> country_code = 'US' ;
$address = dol_format_address ( $object );
2013-04-07 17:39:08 +02:00
$this -> assertEquals ( " 21 jump street \n MyTown, MyState, 99999 " , $address );
$object -> country_code = 'AU' ;
$address = dol_format_address ( $object );
2012-10-31 01:45:48 +01:00
$this -> assertEquals ( " 21 jump street \n MyTown, MyState, 99999 " , $address );
}
2012-08-05 13:07:17 +02:00
/**
* testImgPicto
*
* @ return void
*/
public function testImgPicto ()
{
2014-07-30 08:45:10 +02:00
$s = img_picto ( 'title' , 'user' );
2012-08-05 13:07:17 +02:00
print __METHOD__ . " s= " . $s . " \n " ;
$this -> assertContains ( 'theme' , $s , 'testImgPicto1' );
2014-07-30 08:45:10 +02:00
$s = img_picto ( 'title' , 'img.png' , 'style="float: right"' , 0 );
2012-08-05 13:07:17 +02:00
print __METHOD__ . " s= " . $s . " \n " ;
2013-01-16 15:54:07 +01:00
$this -> assertContains ( 'theme' , $s , 'testImgPicto2' );
$this -> assertContains ( 'style="float: right"' , $s , 'testImgPicto2' );
2012-08-05 13:07:17 +02:00
2014-07-30 08:45:10 +02:00
$s = img_picto ( 'title' , '/fullpath/img.png' , '' , 1 );
2012-08-05 13:07:17 +02:00
print __METHOD__ . " s= " . $s . " \n " ;
2014-07-30 08:45:10 +02:00
$this -> assertEquals ( '<img src="/fullpath/img.png" border="0" alt="" title="title">' , $s , 'testImgPicto3' );
2012-08-05 13:07:17 +02:00
2014-07-30 08:45:10 +02:00
$s = img_picto ( 'title' , '/fullpath/img.png' , '' , true );
2012-08-05 13:07:17 +02:00
print __METHOD__ . " s= " . $s . " \n " ;
2014-07-30 08:45:10 +02:00
$this -> assertEquals ( '<img src="/fullpath/img.png" border="0" alt="" title="title">' , $s , 'testImgPicto4' );
$s = img_picto ( 'title:alt' , '/fullpath/img.png' , '' , true );
print __METHOD__ . " s= " . $s . " \n " ;
$this -> assertEquals ( '<img src="/fullpath/img.png" border="0" alt="alt" title="title">' , $s , 'testImgPicto5' );
2012-08-05 13:07:17 +02:00
}
2012-02-06 05:31:19 +01:00
/**
* testDolNow
*
* @ return void
*/
public function testDolNow ()
{
$now = dol_now ( 'gmt' );
$nowtzserver = dol_now ( 'tzserver' );
2012-08-05 13:07:17 +02:00
print __METHOD__ . " getServerTimeZoneInt= " . ( getServerTimeZoneInt ( 'now' ) * 3600 ) . " \n " ;
2012-05-14 16:46:48 +02:00
$this -> assertEquals ( getServerTimeZoneInt ( 'now' ) * 3600 ,( $nowtzserver - $now ));
2012-02-05 15:13:31 +01:00
}
2012-02-12 16:41:43 +01:00
/**
* testVerifCond
*
* @ return void
*/
public function testVerifCond ()
{
$verifcond = verifCond ( '1==1' );
2014-05-24 14:57:41 +02:00
$this -> assertTrue ( $verifcond , 'Test a true comparison' );
2012-02-12 16:41:43 +01:00
$verifcond = verifCond ( '1==2' );
2014-05-24 14:57:41 +02:00
$this -> assertFalse ( $verifcond , 'Test a false comparison' );
2012-02-12 16:41:43 +01:00
$verifcond = verifCond ( '$conf->facture->enabled' );
2014-05-24 14:57:41 +02:00
$this -> assertTrue ( $verifcond , 'Test that conf property of a module report true when enabled' );
2012-02-12 16:41:43 +01:00
$verifcond = verifCond ( '$conf->moduledummy->enabled' );
2014-05-24 14:57:41 +02:00
$this -> assertFalse ( $verifcond , 'Test that conf property of a module report false when disabled' );
2012-02-12 16:41:43 +01:00
$verifcond = verifCond ( '' );
$this -> assertTrue ( $verifcond );
}
2012-04-29 11:42:30 +02:00
/**
* testGetDefaultTva
*
* @ return void
*/
public function testGetDefaultTva ()
{
global $conf , $user , $langs , $db ;
$this -> savconf = $conf ;
$this -> savuser = $user ;
$this -> savlangs = $langs ;
$this -> savdb = $db ;
2015-01-25 16:04:37 +01:00
// Sellers
2012-04-29 11:42:30 +02:00
$companyfrnovat = new Societe ( $db );
$companyfrnovat -> country_code = 'FR' ;
$companyfrnovat -> tva_assuj = 0 ;
$companyfr = new Societe ( $db );
$companyfr -> country_code = 'FR' ;
$companyfr -> tva_assuj = 1 ;
2015-01-25 16:04:37 +01:00
$companyfr -> tva_intra = 'FR9999' ;
2012-04-29 11:42:30 +02:00
2015-01-25 16:04:37 +01:00
// Buyers
2012-11-06 23:45:16 +01:00
$companymc = new Societe ( $db );
$companymc -> country_code = 'MC' ;
$companymc -> tva_assuj = 1 ;
2015-01-25 16:04:37 +01:00
$companyfr -> tva_intra = 'MC9999' ;
2012-04-29 11:42:30 +02:00
$companyit = new Societe ( $db );
$companyit -> country_code = 'IT' ;
$companyit -> tva_assuj = 1 ;
$companyit -> tva_intra = 'IT99999' ;
2015-01-25 16:04:37 +01:00
$companyde = new Societe ( $db );
$companyde -> country_code = 'DE' ;
$companyde -> tva_assuj = 1 ;
$companyde -> tva_intra = 'DE99999' ;
$notcompanyde = new Societe ( $db );
$notcompanyde -> country_code = 'DE' ;
$notcompanyde -> tva_assuj = 0 ;
$notcompanyde -> tva_intra = '' ;
$notcompanyde -> typent_code = 'TE_PRIVATE' ;
2012-04-29 11:42:30 +02:00
$companyus = new Societe ( $db );
$companyus -> country_code = 'US' ;
$companyus -> tva_assuj = 1 ;
$companyus -> tva_intra = '' ;
2015-01-25 16:04:37 +01:00
// Test RULE 0 (FR-DE)
2014-03-01 15:59:09 +01:00
// Not tested
// Test RULE 1
2012-11-06 23:45:16 +01:00
$vat = get_default_tva ( $companyfrnovat , $companymc , 0 );
2015-01-25 16:04:37 +01:00
$this -> assertEquals ( 0 , $vat , 'RULE 1' );
2012-04-29 11:42:30 +02:00
2014-03-01 15:59:09 +01:00
// Test RULE 2 (FR-FR)
2012-04-29 11:42:30 +02:00
$vat = get_default_tva ( $companyfr , $companyfr , 0 );
2015-01-25 16:04:37 +01:00
$this -> assertEquals ( 20 , $vat , 'RULE 2' );
2012-04-29 11:42:30 +02:00
2014-03-01 15:59:09 +01:00
// Test RULE 2 (FR-MC)
2012-11-06 23:45:16 +01:00
$vat = get_default_tva ( $companyfr , $companymc , 0 );
2015-01-25 16:04:37 +01:00
$this -> assertEquals ( 20 , $vat , 'RULE 2' );
2012-04-29 11:42:30 +02:00
2015-01-25 16:04:37 +01:00
// Test RULE 3 (FR-DE company)
2012-04-29 11:42:30 +02:00
$vat = get_default_tva ( $companyfr , $companyit , 0 );
2015-01-25 16:04:37 +01:00
$this -> assertEquals ( 0 , $vat , 'RULE 3' );
// Test RULE 4 (FR-DE not a company)
$vat = get_default_tva ( $companyfr , $notcompanyde , 0 );
$this -> assertEquals ( 20 , $vat , 'RULE 4' );
// Test RULE 5 (FR-US)
$vat = get_default_tva ( $companyfr , $companyus , 0 );
$this -> assertEquals ( 0 , $vat , 'RULE 5' );
// We do same tests but with option SERVICE_ARE_ECOMMERCE_200238EC on.
$conf -> global -> SERVICE_ARE_ECOMMERCE_200238EC = 1 ;
2012-04-29 11:42:30 +02:00
2015-01-25 16:04:37 +01:00
// Test RULE 1 (FR-US)
$vat = get_default_tva ( $companyfr , $companyus , 0 );
$this -> assertEquals ( 0 , $vat , 'RULE 1 ECOMMERCE_200238EC' );
// Test RULE 2 (FR-FR)
$vat = get_default_tva ( $companyfr , $companyfr , 0 );
$this -> assertEquals ( 20 , $vat , 'RULE 2 ECOMMERCE_200238EC' );
// Test RULE 3 (FR-DE company)
$vat = get_default_tva ( $companyfr , $companyde , 0 );
$this -> assertEquals ( 0 , $vat , 'RULE 3 ECOMMERCE_200238EC' );
// Test RULE 4 (FR-DE not a company)
$vat = get_default_tva ( $companyfr , $notcompanyde , 0 );
$this -> assertEquals ( 19 , $vat , 'RULE 4 ECOMMERCE_200238EC' );
2012-04-29 11:42:30 +02:00
2014-03-01 15:59:09 +01:00
// Test RULE 5 (FR-US)
2012-04-29 11:42:30 +02:00
$vat = get_default_tva ( $companyfr , $companyus , 0 );
2015-01-25 16:04:37 +01:00
$this -> assertEquals ( 0 , $vat , 'RULE 5 ECOMMERCE_200238EC' );
2012-04-29 11:42:30 +02:00
}
2012-11-06 23:45:16 +01:00
2013-01-16 15:54:07 +01:00
/**
* testGetDefaultTva
*
* @ return void
*/
public function testGetDefaultLocalTax ()
{
global $conf , $user , $langs , $db ;
$this -> savconf = $conf ;
$this -> savuser = $user ;
$this -> savlangs = $langs ;
$this -> savdb = $db ;
$companyfrnovat = new Societe ( $db );
$companyfrnovat -> country_code = 'FR' ;
$companyfrnovat -> tva_assuj = 0 ;
$companyfrnovat -> localtax1_assuj = 0 ;
2012-11-06 23:45:16 +01:00
$companyfrnovat -> localtax2_assuj = 0 ;
2013-01-16 15:54:07 +01:00
$companyes = new Societe ( $db );
$companyes -> country_code = 'ES' ;
$companyes -> tva_assuj = 1 ;
$companyes -> localtax1_assuj = 1 ;
$companyes -> localtax2_assuj = 1 ;
$companymc = new Societe ( $db );
$companymc -> country_code = 'MC' ;
$companymc -> tva_assuj = 1 ;
$companymc -> localtax1_assuj = 0 ;
$companymc -> localtax2_assuj = 0 ;
$companyit = new Societe ( $db );
$companyit -> country_code = 'IT' ;
$companyit -> tva_assuj = 1 ;
$companyit -> tva_intra = 'IT99999' ;
$companyit -> localtax1_assuj = 0 ;
$companyit -> localtax2_assuj = 0 ;
$notcompanyit = new Societe ( $db );
$notcompanyit -> country_code = 'IT' ;
$notcompanyit -> tva_assuj = 1 ;
$notcompanyit -> tva_intra = '' ;
$notcompanyit -> typent_code = 'TE_PRIVATE' ;
$notcompanyit -> localtax1_assuj = 0 ;
$notcompanyit -> localtax2_assuj = 0 ;
$companyus = new Societe ( $db );
$companyus -> country_code = 'US' ;
$companyus -> tva_assuj = 1 ;
$companyus -> tva_intra = '' ;
$companyus -> localtax1_assuj = 0 ;
$companyus -> localtax2_assuj = 0 ;
2012-11-06 23:45:16 +01:00
// Test RULE FR-MC
2013-01-16 15:54:07 +01:00
$vat1 = get_default_localtax ( $companyfrnovat , $companymc , 1 , 0 );
2012-11-06 23:45:16 +01:00
$vat2 = get_default_localtax ( $companyfrnovat , $companymc , 2 , 0 );
2013-01-16 15:54:07 +01:00
$this -> assertEquals ( 0 , $vat1 );
$this -> assertEquals ( 0 , $vat2 );
// Test RULE ES-ES
2012-11-06 23:45:16 +01:00
$vat1 = get_default_localtax ( $companyes , $companyes , 1 , 0 );
$vat2 = get_default_localtax ( $companyes , $companyes , 2 , 0 );
2013-01-16 15:54:07 +01:00
$this -> assertEquals ( 5.2 , $vat1 );
2015-04-23 10:35:08 +02:00
$this -> assertEquals ( - 19 , $vat2 );
2013-01-16 15:54:07 +01:00
// Test RULE ES-IT
$vat1 = get_default_localtax ( $companyes , $companyit , 1 , 0 );
2012-11-06 23:45:16 +01:00
$vat2 = get_default_localtax ( $companyes , $companyit , 2 , 0 );
2013-01-16 15:54:07 +01:00
$this -> assertEquals ( 0 , $vat1 );
$this -> assertEquals ( 0 , $vat2 );
// Test RULE ES-IT
$vat1 = get_default_localtax ( $companyes , $notcompanyit , 1 , 0 );
2012-11-06 23:45:16 +01:00
$vat2 = get_default_localtax ( $companyes , $notcompanyit , 2 , 0 );
2013-01-16 15:54:07 +01:00
$this -> assertEquals ( 0 , $vat1 );
$this -> assertEquals ( 0 , $vat2 );
// Test RULE FR-IT
// Not tested
// Test RULE ES-US
$vat1 = get_default_localtax ( $companyes , $companyus , 1 , 0 );
2012-11-06 23:45:16 +01:00
$vat2 = get_default_localtax ( $companyes , $companyus , 2 , 0 );
2013-01-16 15:54:07 +01:00
$this -> assertEquals ( 0 , $vat1 );
2012-11-06 23:45:16 +01:00
$this -> assertEquals ( 0 , $vat2 );
}
2014-04-16 15:16:33 +02:00
/**
* testDolExplodeIntoArray
*
* @ return void
*/
public function testDolExplodeIntoArray ()
{
$stringtoexplode = 'AA=B/B.CC=.EE=FF.HH=GG;.' ;
$tmp = dolExplodeIntoArray ( $stringtoexplode , '.' , '=' );
print __METHOD__ . " tmp= " . json_encode ( $tmp ) . " \n " ;
$this -> assertEquals ( '{"AA":"B\/B","CC":"","EE":"FF","HH":"GG;"}' , json_encode ( $tmp ));
}
2014-07-22 04:10:42 +02:00
/**
* dol_nl2br
*
* @ return void
*/
public function testDolNl2Br () {
//String to encode
$string = " a \n a " ;
$this -> assertEquals ( dol_nl2br ( $string ), " a<br> \n a " );
//With $forxml parameter
$this -> assertEquals ( dol_nl2br ( $string , 0 , 1 ), " a<br /> \n a " );
//Replacing \n by br
$this -> assertEquals ( dol_nl2br ( $string , 1 ), " a<br>a " );
//With $forxml parameter
$this -> assertEquals ( dol_nl2br ( $string , 1 , 1 ), " a<br />a " );
}
2014-11-30 15:24:39 +01:00
/**
* testDolPrice2Num
*
* @ return boolean
*/
public function testDolPrice2Num ()
2014-11-28 00:56:21 +01:00
{
2014-11-30 15:24:39 +01:00
$this -> assertEquals ( 1000 , price2num ( '1 000.0' ));
$this -> assertEquals ( 1000 , price2num ( '1 000' , 'MT' ));
$this -> assertEquals ( 1000 , price2num ( '1 000' , 'MU' ));
2015-01-25 16:04:37 +01:00
2014-11-28 00:56:21 +01:00
$this -> assertEquals ( 1000.123456 , price2num ( '1 000.123456' ));
// Round down
2014-11-30 15:24:39 +01:00
$this -> assertEquals ( 1000.12 , price2num ( '1 000.123452' , 'MT' ));
$this -> assertEquals ( 1000.12345 , price2num ( '1 000.123452' , 'MU' ), " Test MU " );
2014-11-28 00:56:21 +01:00
2014-11-30 15:24:39 +01:00
// Round up
$this -> assertEquals ( 1000.13 , price2num ( '1 000.125456' , 'MT' ));
$this -> assertEquals ( 1000.12546 , price2num ( '1 000.125456' , 'MU' ), " Test MU " );
2014-11-28 00:56:21 +01:00
// Text can't be converted
$this -> assertEquals ( '12.4$' , price2num ( '12.4$' ));
2014-11-30 15:24:39 +01:00
$this -> assertEquals ( '12r.4$' , price2num ( '12r.4$' ));
2015-01-25 16:04:37 +01:00
return true ;
2014-11-28 00:56:21 +01:00
}
2015-02-03 11:25:51 +01:00
/**
* testDolGetDate
*
* @ return boolean
*/
public function testDolGetDate ()
{
global $conf ;
$conf -> global -> MAIN_START_WEEK = 0 ;
$tmp = dol_getdate ( 1 ); // 1/1/1970 and 1 second = thirday
$this -> assertEquals ( 4 , $tmp [ 'wday' ]);
$tmp = dol_getdate ( 24 * 60 * 60 + 1 ); // 2/1/1970 and 1 second = friday
$this -> assertEquals ( 5 , $tmp [ 'wday' ]);
$conf -> global -> MAIN_START_WEEK = 1 ;
$tmp = dol_getdate ( 1 ); // 1/1/1970 and 1 second = thirday
$this -> assertEquals ( 4 , $tmp [ 'wday' ]);
$tmp = dol_getdate ( 24 * 60 * 60 + 1 ); // 2/1/1970 and 1 second = friday
$this -> assertEquals ( 5 , $tmp [ 'wday' ]);
return true ;
}
2011-05-01 11:28:46 +02:00
}