]> 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 f1d9808228571feb30ce21b9b70be252e9c6a448..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';
 
@@ -26,18 +26,23 @@ class NicknameTest extends PHPUnit_Framework_TestCase
         $exception = null;
         $normalized = false;
         try {
-            $normalized = Nickname::normalize($normalized);
+            $normalized = Nickname::normalize($input);
         } catch (NicknameException $e) {
             $exception = $e;
         }
 
         if ($expected === false) {
             if ($expectedException) {
-                $this->assert($exception && $exception instanceof $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->assert($normalized == false,
+                $this->assertTrue($normalized == false,
                         "invalid input '$input' expected to fail");
             }
         } else {
@@ -47,7 +52,26 @@ class NicknameTest extends PHPUnit_Framework_TestCase
             } else {
                 $msg .= "'$normalized'";
             }
-            $this->assertEquals($expected, $norm, $msg);
+            $this->assertEquals($expected, $normalized, $msg);
+        }
+    }
+
+    /**
+     * 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]));
         }
     }
 
@@ -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
                      );
     }