add unit test for mail detection
This commit is contained in:
parent
441c600c90
commit
f47a4a8c15
|
@ -155,7 +155,7 @@ class Wizard extends LDAPUtility {
|
|||
* detects the most often used email attribute for users applying to the
|
||||
* user list filter. If a setting is already present that returns at least
|
||||
* one hit, the detection will be canceled.
|
||||
* @return bool
|
||||
* @return bool|string
|
||||
*/
|
||||
public function detectEmailAttribute() {
|
||||
if(!$this->checkRequirements(array('ldapHost',
|
||||
|
@ -189,6 +189,7 @@ class Wizard extends LDAPUtility {
|
|||
$this->result->addChange('ldap_email_attr', $winner);
|
||||
}
|
||||
|
||||
return $winner;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -63,7 +63,7 @@ class Test_Wizard extends \PHPUnit_Framework_TestCase {
|
|||
$access = $this->getMock('\OCA\user_ldap\lib\Access',
|
||||
$accMethods, array($connector, $lw, $um));
|
||||
|
||||
return array(new Wizard($conf, $lw, $access), $conf, $lw);
|
||||
return array(new Wizard($conf, $lw, $access), $conf, $lw, $access);
|
||||
}
|
||||
|
||||
private function prepareLdapWrapperForConnections(&$ldap) {
|
||||
|
@ -218,6 +218,142 @@ class Test_Wizard extends \PHPUnit_Framework_TestCase {
|
|||
unset($uidnumber);
|
||||
}
|
||||
|
||||
public function testDetectEmailAttributeAlreadySet() {
|
||||
list($wizard, $configuration, $ldap, $access)
|
||||
= $this->getWizardAndMocks();
|
||||
|
||||
$configuration->expects($this->any())
|
||||
->method('__get')
|
||||
->will($this->returnCallback(function ($name) {
|
||||
if($name === 'ldapEmailAttribute') {
|
||||
return 'myEmailAttribute';
|
||||
} else {
|
||||
//for requirement checks
|
||||
return 'let me pass';
|
||||
}
|
||||
}));
|
||||
|
||||
$access->expects($this->once())
|
||||
->method('countUsers')
|
||||
->will($this->returnValue(42));
|
||||
|
||||
$wizard->detectEmailAttribute();
|
||||
}
|
||||
|
||||
public function testDetectEmailAttributeOverrideSet() {
|
||||
list($wizard, $configuration, $ldap, $access)
|
||||
= $this->getWizardAndMocks();
|
||||
|
||||
$configuration->expects($this->any())
|
||||
->method('__get')
|
||||
->will($this->returnCallback(function ($name) {
|
||||
if($name === 'ldapEmailAttribute') {
|
||||
return 'myEmailAttribute';
|
||||
} else {
|
||||
//for requirement checks
|
||||
return 'let me pass';
|
||||
}
|
||||
}));
|
||||
|
||||
$access->expects($this->exactly(3))
|
||||
->method('combineFilterWithAnd')
|
||||
->will($this->returnCallback(function ($filterParts) {
|
||||
return str_replace('=*', '', array_pop($filterParts));
|
||||
}));
|
||||
|
||||
$access->expects($this->exactly(3))
|
||||
->method('countUsers')
|
||||
->will($this->returnCallback(function ($filter) {
|
||||
if($filter === 'myEmailAttribute') {
|
||||
return 0;
|
||||
} else if($filter === 'mail') {
|
||||
return 3;
|
||||
} else if($filter === 'mailPrimaryAddress') {
|
||||
return 17;
|
||||
}
|
||||
var_dump($filter);
|
||||
}));
|
||||
|
||||
$resultAttribute = $wizard->detectEmailAttribute();
|
||||
$this->assertSame('mailPrimaryAddress', $resultAttribute);
|
||||
}
|
||||
|
||||
public function testDetectEmailAttributeFind() {
|
||||
list($wizard, $configuration, $ldap, $access)
|
||||
= $this->getWizardAndMocks();
|
||||
|
||||
$configuration->expects($this->any())
|
||||
->method('__get')
|
||||
->will($this->returnCallback(function ($name) {
|
||||
if($name === 'ldapEmailAttribute') {
|
||||
return '';
|
||||
} else {
|
||||
//for requirement checks
|
||||
return 'let me pass';
|
||||
}
|
||||
}));
|
||||
|
||||
$access->expects($this->exactly(2))
|
||||
->method('combineFilterWithAnd')
|
||||
->will($this->returnCallback(function ($filterParts) {
|
||||
return str_replace('=*', '', array_pop($filterParts));
|
||||
}));
|
||||
|
||||
$access->expects($this->exactly(2))
|
||||
->method('countUsers')
|
||||
->will($this->returnCallback(function ($filter) {
|
||||
if($filter === 'myEmailAttribute') {
|
||||
return 0;
|
||||
} else if($filter === 'mail') {
|
||||
return 3;
|
||||
} else if($filter === 'mailPrimaryAddress') {
|
||||
return 17;
|
||||
}
|
||||
var_dump($filter);
|
||||
}));
|
||||
|
||||
$resultAttribute = $wizard->detectEmailAttribute();
|
||||
$this->assertSame('mailPrimaryAddress', $resultAttribute);
|
||||
}
|
||||
|
||||
public function testDetectEmailAttributeFindNothing() {
|
||||
list($wizard, $configuration, $ldap, $access)
|
||||
= $this->getWizardAndMocks();
|
||||
|
||||
$configuration->expects($this->any())
|
||||
->method('__get')
|
||||
->will($this->returnCallback(function ($name) {
|
||||
if($name === 'ldapEmailAttribute') {
|
||||
return 'myEmailAttribute';
|
||||
} else {
|
||||
//for requirement checks
|
||||
return 'let me pass';
|
||||
}
|
||||
}));
|
||||
|
||||
$access->expects($this->exactly(3))
|
||||
->method('combineFilterWithAnd')
|
||||
->will($this->returnCallback(function ($filterParts) {
|
||||
return str_replace('=*', '', array_pop($filterParts));
|
||||
}));
|
||||
|
||||
$access->expects($this->exactly(3))
|
||||
->method('countUsers')
|
||||
->will($this->returnCallback(function ($filter) {
|
||||
if($filter === 'myEmailAttribute') {
|
||||
return 0;
|
||||
} else if($filter === 'mail') {
|
||||
return 0;
|
||||
} else if($filter === 'mailPrimaryAddress') {
|
||||
return 0;
|
||||
}
|
||||
var_dump($filter);
|
||||
}));
|
||||
|
||||
$resultAttribute = $wizard->detectEmailAttribute();
|
||||
$this->assertSame('', $resultAttribute);
|
||||
}
|
||||
|
||||
public function testCumulativeSearchOnAttributeSkipReadDN() {
|
||||
// tests that there is no infinite loop, when skipping already processed
|
||||
// DNs (they can be returned multiple times for multiple filters )
|
||||
|
|
|
@ -85,7 +85,7 @@ class OC_Log_Owncloud {
|
|||
}
|
||||
$entry = json_encode($entry);
|
||||
$handle = @fopen(self::$logFile, 'a');
|
||||
@chmod(self::$logFile, 0640);
|
||||
// @chmod(self::$logFile, 0640);
|
||||
if ($handle) {
|
||||
fwrite($handle, $entry."\n");
|
||||
fclose($handle);
|
||||
|
|
Loading…
Reference in New Issue