aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorArthurHoaro <arthur@hoa.ro>2015-09-18 13:26:36 +0200
committerArthurHoaro <arthur@hoa.ro>2015-11-26 20:14:38 +0100
commit90e5bd65c9d4a5d3d5cedfeaa1314f2a15df5227 (patch)
tree7a085b9aecaa92aa5076df01df78c39edd2acff5 /tests
parent986afb752bc57271e76935da9ed2df6ef8713cb7 (diff)
downloadShaarli-90e5bd65c9d4a5d3d5cedfeaa1314f2a15df5227.tar.gz
Shaarli-90e5bd65c9d4a5d3d5cedfeaa1314f2a15df5227.tar.zst
Shaarli-90e5bd65c9d4a5d3d5cedfeaa1314f2a15df5227.zip
URL encode links when a redirector is set.
Fixes #328 - URL encode links when a redirector is set * WARNING - template edit - new variable available : "real_url" Contains the final real url (redirected or any other change on original URL) * Don't redirect shaares link in RSS/Atom. * Affects links shaared in description. * Move text2clickable and keepMultipleSpaces to Utils.php + unit test UPDATE: * keepMultipleSpaces renamed to space2nbsp * space2nbsp improved to handle single space at line beginning * links in text description aren't 'nofollow' anymore
Diffstat (limited to 'tests')
-rw-r--r--tests/LinkDBTest.php23
-rw-r--r--tests/UtilsTest.php37
-rw-r--r--tests/plugins/PlugQrcodeTest.php4
3 files changed, 62 insertions, 2 deletions
diff --git a/tests/LinkDBTest.php b/tests/LinkDBTest.php
index 8929713d..ff917f6d 100644
--- a/tests/LinkDBTest.php
+++ b/tests/LinkDBTest.php
@@ -511,4 +511,27 @@ class LinkDBTest extends PHPUnit_Framework_TestCase
511 sizeof(self::$publicLinkDB->filterFullText('free software')) 511 sizeof(self::$publicLinkDB->filterFullText('free software'))
512 ); 512 );
513 } 513 }
514
515 /**
516 * Test real_url without redirector.
517 */
518 public function testLinkRealUrlWithoutRedirector()
519 {
520 $db = new LinkDB(self::$testDatastore, false, false);
521 foreach($db as $link) {
522 $this->assertEquals($link['url'], $link['real_url']);
523 }
524 }
525
526 /**
527 * Test real_url with redirector.
528 */
529 public function testLinkRealUrlWithRedirector()
530 {
531 $redirector = 'http://redirector.to?';
532 $db = new LinkDB(self::$testDatastore, false, false, $redirector);
533 foreach($db as $link) {
534 $this->assertStringStartsWith($redirector, $link['real_url']);
535 }
536 }
514} 537}
diff --git a/tests/UtilsTest.php b/tests/UtilsTest.php
index 4847ea94..02eecda2 100644
--- a/tests/UtilsTest.php
+++ b/tests/UtilsTest.php
@@ -187,4 +187,41 @@ class UtilsTest extends PHPUnit_Framework_TestCase
187 is_session_id_valid('c0ZqcWF3VFE2NmJBdm1HMVQ0ZHJ3UmZPbTFsNGhkNHI=') 187 is_session_id_valid('c0ZqcWF3VFE2NmJBdm1HMVQ0ZHJ3UmZPbTFsNGhkNHI=')
188 ); 188 );
189 } 189 }
190
191 /**
192 * Test text2clickable without a redirector being set.
193 */
194 public function testText2clickableWithoutRedirector()
195 {
196 $text = 'stuff http://hello.there/is=someone#here otherstuff';
197 $expectedText = 'stuff <a href="http://hello.there/is=someone#here">http://hello.there/is=someone#here</a> otherstuff';
198 $processedText = text2clickable($text, '');
199 $this->assertEquals($expectedText, $processedText);
200 }
201
202 /**
203 * Test text2clickable a redirector set.
204 */
205 public function testText2clickableWithRedirector()
206 {
207 $text = 'stuff http://hello.there/is=someone#here otherstuff';
208 $redirector = 'http://redirector.to';
209 $expectedText = 'stuff <a href="'.
210 $redirector .
211 urlencode('http://hello.there/is=someone#here') .
212 '">http://hello.there/is=someone#here</a> otherstuff';
213 $processedText = text2clickable($text, $redirector);
214 $this->assertEquals($expectedText, $processedText);
215 }
216
217 /**
218 * Test testSpace2nbsp.
219 */
220 public function testSpace2nbsp()
221 {
222 $text = ' Are you thrilled by flags ?'. PHP_EOL .' Really?';
223 $expectedText = '&nbsp; Are you &nbsp; thrilled &nbsp;by flags &nbsp; ?'. PHP_EOL .'&nbsp;Really?';
224 $processedText = space2nbsp($text);
225 $this->assertEquals($expectedText, $processedText);
226 }
190} 227}
diff --git a/tests/plugins/PlugQrcodeTest.php b/tests/plugins/PlugQrcodeTest.php
index 86dc7f29..c749fa86 100644
--- a/tests/plugins/PlugQrcodeTest.php
+++ b/tests/plugins/PlugQrcodeTest.php
@@ -30,7 +30,7 @@ class PlugQrcodeTest extends PHPUnit_Framework_TestCase
30 'title' => $str, 30 'title' => $str,
31 'links' => array( 31 'links' => array(
32 array( 32 array(
33 'url' => $str, 33 'real_url' => $str,
34 ) 34 )
35 ) 35 )
36 ); 36 );
@@ -39,7 +39,7 @@ class PlugQrcodeTest extends PHPUnit_Framework_TestCase
39 $link = $data['links'][0]; 39 $link = $data['links'][0];
40 // data shouldn't be altered 40 // data shouldn't be altered
41 $this->assertEquals($str, $data['title']); 41 $this->assertEquals($str, $data['title']);
42 $this->assertEquals($str, $link['url']); 42 $this->assertEquals($str, $link['real_url']);
43 43
44 // plugin data 44 // plugin data
45 $this->assertEquals(1, count($link['link_plugin'])); 45 $this->assertEquals(1, count($link['link_plugin']));