|
|
|
@ -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 ) |
|
|
|
|