mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-06 17:48:25 +01:00
Merge branch '4.0' of git@github.com:Dolibarr/dolibarr.git into develop
Conflicts: ChangeLog htdocs/comm/card.php
This commit is contained in:
25
ChangeLog
25
ChangeLog
@@ -41,6 +41,31 @@ Dolibarr better:
|
|||||||
- Method commande->deleteline($lindeid) has been replaced with commande->deleteline($user, $lineid).
|
- Method commande->deleteline($lindeid) has been replaced with commande->deleteline($user, $lineid).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
***** ChangeLog for 4.0.2 compared to 4.0.1 *****
|
||||||
|
FIX: #5340
|
||||||
|
FIX: #5779
|
||||||
|
FIX: #5849
|
||||||
|
FIX: #5866
|
||||||
|
FIX: #5907
|
||||||
|
FIX: Addline if $txlocaltax1 is empty
|
||||||
|
FIX: Avoid error 500 if phpexcel is disabled
|
||||||
|
FIX: Avoid errors on debian
|
||||||
|
FIX: Can edit the customer ref even if order is not draft.
|
||||||
|
FIX: Documents not moved in new directory if we change reference of the task.
|
||||||
|
FIX: Error when CATEGORIE_RECURSIV_ADD is enabled and new category is child of an already linked to object
|
||||||
|
FIX: Extra fields of task not copied on project cloning
|
||||||
|
FIX: Hidden option PRODUCT_MAX_VISIBLE_PHOTO
|
||||||
|
FIX: Link on supplier invoice in widget was not clickable
|
||||||
|
FIX: margin tab on customer card must filter on current entity invoices
|
||||||
|
FIX: missing column into SQL on thirdparty list
|
||||||
|
FIX: Nber of attached files were not reported in event report of email sent
|
||||||
|
FIX: only show projects of related third if external user
|
||||||
|
FIX: Search provider by price
|
||||||
|
FIX: Solve backup when using mysqldump that return warning
|
||||||
|
FIX: Sql error in widget of product for stock alerts
|
||||||
|
FIX: updateligne if $txlocaltax1 is null
|
||||||
|
|
||||||
***** ChangeLog for 4.0.1 compared to 4.0.0 *****
|
***** ChangeLog for 4.0.1 compared to 4.0.0 *****
|
||||||
FIX: #2853
|
FIX: #2853
|
||||||
FIX: #2991
|
FIX: #2991
|
||||||
|
|||||||
@@ -159,6 +159,7 @@ $REL1 = $newbuild; $REL1 =~ s/-.*$//gi;
|
|||||||
if ($RPMSUBVERSION eq 'auto') { $RPMSUBVERSION = $newbuild; $RPMSUBVERSION =~ s/^.*-//gi; }
|
if ($RPMSUBVERSION eq 'auto') { $RPMSUBVERSION = $newbuild; $RPMSUBVERSION =~ s/^.*-//gi; }
|
||||||
$FILENAMETGZ2="$PROJECT-$MAJOR.$MINOR.$REL1";
|
$FILENAMETGZ2="$PROJECT-$MAJOR.$MINOR.$REL1";
|
||||||
$FILENAMERPM=$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm";
|
$FILENAMERPM=$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm";
|
||||||
|
$FILENAMERPMSRC=$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm";
|
||||||
# For Deb
|
# For Deb
|
||||||
$newbuild = $BUILD;
|
$newbuild = $BUILD;
|
||||||
$newbuild =~ s/(dev|alpha)/1/gi; # dev
|
$newbuild =~ s/(dev|alpha)/1/gi; # dev
|
||||||
@@ -733,8 +734,8 @@ if ($nboftargetok) {
|
|||||||
|
|
||||||
print "Remove target ".$FILENAMERPM."...\n";
|
print "Remove target ".$FILENAMERPM."...\n";
|
||||||
unlink("$NEWDESTI/".$FILENAMERPM);
|
unlink("$NEWDESTI/".$FILENAMERPM);
|
||||||
print "Remove target ".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm...\n";
|
print "Remove target ".$FILENAMERPMSRC."...\n";
|
||||||
unlink("$NEWDESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm");
|
unlink("$NEWDESTI/".$FILENAMERPMSRC);
|
||||||
|
|
||||||
print "Create directory $BUILDROOT/$FILENAMETGZ2\n";
|
print "Create directory $BUILDROOT/$FILENAMETGZ2\n";
|
||||||
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2`;
|
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2`;
|
||||||
@@ -1140,10 +1141,11 @@ if ($nboftargetok) {
|
|||||||
|
|
||||||
print "\nList of files to publish (BUILD=$BUILD)\n";
|
print "\nList of files to publish (BUILD=$BUILD)\n";
|
||||||
%filestoscansf=(
|
%filestoscansf=(
|
||||||
"$DESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml"=>'signatures',
|
"$DESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml"=>'none', # none means it won't be published on SF
|
||||||
"$DESTI/package_rpm_generic/$FILENAMERPM"=>'Dolibarr installer for Fedora-Redhat-Mandriva-Opensuse (DoliRpm)',
|
"$DESTI/package_rpm_generic/$FILENAMERPM"=>'Dolibarr installer for Fedora-Redhat-Mandriva-Opensuse (DoliRpm)',
|
||||||
|
"$DESTI/package_rpm_generic/$FILENAMERPMSRC"=>'none', # none means it won't be published on SF
|
||||||
"$DESTI/package_debian-ubuntu/${FILENAMEDEB}_all.deb"=>'Dolibarr installer for Debian-Ubuntu (DoliDeb)',
|
"$DESTI/package_debian-ubuntu/${FILENAMEDEB}_all.deb"=>'Dolibarr installer for Debian-Ubuntu (DoliDeb)',
|
||||||
"$DESTI/package_debian-ubuntu/${FILENAMEDEBSHORT}.orig.tar.gz"=>'none',
|
"$DESTI/package_debian-ubuntu/${FILENAMEDEBSHORT}.orig.tar.gz"=>'none', # none means it won't be published on SF
|
||||||
"$DESTI/package_windows/$FILENAMEEXEDOLIWAMP.exe"=>'Dolibarr installer for Windows (DoliWamp)',
|
"$DESTI/package_windows/$FILENAMEEXEDOLIWAMP.exe"=>'Dolibarr installer for Windows (DoliWamp)',
|
||||||
"$DESTI/standard/$FILENAMETGZ.tgz"=>'Dolibarr ERP-CRM',
|
"$DESTI/standard/$FILENAMETGZ.tgz"=>'Dolibarr ERP-CRM',
|
||||||
"$DESTI/standard/$FILENAMETGZ.zip"=>'Dolibarr ERP-CRM'
|
"$DESTI/standard/$FILENAMETGZ.zip"=>'Dolibarr ERP-CRM'
|
||||||
@@ -1151,6 +1153,7 @@ if ($nboftargetok) {
|
|||||||
%filestoscanstableasso=(
|
%filestoscanstableasso=(
|
||||||
"$DESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml"=>'signatures',
|
"$DESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml"=>'signatures',
|
||||||
"$DESTI/package_rpm_generic/$FILENAMERPM"=>'package_rpm_generic',
|
"$DESTI/package_rpm_generic/$FILENAMERPM"=>'package_rpm_generic',
|
||||||
|
"$DESTI/package_rpm_generic/$FILENAMERPMSRC"=>'package_rpm_generic',
|
||||||
"$DESTI/package_debian-ubuntu/${FILENAMEDEB}_all.deb"=>'package_debian-ubuntu',
|
"$DESTI/package_debian-ubuntu/${FILENAMEDEB}_all.deb"=>'package_debian-ubuntu',
|
||||||
"$DESTI/package_debian-ubuntu/${FILENAMEDEBSHORT}.orig.tar.gz"=>'package_debian-ubuntu',
|
"$DESTI/package_debian-ubuntu/${FILENAMEDEBSHORT}.orig.tar.gz"=>'package_debian-ubuntu',
|
||||||
"$DESTI/package_windows/$FILENAMEEXEDOLIWAMP.exe"=>'package_windows',
|
"$DESTI/package_windows/$FILENAMEEXEDOLIWAMP.exe"=>'package_windows',
|
||||||
@@ -1212,9 +1215,10 @@ if ($nboftargetok) {
|
|||||||
my $filesize = -s $file;
|
my $filesize = -s $file;
|
||||||
if (! $filesize) { next; }
|
if (! $filesize) { next; }
|
||||||
|
|
||||||
print "\n";
|
if ($target eq 'SF') {
|
||||||
|
if ($filestoscan{$file} eq 'none') {
|
||||||
if ($target eq 'SF' && $filestoscan{$file} ne 'none') {
|
next;
|
||||||
|
}
|
||||||
$destFolder="$NEWPUBLISH/$filestoscan{$file}/".$MAJOR.'.'.$MINOR.'.'.$BUILD;
|
$destFolder="$NEWPUBLISH/$filestoscan{$file}/".$MAJOR.'.'.$MINOR.'.'.$BUILD;
|
||||||
}
|
}
|
||||||
elsif ($target eq 'ASSO' and $NEWPUBLISH =~ /stable/) {
|
elsif ($target eq 'ASSO' and $NEWPUBLISH =~ /stable/) {
|
||||||
@@ -1231,6 +1235,8 @@ if ($nboftargetok) {
|
|||||||
$filenameonly =~ s/.*\/[^\/]+\/([^\/])+$/$1/;
|
$filenameonly =~ s/.*\/[^\/]+\/([^\/])+$/$1/;
|
||||||
$destFolder="$NEWPUBLISH/$dirnameonly";
|
$destFolder="$NEWPUBLISH/$dirnameonly";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print "\n";
|
||||||
print "Publish file ".$file." to ".$destFolder."\n";
|
print "Publish file ".$file." to ".$destFolder."\n";
|
||||||
|
|
||||||
# mkdir
|
# mkdir
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ AutoReqProv: no
|
|||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
An easy to use CRM & ERP open source/free software for small
|
An easy to use CRM & ERP open source/free software package for small
|
||||||
and medium companies, foundations or freelances. It includes different
|
and medium companies, foundations or freelances. It includes different
|
||||||
features for Enterprise Resource Planning (ERP) and Customer Relationship
|
features for Enterprise Resource Planning (ERP) and Customer Relationship
|
||||||
Management (CRM) but also for different other activities.
|
Management (CRM) but also for different other activities.
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ AutoReqProv: no
|
|||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
An easy to use CRM & ERP open source/free software for small
|
An easy to use CRM & ERP open source/free software package for small
|
||||||
and medium companies, foundations or freelances. It includes different
|
and medium companies, foundations or freelances. It includes different
|
||||||
features for Enterprise Resource Planning (ERP) and Customer Relationship
|
features for Enterprise Resource Planning (ERP) and Customer Relationship
|
||||||
Management (CRM) but also for different other activities.
|
Management (CRM) but also for different other activities.
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ AutoReqProv: no
|
|||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
An easy to use CRM & ERP open source/free software for small
|
An easy to use CRM & ERP open source/free software package for small
|
||||||
and medium companies, foundations or freelances. It includes different
|
and medium companies, foundations or freelances. It includes different
|
||||||
features for Enterprise Resource Planning (ERP) and Customer Relationship
|
features for Enterprise Resource Planning (ERP) and Customer Relationship
|
||||||
Management (CRM) but also for different other activities.
|
Management (CRM) but also for different other activities.
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ AutoReqProv: no
|
|||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
An easy to use CRM & ERP open source/free software for small
|
An easy to use CRM & ERP open source/free software package for small
|
||||||
and medium companies, foundations or freelances. It includes different
|
and medium companies, foundations or freelances. It includes different
|
||||||
features for Enterprise Resource Planning (ERP) and Customer Relationship
|
features for Enterprise Resource Planning (ERP) and Customer Relationship
|
||||||
Management (CRM) but also for different other activities.
|
Management (CRM) but also for different other activities.
|
||||||
|
|||||||
@@ -1786,12 +1786,14 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='')
|
|||||||
print '<td>';
|
print '<td>';
|
||||||
if (! empty($conf->accounting->enabled))
|
if (! empty($conf->accounting->enabled))
|
||||||
{
|
{
|
||||||
$accountancy_account = (! empty($obj->$fieldlist[$field]) ? $obj->$fieldlist[$field] : 0);
|
$fieldname = $fieldlist[$field];
|
||||||
|
$accountancy_account = (! empty($obj->$fieldname) ? $obj->$fieldname : 0);
|
||||||
print $formaccountancy->select_account($accountancy_account, $fieldlist[$field], 1, '', 1, 1, 'maxwidth200 maxwidthonsmartphone');
|
print $formaccountancy->select_account($accountancy_account, $fieldlist[$field], 1, '', 1, 1, 'maxwidth200 maxwidthonsmartphone');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<input type="text" size="10" class="flat" value="'.(isset($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:'').'" name="'.$fieldlist[$field].'">';
|
$fieldname = $fieldlist[$field];
|
||||||
|
print '<input type="text" size="10" class="flat" value="'.(isset($obj->$fieldname)?$obj->$fieldname:'').'" name="'.$fieldlist[$field].'">';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -535,7 +535,8 @@ if ($id)
|
|||||||
{
|
{
|
||||||
$showfield=1;
|
$showfield=1;
|
||||||
$align="left";
|
$align="left";
|
||||||
$valuetoshow=$obj->$fieldlist[$field];
|
$fieldname=$fieldlist[$field];
|
||||||
|
$valuetoshow=$obj->$fieldname;
|
||||||
|
|
||||||
// Show value for field
|
// Show value for field
|
||||||
if ($showfield) print '<td align="'.$align.'">'.$valuetoshow.'</td>';
|
if ($showfield) print '<td align="'.$align.'">'.$valuetoshow.'</td>';
|
||||||
@@ -613,14 +614,15 @@ function fieldListWebsites($fieldlist, $obj='', $tabname='', $context='')
|
|||||||
|
|
||||||
foreach ($fieldlist as $field => $value)
|
foreach ($fieldlist as $field => $value)
|
||||||
{
|
{
|
||||||
|
$fieldname = $fieldlist[$field];
|
||||||
if ($fieldlist[$field] == 'lang')
|
if ($fieldlist[$field] == 'lang')
|
||||||
{
|
{
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT,'lang');
|
print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT,'lang');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
elseif ($fieldlist[$field] == 'code' && isset($obj->$fieldlist[$field])) {
|
elseif ($fieldlist[$field] == 'code' && isset($obj->$fieldname)) {
|
||||||
print '<td><input type="text" class="flat" value="'.(! empty($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:'').'" size="10" name="'.$fieldlist[$field].'"></td>';
|
print '<td><input type="text" class="flat" value="'.(! empty($obj->$fieldname)?$obj->$fieldname:'').'" size="10" name="'.$fieldlist[$field].'"></td>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -631,7 +633,7 @@ function fieldListWebsites($fieldlist, $obj='', $tabname='', $context='')
|
|||||||
if ($fieldlist[$field]=='libelle') $size='size="32" ';
|
if ($fieldlist[$field]=='libelle') $size='size="32" ';
|
||||||
if ($fieldlist[$field]=='tracking') $size='size="92" ';
|
if ($fieldlist[$field]=='tracking') $size='size="92" ';
|
||||||
if ($fieldlist[$field]=='sortorder') $size='size="2" ';
|
if ($fieldlist[$field]=='sortorder') $size='size="2" ';
|
||||||
print '<input type="text" '.$size.' class="flat" value="'.(isset($obj->$fieldlist[$field])?$obj->$fieldlist[$field]:'').'" name="'.$fieldlist[$field].'">';
|
print '<input type="text" '.$size.' class="flat" value="'.(isset($obj->$fieldname)?$obj->$fieldname:'').'" name="'.$fieldlist[$field].'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
* Copyright (C) 2013 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
* Copyright (C) 2013 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
* Copyright (C) 2015 Frederic France <frederic.france@free.fr>
|
* Copyright (C) 2015 Frederic France <frederic.france@free.fr>
|
||||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
@@ -89,7 +88,7 @@ $hookmanager->initHooks(array('commcard','globalcard'));
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$parameters = array('socid' => $id);
|
$parameters = array('id' => $id, 'socid' => $id);
|
||||||
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some
|
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
|
||||||
@@ -440,7 +439,8 @@ if ($id > 0)
|
|||||||
{
|
{
|
||||||
$langs->load("members");
|
$langs->load("members");
|
||||||
$langs->load("users");
|
$langs->load("users");
|
||||||
print '<tr><td>'.$langs->trans("LinkedToDolibarrMember").'</td>';
|
|
||||||
|
print '<tr><td class="titlefield">'.$langs->trans("LinkedToDolibarrMember").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$adh=new Adherent($db);
|
$adh=new Adherent($db);
|
||||||
$result=$adh->fetch('','',$object->id);
|
$result=$adh->fetch('','',$object->id);
|
||||||
|
|||||||
@@ -390,7 +390,21 @@ function dol_buildpath($path, $type=0)
|
|||||||
|
|
||||||
foreach ($conf->file->dol_document_root as $key => $dirroot) // ex: array(["main"]=>"/home/main/htdocs", ["alt0"]=>"/home/dirmod/htdocs", ...)
|
foreach ($conf->file->dol_document_root as $key => $dirroot) // ex: array(["main"]=>"/home/main/htdocs", ["alt0"]=>"/home/dirmod/htdocs", ...)
|
||||||
{
|
{
|
||||||
if ($key == 'main') continue;
|
if ($key == 'main')
|
||||||
|
{
|
||||||
|
if ($type == 3)
|
||||||
|
{
|
||||||
|
global $dolibarr_main_url_root;
|
||||||
|
|
||||||
|
// Define $urlwithroot
|
||||||
|
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
||||||
|
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||||
|
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
||||||
|
|
||||||
|
$res=(preg_match('/^http/i',$conf->file->dol_url_root[$key])?'':$urlwithroot).'/'.$path; // Test on start with http is for old conf syntax
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
preg_match('/^([^\?]+(\.css\.php|\.css|\.js\.php|\.js|\.png|\.jpg|\.php)?)/i',$path,$regs); // Take part before '?'
|
preg_match('/^([^\?]+(\.css\.php|\.css|\.js\.php|\.js|\.png|\.jpg|\.php)?)/i',$path,$regs); // Take part before '?'
|
||||||
if (! empty($regs[1]))
|
if (! empty($regs[1]))
|
||||||
{
|
{
|
||||||
@@ -414,7 +428,7 @@ function dol_buildpath($path, $type=0)
|
|||||||
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||||
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
||||||
|
|
||||||
$res=(preg_match('/^http/i',$conf->file->dol_url_root[$key])?'':$urlwithroot).$conf->file->dol_url_root[$key].'/'.$path;
|
$res=(preg_match('/^http/i',$conf->file->dol_url_root[$key])?'':$urlwithroot).$conf->file->dol_url_root[$key].'/'.$path; // Test on start with http is for old conf syntax
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,6 +119,32 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testDolBuildPath
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public function testDolBuildPath()
|
||||||
|
{
|
||||||
|
/*$tmp=dol_buildpath('/google/oauth2callback.php', 0);
|
||||||
|
var_dump($tmp);
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*$tmp=dol_buildpath('/google/oauth2callback.php', 1);
|
||||||
|
var_dump($tmp);
|
||||||
|
*/
|
||||||
|
|
||||||
|
$result=dol_buildpath('/google/oauth2callback.php', 2);
|
||||||
|
print __METHOD__." result=".$result."\n";
|
||||||
|
$this->assertStringStartsWith('http', $result);
|
||||||
|
|
||||||
|
$result=dol_buildpath('/google/oauth2callback.php', 3);
|
||||||
|
print __METHOD__." result=".$result."\n";
|
||||||
|
$this->assertStringStartsWith('http', $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* testGetBrowserInfo
|
* testGetBrowserInfo
|
||||||
*
|
*
|
||||||
@@ -1009,5 +1035,5 @@ class FunctionsLibTest extends PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user