]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - tests/NicknameTest.php
Misses this file to merge. I like the comments.
[quix0rs-gnu-social.git] / tests / NicknameTest.php
index a59cada7ad0ba09db949bca050ae0890d3040d05..2841398a6590686bf595befcd34e3c6a25317d48 100644 (file)
@@ -6,8 +6,8 @@ if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
 }
 
 define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
-define('STATUSNET', true);
-define('LACONICA', true);
+define('GNUSOCIAL', true);
+define('STATUSNET', true);  // compatibility
 
 require_once INSTALLDIR . '/lib/common.php';
 
@@ -33,9 +33,14 @@ class NicknameTest extends PHPUnit_Framework_TestCase
 
         if ($expected === false) {
             if ($expectedException) {
+                if ($exception) {
+                    $stuff = get_class($exception) . ': ' . $exception->getMessage();
+                } else {
+                    $stuff = var_export($exception, true);
+                }
                 $this->assertTrue($exception && $exception instanceof $expectedException,
                         "invalid input '$input' expected to fail with $expectedException, " .
-                        "got " . get_class($exception) . ': ' . $exception->getMessage());
+                        "got $stuff");
             } else {
                 $this->assertTrue($normalized == false,
                         "invalid input '$input' expected to fail");
@@ -51,6 +56,25 @@ class NicknameTest extends PHPUnit_Framework_TestCase
         }
     }
 
+    /**
+     * Test on the regex matching used in common_find_mentions
+     * (testing on the full notice rendering is difficult as it needs
+     * to be able to pull from global state)
+     *
+     * @dataProvider provider
+     */
+    public function testAtReply($input, $expected, $expectedException=null)
+    {
+        if ($expected == false) {
+            // nothing to do
+        } else {
+            $text = "@{$input} awesome! :)";
+            $matches = common_find_mentions_raw($text);
+            $this->assertEquals(1, count($matches));
+            $this->assertEquals($expected, Nickname::normalize($matches[0][0]));
+        }
+    }
+
     static public function provider()
     {
         return array(
@@ -85,7 +109,7 @@ class NicknameTest extends PHPUnit_Framework_TestCase
                      array('', false, 'NicknameEmptyException'),
                      array('___', false, 'NicknameEmptyException'),
                      array('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'), // 64 chars
-                     array('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee_', 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'), // the _ will be trimmed off, remaining valid
+                     array('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee_', false, 'NicknameTooLongException'), // the _ is too long...
                      array('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', false, 'NicknameTooLongException'), // 65 chars -- too long
                      );
     }