From 0b6f99df14b47ffcc8dc781c359851b976d50e91 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Tue, 13 Apr 2010 06:59:20 +0000 Subject: [PATCH] BUGFIX: Comment URL field check is now case insenstive. Included tests for various protocols. PATCH via simon_w. Ticket #4776 (from r97016) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@102706 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- code/sitefeatures/PageComment.php | 9 ++------- tests/PageCommentsTest.php | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/code/sitefeatures/PageComment.php b/code/sitefeatures/PageComment.php index e0981c3e..9067d0f7 100755 --- a/code/sitefeatures/PageComment.php +++ b/code/sitefeatures/PageComment.php @@ -150,16 +150,11 @@ class PageComment extends DataObject { $url = $this->CommenterURL; if($url) { - if(substr($url, 0, 8) != 'https://') { - if(substr($url, 0, 7) != 'http://') { - $url = $this->CommenterURL = 'http://' . $url; - } + if(strtolower(substr($url, 0, 8)) != 'https://' && strtolower(substr($url, 0, 7)) != 'http://') { + $this->CommenterURL = 'http://' . $url; } } - - $this->CommenterURL = $url; } - } diff --git a/tests/PageCommentsTest.php b/tests/PageCommentsTest.php index b4c08976..fa57b991 100644 --- a/tests/PageCommentsTest.php +++ b/tests/PageCommentsTest.php @@ -27,5 +27,21 @@ class PageCommentsTest extends FunctionalTest { $thirdComments = DataObject::get('PageComment', 'ParentID = '.$third->ID); $this->assertEquals($thirdComments->Count(), 3); } + + function testCommenterURLWrite() { + $comment = new PageComment(); + // We only care about the CommenterURL, so only set that + // Check a http and https URL. Add more test urls here as needed. + $protocols = array( + 'Http', + 'Https', + ); + $url = '://example.com'; + foreach($protocols as $protocol) { + $comment->CommenterURL = $protocol . $url; + // The protocol should stay as if, assuming it is valid + $comment->write(); + $this->assertEquals($comment->CommenterURL, $protocol . $url, $protocol . ':// is a valid protocol'); + } + } } -?>