X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=spam%2FSpamPickupTest.php;h=8f0d5ecc9d6741af5bd4dbab23f6c359f5628301;hb=30c3c44fbc63109699f889c5eaa2776de603e82b;hp=f61f7255ca16cfc1c6b9a39d05b959f4f07e046c;hpb=ee6562eb36bf1667b140c383cf8b419d679b5e2a;p=pukiwiki%2Fpukiwiki_sandbox.git diff --git a/spam/SpamPickupTest.php b/spam/SpamPickupTest.php index f61f725..8f0d5ec 100644 --- a/spam/SpamPickupTest.php +++ b/spam/SpamPickupTest.php @@ -1,5 +1,5 @@ setup_string_null() as $key => $value){ $this->assertEquals('', host_normalize($value), $key); } @@ -62,8 +62,12 @@ class SpamPickupTest extends PHPUnit_TestCase // Hostname is case-insensitive $this->assertEquals('example.org', host_normalize('ExAMPle.ORG')); - // Cut 'www' (destructive) + // Cut 'www' with traditional ASCII-based FQDN (destructive) $this->assertEquals('example.org', host_normalize('WWW.example.org')); + + // Don't cut 'www' with Non-ASCII-based string such as IDN + $this->assertEquals("www.example.org\0foobar", + host_normalize("WWW.example.org\0foobar")); } function testFunc_port_normalize() @@ -307,6 +311,11 @@ EOF; $results = uri_pickup_normalize(uri_pickup($test_string)); $this->assertEquals('backslash.org', $results[0]['host']); + // Divider: percent-encoded + //$test_string = ' http%3A%2F%5Cpercent-encoded.org%5Cfobar.html '; + //$results = uri_pickup_normalize(uri_pickup($test_string)); + //$this->assertEquals('percent-encoded.org', $results[0]['host']); + // Host: Underscore $test_string = ' http://under_score.org/fobar.html '; $results = uri_pickup_normalize(uri_pickup($test_string)); @@ -348,6 +357,26 @@ EOF; $this->assertEquals('foo.html', $results[0]['file']); } + function testFunc_spam_uri_pickup() + { + // Divider: percent-encoded + $test_string = ' http://victim.example.org/http%3A%2F%5Cnasty.example.org '; + $results = spam_uri_pickup($test_string); + $this->assertEquals('victim.example.org', $results[0]['host']); + $this->assertEquals('nasty.example.org', $results[1]['host']); + + // Domain exposure (site:) + $test_string = ' http://search.example.org/?q=%20site:nasty.example.org '; + $results = spam_uri_pickup($test_string); + $this->assertEquals('nasty.example.org', $results[0]['host']); + $this->assertEquals('search.example.org', $results[1]['host']); + + // Domain exposure (%20site:) + $test_string = ' http://search2.example.org/?q=%20site:nasty2.example.org '; + $results = spam_uri_pickup($test_string); + $this->assertEquals('nasty2.example.org', $results[0]['host']); + $this->assertEquals('search2.example.org', $results[1]['host']); + } } ?> \ No newline at end of file