[dev] [commits] Horde branch develop updated. 2cd26a26e02a3c15e50c6a7bbf2f59397288f9bf

Jan Schneider jan at horde.org
Wed Aug 29 15:05:23 UTC 2012


Zitat von Michael M Slusarz <slusarz at horde.org>:

> Quoting Jan Schneider <jan at horde.org>:
>
>> Zitat von Michael M Slusarz <slusarz at horde.org>:
>>
>>> Quoting Jan Schneider <jan at horde.org>:
>>>
>>>> Zitat von Michael M Slusarz <slusarz at horde.org>:
>>>>
>>>>> Quoting Jan Schneider <jan at horde.org>:
>>>>>
>>>>>> commit a1d6e4df3fed121da78ca4a55a7131ac156785f8
>>>>>> Author: Jan Schneider <jan at horde.org>
>>>>>> Date:   Tue Aug 28 23:54:10 2012 +0200
>>>>>>
>>>>>> This won't work with some TLDs. Add failing test.
>>>>>>
>>>>>> framework/Mail/test/Horde/Mail/AddressTest.php |   14 +++++++++++++-
>>>>>> 1 files changed, 13 insertions(+), 1 deletions(-)
>>>>>>
>>>>>> http://git.horde.org/horde-git/-/commit/a1d6e4df3fed121da78ca4a55a7131ac156785f8
>>>>>
>>>>> Your tests are incorrect.  The documentation clearly states that  
>>>>> base_domain returns the TLD + 1 subdomain level only.
>>>>>
>>>>> Your tests indicate that base_domain may be of dubious (or no)  
>>>>> usefulness.  But it is not a failing test.
>>>>
>>>> The documentation might say that, but that's not what the  
>>>> property or method name that you used in the latest revision  
>>>> implies. And it's useless for the purpose you made this for.
>>>
>>> As (hopefully) was eventually seen, this was already replaced by  
>>> the matchDomain() method.
>>
>> That's what I meant with "method name". It still doesn't work as  
>> expected, e.g. with co.uk domains.
>
> Sure it does.  There's not an explicit 'co.uk' test in the unit  
> tests, but I can verify that this works:
>
> $address = new Horde_Mail_Rfc822_Address('Test <test at foo.test.co.uk>');
> $this->assertTrue($address->matchDomain('test.co.uk'));
>
> This is correct given the method description of matchDomain():
>
>     /**
>      * Do a case-insensitive match on the address for a given domain.
>      * Matches as many parts of the subdomain in the address as is given in
>      * the input.
>      *
>      * @param string $domain  Domain to match.
>      *
>      * @return boolean  True if the address matches the given domain.
>      */
>
> The address is test at foo.test.co.uk.  This is address is in the  
> domain 'test.co.uk'.  So matchDomain() should (and does) return true.

It's not about false negatives but false positives, which we care  
about in this our use case. See my committed test.
-- 
Jan Schneider
The Horde Project
http://www.horde.org/



More information about the dev mailing list