diff --git a/installation/sql/mysql/joomla.sql b/installation/sql/mysql/joomla.sql index 22735d839f..e1d123bac8 100644 --- a/installation/sql/mysql/joomla.sql +++ b/installation/sql/mysql/joomla.sql @@ -341,7 +341,6 @@ INSERT INTO `#__extensions` (`extension_id`, `name`, `type`, `element`, `folder` (316, 'mod_tags_popular', 'module', 'mod_tags_popular', '', 0, 1, 1, 0, '', '{"maximum":"5","timeframe":"alltime","owncache":"1"}', '', '', 0, '0000-00-00 00:00:00', 0, 0), (317, 'mod_tags_similar', 'module', 'mod_tags_similar', '', 0, 1, 1, 0, '', '{"maximum":"5","matchtype":"any","owncache":"1"}', '', '', 0, '0000-00-00 00:00:00', 0, 0), (401, 'plg_authentication_joomla', 'plugin', 'joomla', 'authentication', 0, 1, 1, 1, '', '', '', '', 0, '0000-00-00 00:00:00', 0, 0), -(402, 'plg_authentication_ldap', 'plugin', 'ldap', 'authentication', 0, 0, 1, 0, '', '{"host":"","port":"389","use_ldapV3":"0","negotiate_tls":"0","no_referrals":"0","auth_method":"bind","base_dn":"","search_string":"","users_dn":"","username":"admin","password":"bobby7","ldap_fullname":"fullName","ldap_email":"mail","ldap_uid":"uid"}', '', '', 0, '0000-00-00 00:00:00', 3, 0), (404, 'plg_content_emailcloak', 'plugin', 'emailcloak', 'content', 0, 1, 1, 0, '', '{"mode":"1"}', '', '', 0, '0000-00-00 00:00:00', 1, 0), (406, 'plg_content_loadmodule', 'plugin', 'loadmodule', 'content', 0, 1, 1, 0, '', '{"style":"xhtml"}', '', '', 0, '2011-09-18 15:22:50', 0, 0), (407, 'plg_content_pagebreak', 'plugin', 'pagebreak', 'content', 0, 1, 1, 0, '', '{"title":"1","multipage_toc":"1","showall":"1"}', '', '', 0, '0000-00-00 00:00:00', 4, 0), diff --git a/libraries/joomla/client/ldap.php b/libraries/joomla/client/ldap.php deleted file mode 100644 index 7838e08b8f..0000000000 --- a/libraries/joomla/client/ldap.php +++ /dev/null @@ -1,683 +0,0 @@ -get($var); - - if ($param) - { - $this->$var = $param; - } - } - } - } - } - - /** - * Connect to server - * - * @return boolean True if successful - * - * @since 12.1 - */ - public function connect() - { - if ($this->host == '') - { - return false; - } - - $this->_resource = @ ldap_connect($this->host, $this->port); - - if ($this->_resource) - { - if ($this->use_ldapV3) - { - if (!@ldap_set_option($this->_resource, LDAP_OPT_PROTOCOL_VERSION, 3)) - { - return false; - } - } - - if (!@ldap_set_option($this->_resource, LDAP_OPT_REFERRALS, (int) $this->no_referrals)) - { - return false; - } - - if ($this->negotiate_tls) - { - if (!@ldap_start_tls($this->_resource)) - { - return false; - } - } - - return true; - } - else - { - return false; - } - } - - /** - * Close the connection - * - * @return void - * - * @since 12.1 - */ - public function close() - { - @ ldap_close($this->_resource); - } - - /** - * Sets the DN with some template replacements - * - * @param string $username The username - * @param string $nosub ... - * - * @return void - * - * @since 12.1 - */ - public function setDN($username, $nosub = 0) - { - if ($this->users_dn == '' || $nosub) - { - $this->_dn = $username; - } - elseif (strlen($username)) - { - $this->_dn = str_replace('[username]', $username, $this->users_dn); - } - else - { - $this->_dn = ''; - } - } - - /** - * Get the DN - * - * @return string The current dn - * - * @since 12.1 - */ - public function getDN() - { - return $this->_dn; - } - - /** - * Anonymously binds to LDAP directory - * - * @return array - * - * @since 12.1 - */ - public function anonymous_bind() - { - $bindResult = @ldap_bind($this->_resource); - - return $bindResult; - } - - /** - * Binds to the LDAP directory - * - * @param string $username The username - * @param string $password The password - * @param string $nosub ... - * - * @return boolean - * - * @since 12.1 - */ - public function bind($username = null, $password = null, $nosub = 0) - { - if (is_null($username)) - { - $username = $this->username; - } - - if (is_null($password)) - { - $password = $this->password; - } - - $this->setDN($username, $nosub); - $bindResult = @ldap_bind($this->_resource, $this->getDN(), $password); - - return $bindResult; - } - - /** - * Perform an LDAP search using comma separated search strings - * - * @param string $search search string of search values - * - * @return array Search results - * - * @since 12.1 - */ - public function simple_search($search) - { - $results = explode(';', $search); - - foreach ($results as $key => $result) - { - $results[$key] = '(' . $result . ')'; - } - - return $this->search($results); - } - - /** - * Performs an LDAP search - * - * @param array $filters Search Filters (array of strings) - * @param string $dnoverride DN Override - * @param array $attributes An array of attributes to return (if empty, all fields are returned). - * - * @return array Multidimensional array of results - * - * @since 12.1 - */ - public function search(array $filters, $dnoverride = null, array $attributes = array()) - { - $result = array(); - - if ($dnoverride) - { - $dn = $dnoverride; - } - else - { - $dn = $this->base_dn; - } - - $resource = $this->_resource; - - foreach ($filters as $search_filter) - { - $search_result = @ldap_search($resource, $dn, $search_filter, $attributes); - - if ($search_result && ($count = @ldap_count_entries($resource, $search_result)) > 0) - { - for ($i = 0; $i < $count; $i++) - { - $result[$i] = array(); - - if (!$i) - { - $firstentry = @ldap_first_entry($resource, $search_result); - } - else - { - $firstentry = @ldap_next_entry($resource, $firstentry); - } - - // Load user-specified attributes - $result_array = @ldap_get_attributes($resource, $firstentry); - - // LDAP returns an array of arrays, fit this into attributes result array - foreach ($result_array as $ki => $ai) - { - if (is_array($ai)) - { - $subcount = $ai['count']; - $result[$i][$ki] = array(); - - for ($k = 0; $k < $subcount; $k++) - { - $result[$i][$ki][$k] = $ai[$k]; - } - } - } - - $result[$i]['dn'] = @ldap_get_dn($resource, $firstentry); - } - } - } - - return $result; - } - - /** - * Replace an entry and return a true or false result - * - * @param string $dn The DN which contains the attribute you want to replace - * @param string $attribute The attribute values you want to replace - * - * @return mixed result of comparison (true, false, -1 on error) - * - * @since 12.1 - */ - public function replace($dn, $attribute) - { - return @ldap_mod_replace($this->_resource, $dn, $attribute); - } - - /** - * Modifies an entry and return a true or false result - * - * @param string $dn The DN which contains the attribute you want to modify - * @param string $attribute The attribute values you want to modify - * - * @return mixed result of comparison (true, false, -1 on error) - * - * @since 12.1 - */ - public function modify($dn, $attribute) - { - return @ldap_modify($this->_resource, $dn, $attribute); - } - - /** - * Removes attribute value from given dn and return a true or false result - * - * @param string $dn The DN which contains the attribute you want to remove - * @param string $attribute The attribute values you want to remove - * - * @return mixed result of comparison (true, false, -1 on error) - * - * @since 12.1 - */ - public function remove($dn, $attribute) - { - $resource = $this->_resource; - - return @ldap_mod_del($resource, $dn, $attribute); - } - - /** - * Compare an entry and return a true or false result - * - * @param string $dn The DN which contains the attribute you want to compare - * @param string $attribute The attribute whose value you want to compare - * @param string $value The value you want to check against the LDAP attribute - * - * @return mixed result of comparison (true, false, -1 on error) - * - * @since 12.1 - */ - public function compare($dn, $attribute, $value) - { - return @ldap_compare($this->_resource, $dn, $attribute, $value); - } - - /** - * Read all or specified attributes of given dn - * - * @param string $dn The DN of the object you want to read - * - * @return mixed array of attributes or -1 on error - * - * @since 12.1 - */ - public function read($dn) - { - $base = substr($dn, strpos($dn, ',') + 1); - $cn = substr($dn, 0, strpos($dn, ',')); - $result = @ldap_read($this->_resource, $base, $cn); - - if ($result) - { - return @ldap_get_entries($this->_resource, $result); - } - else - { - return $result; - } - } - - /** - * Deletes a given DN from the tree - * - * @param string $dn The DN of the object you want to delete - * - * @return boolean Result of operation - * - * @since 12.1 - */ - public function delete($dn) - { - return @ldap_delete($this->_resource, $dn); - } - - /** - * Create a new DN - * - * @param string $dn The DN where you want to put the object - * @param array $entries An array of arrays describing the object to add - * - * @return boolean Result of operation - * - * @since 12.1 - */ - public function create($dn, array $entries) - { - return @ldap_add($this->_resource, $dn, $entries); - } - - /** - * Add an attribute to the given DN - * Note: DN has to exist already - * - * @param string $dn The DN of the entry to add the attribute - * @param array $entry An array of arrays with attributes to add - * - * @return boolean Result of operation - * - * @since 12.1 - */ - public function add($dn, array $entry) - { - return @ldap_mod_add($this->_resource, $dn, $entry); - } - - /** - * Rename the entry - * - * @param string $dn The DN of the entry at the moment - * @param string $newdn The DN of the entry should be (only cn=newvalue) - * @param string $newparent The full DN of the parent (null by default) - * @param boolean $deleteolddn Delete the old values (default) - * - * @return boolean Result of operation - * - * @since 12.1 - */ - public function rename($dn, $newdn, $newparent, $deleteolddn) - { - return @ldap_rename($this->_resource, $dn, $newdn, $newparent, $deleteolddn); - } - - /** - * Returns the error message - * - * @return string error message - * - * @since 12.1 - */ - public function getErrorMsg() - { - return @ldap_error($this->_resource); - } - - /** - * Converts a dot notation IP address to net address (e.g. for Netware, etc) - * - * @param string $ip IP Address (e.g. xxx.xxx.xxx.xxx) - * - * @return string Net address - * - * @since 12.1 - */ - public static function ipToNetAddress($ip) - { - $parts = explode('.', $ip); - $address = '1#'; - - foreach ($parts as $int) - { - $tmp = dechex($int); - - if (strlen($tmp) != 2) - { - $tmp = '0' . $tmp; - } - - $address .= '\\' . $tmp; - } - - return $address; - } - - /** - * Extract readable network address from the LDAP encoded networkAddress attribute. - * - * Please keep this document block and author attribution in place. - * - * Novell Docs, see: http://developer.novell.com/ndk/doc/ndslib/schm_enu/data/sdk5624.html#sdk5624 - * for Address types: http://developer.novell.com/ndk/doc/ndslib/index.html?page=/ndk/doc/ndslib/schm_enu/data/sdk4170.html - * LDAP Format, String: - * taggedData = uint32String "#" octetstring - * byte 0 = uint32String = Address Type: 0= IPX Address; 1 = IP Address - * byte 1 = char = "#" - separator - * byte 2+ = octetstring - the ordinal value of the address - * Note: with eDirectory 8.6.2, the IP address (type 1) returns - * correctly, however, an IPX address does not seem to. eDir 8.7 may correct this. - * Enhancement made by Merijn van de Schoot: - * If addresstype is 8 (UDP) or 9 (TCP) do some additional parsing like still returning the IP address - * - * @param string $networkaddress The network address - * - * @return array - * - * @author Jay Burrell, Systems & Networks, Mississippi State University - * @since 12.1 - */ - public static function LDAPNetAddr($networkaddress) - { - $addr = ""; - $addrtype = (int) substr($networkaddress, 0, 1); - - // Throw away bytes 0 and 1 which should be the addrtype and the "#" separator - $networkaddress = substr($networkaddress, 2); - - if (($addrtype == 8) || ($addrtype = 9)) - { - // TODO 1.6: If UDP or TCP, (TODO fill addrport and) strip portnumber information from address - $networkaddress = substr($networkaddress, (strlen($networkaddress) - 4)); - } - - $addrtypes = array( - 'IPX', - 'IP', - 'SDLC', - 'Token Ring', - 'OSI', - 'AppleTalk', - 'NetBEUI', - 'Socket', - 'UDP', - 'TCP', - 'UDP6', - 'TCP6', - 'Reserved (12)', - 'URL', - 'Count'); - $len = strlen($networkaddress); - - if ($len > 0) - { - for ($i = 0; $i < $len; $i++) - { - $byte = substr($networkaddress, $i, 1); - $addr .= ord($byte); - - if (($addrtype == 1) || ($addrtype == 8) || ($addrtype = 9)) - { - // Dot separate IP addresses... - $addr .= "."; - } - } - if (($addrtype == 1) || ($addrtype == 8) || ($addrtype = 9)) - { - // Strip last period from end of $addr - $addr = substr($addr, 0, strlen($addr) - 1); - } - } - else - { - $addr .= JText::_('JLIB_CLIENT_ERROR_LDAP_ADDRESS_NOT_AVAILABLE'); - } - return array('protocol' => $addrtypes[$addrtype], 'address' => $addr); - } - - /** - * Generates a LDAP compatible password - * - * @param string $password Clear text password to encrypt - * @param string $type Type of password hash, either md5 or SHA - * - * @return string Encrypted password - * - * @since 12.1 - */ - public static function generatePassword($password, $type = 'md5') - { - switch (strtolower($type)) - { - case 'sha': - $userpassword = '{SHA}' . base64_encode(pack('H*', sha1($password))); - break; - case 'md5': - default: - $userpassword = '{MD5}' . base64_encode(pack('H*', md5($password))); - break; - } - - return $userpassword; - } -} - -/** - * Deprecated class placeholder. You should use JClientLdap instead. - * - * @package Joomla.Platform - * @subpackage Client - * @since 11.1 - * @deprecated 12.3 (Platform) & 4.0 (CMS) - */ -class JLDAP extends JClientLdap -{ - /** - * Constructor - * - * @param object $configObj An object of configuration variables - * - * @since 11.1 - */ - public function __construct($configObj = null) - { - JLog::add('JLDAP is deprecated. Use JClientLdap instead.', JLog::WARNING, 'deprecated'); - parent::__construct($configObj); - } -} diff --git a/plugins/authentication/ldap/index.html b/plugins/authentication/ldap/index.html deleted file mode 100644 index 2efb97f319..0000000000 --- a/plugins/authentication/ldap/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/plugins/authentication/ldap/ldap.php b/plugins/authentication/ldap/ldap.php deleted file mode 100644 index 965586461d..0000000000 --- a/plugins/authentication/ldap/ldap.php +++ /dev/null @@ -1,165 +0,0 @@ -type = 'LDAP'; - - // Strip null bytes from the password - $credentials['password'] = str_replace(chr(0), '', $credentials['password']); - - // LDAP does not like Blank passwords (tries to Anon Bind which is bad) - if (empty($credentials['password'])) - { - $response->status = JAuthentication::STATUS_FAILURE; - $response->error_message = JText::_('JGLOBAL_AUTH_PASS_BLANK'); - - return false; - } - - // Load plugin params info - $ldap_email = $this->params->get('ldap_email'); - $ldap_fullname = $this->params->get('ldap_fullname'); - $ldap_uid = $this->params->get('ldap_uid'); - $auth_method = $this->params->get('auth_method'); - - $ldap = new JClientLdap($this->params); - - if (!$ldap->connect()) - { - $response->status = JAuthentication::STATUS_FAILURE; - $response->error_message = JText::_('JGLOBAL_AUTH_NO_CONNECT'); - - return; - } - - switch ($auth_method) - { - case 'search': - { - // Bind using Connect Username/password - // Force anon bind to mitigate misconfiguration like [#7119] - if (strlen($this->params->get('username'))) - { - $bindtest = $ldap->bind(); - } - else - { - $bindtest = $ldap->anonymous_bind(); - } - - if ($bindtest) - { - // Search for users DN - $binddata = $ldap->simple_search(str_replace("[search]", $credentials['username'], $this->params->get('search_string'))); - - if (isset($binddata[0]) && isset($binddata[0]['dn'])) - { - // Verify Users Credentials - $success = $ldap->bind($binddata[0]['dn'], $credentials['password'], 1); - - // Get users details - $userdetails = $binddata; - } - else - { - $response->status = JAuthentication::STATUS_FAILURE; - $response->error_message = JText::_('JGLOBAL_AUTH_USER_NOT_FOUND'); - } - } - else - { - $response->status = JAuthentication::STATUS_FAILURE; - $response->error_message = JText::_('JGLOBAL_AUTH_NO_BIND'); - } - } break; - - case 'bind': - { - // We just accept the result here - $success = $ldap->bind($credentials['username'], $credentials['password']); - - if ($success) - { - $userdetails = $ldap->simple_search(str_replace("[search]", $credentials['username'], $this->params->get('search_string'))); - } - else - { - $response->status = JAuthentication::STATUS_FAILURE; - $response->error_message = JText::_('JGLOBAL_AUTH_BIND_FAILED'); - } - } break; - } - - if (!$success) - { - $response->status = JAuthentication::STATUS_FAILURE; - - if (!strlen($response->error_message)) - { - $response->error_message = JText::_('JGLOBAL_AUTH_INCORRECT'); - } - } - else - { - // Grab some details from LDAP and return them - if (isset($userdetails[0][$ldap_uid][0])) - { - $response->username = $userdetails[0][$ldap_uid][0]; - } - - if (isset($userdetails[0][$ldap_email][0])) - { - $response->email = $userdetails[0][$ldap_email][0]; - } - - if (isset($userdetails[0][$ldap_fullname][0])) - { - $response->fullname = $userdetails[0][$ldap_fullname][0]; - } - else - { - $response->fullname = $credentials['username']; - } - - // Were good - So say so. - $response->status = JAuthentication::STATUS_SUCCESS; - $response->error_message = ''; - } - - $ldap->close(); - } -} diff --git a/plugins/authentication/ldap/ldap.xml b/plugins/authentication/ldap/ldap.xml deleted file mode 100644 index 0e18af5cc2..0000000000 --- a/plugins/authentication/ldap/ldap.xml +++ /dev/null @@ -1,132 +0,0 @@ - - - plg_authentication_ldap - Joomla! Project - November 2005 - Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. - GNU General Public License version 2 or later; see LICENSE.txt - admin@joomla.org - www.joomla.org - 3.0.0 - PLG_LDAP_XML_DESCRIPTION - - ldap.php - index.html - - - en-GB.plg_authentication_ldap.ini - en-GB.plg_authentication_ldap.sys.ini - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
diff --git a/tests/unit/stubs/database/jos_extensions.csv b/tests/unit/stubs/database/jos_extensions.csv index 44e50943e8..23037ae518 100644 --- a/tests/unit/stubs/database/jos_extensions.csv +++ b/tests/unit/stubs/database/jos_extensions.csv @@ -56,7 +56,6 @@ '316','mod_tags_popular','module','mod_tags_popular',,'0','1','1','0','{"name":"mod_tags_popular","type":"module","creationDate":"January 2013","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"3.1.0","description":"MOD_TAGS_POPULAR_XML_DESCRIPTION","group":""}','{"maximum":"5","timeframe":"alltime","owncache":"1"}',,,'0','0000-00-00 00:00:00','0','0' '317','mod_tags_similar','module','mod_tags_similar',,'0','1','1','0','{"name":"mod_tags_similar","type":"module","creationDate":"January 2013","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"3.1.0","description":"MOD_TAGS_SIMILAR_XML_DESCRIPTION","group":""}','{"maximum":"5","matchtype":"any","owncache":"1"}',,,'0','0000-00-00 00:00:00','0','0' '401','plg_authentication_joomla','plugin','joomla','authentication','0','1','1','1','{"name":"plg_authentication_joomla","type":"plugin","creationDate":"November 2005","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"3.0.0","description":"PLG_AUTH_JOOMLA_XML_DESCRIPTION","group":""}','{}',,,'0','0000-00-00 00:00:00','0','0' -'402','plg_authentication_ldap','plugin','ldap','authentication','0','0','1','0','{"name":"plg_authentication_ldap","type":"plugin","creationDate":"November 2005","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"3.0.0","description":"PLG_LDAP_XML_DESCRIPTION","group":""}','{"host":"","port":"389","use_ldapV3":"0","negotiate_tls":"0","no_referrals":"0","auth_method":"bind","base_dn":"","search_string":"","users_dn":"","username":"admin","password":"bobby7","ldap_fullname":"fullName","ldap_email":"mail","ldap_uid":"uid"}',,,'0','0000-00-00 00:00:00','3','0' '404','plg_content_emailcloak','plugin','emailcloak','content','0','1','1','0','{"name":"plg_content_emailcloak","type":"plugin","creationDate":"November 2005","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"3.0.0","description":"PLG_CONTENT_EMAILCLOAK_XML_DESCRIPTION","group":""}','{"mode":"1"}',,,'0','0000-00-00 00:00:00','1','0' '406','plg_content_loadmodule','plugin','loadmodule','content','0','1','1','0','{"name":"plg_content_loadmodule","type":"plugin","creationDate":"November 2005","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"3.0.0","description":"PLG_LOADMODULE_XML_DESCRIPTION","group":""}','{"style":"xhtml"}',,,'0','2011-09-18 15:22:50','0','0' '407','plg_content_pagebreak','plugin','pagebreak','content','0','1','1','0','{"name":"plg_content_pagebreak","type":"plugin","creationDate":"November 2005","author":"Joomla! Project","copyright":"Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved.","authorEmail":"admin@joomla.org","authorUrl":"www.joomla.org","version":"3.0.0","description":"PLG_CONTENT_PAGEBREAK_XML_DESCRIPTION","group":""}','{"title":"1","multipage_toc":"1","showall":"1"}',,,'0','0000-00-00 00:00:00','4','0' diff --git a/tests/unit/suites/libraries/joomla/client/JClientLdapTest.php b/tests/unit/suites/libraries/joomla/client/JClientLdapTest.php deleted file mode 100644 index 8bb58bef8e..0000000000 --- a/tests/unit/suites/libraries/joomla/client/JClientLdapTest.php +++ /dev/null @@ -1,313 +0,0 @@ -object = new JClientLdap; - } - - /** - * Test... - * - * @todo Implement testConnect(). - * - * @return void - */ - public function testConnect() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testClose(). - * - * @return void - */ - public function testClose() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testSetDN(). - * - * @return void - */ - public function testSetDN() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testGetDN(). - * - * @return void - */ - public function testGetDN() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testAnonymous_bind(). - * - * @return void - */ - public function testAnonymous_bind() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testBind(). - * - * @return void - */ - public function testBind() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testSimple_search(). - * - * @return void - */ - public function testSimple_search() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testSearch(). - * - * @return void - */ - public function testSearch() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testReplace(). - * - * @return void - */ - public function testReplace() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testModify(). - * - * @return void - */ - public function testModify() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testRemove(). - * - * @return void - */ - public function testRemove() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testCompare(). - * - * @return void - */ - public function testCompare() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testRead(). - * - * @return void - */ - public function testRead() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testDelete(). - * - * @return void - */ - public function testDelete() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testCreate(). - * - * @return void - */ - public function testCreate() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testAdd(). - * - * @return void - */ - public function testAdd() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testRename(). - * - * @return void - */ - public function testRename() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testGetErrorMsg(). - * - * @return void - */ - public function testGetErrorMsg() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testIpToNetAddress(). - * - * @return void - */ - public function testIpToNetAddress() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testLDAPNetAddr(). - * - * @return void - */ - public function testLDAPNetAddr() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } - - /** - * Test... - * - * @todo Implement testGeneratePassword(). - * - * @return void - */ - public function testGeneratePassword() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete('This test has not been implemented yet.'); - } -}