]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Start on some nickname-validation test cases: several of these fail right now because...
authorBrion Vibber <brion@pobox.com>
Mon, 29 Nov 2010 19:31:33 +0000 (11:31 -0800)
committerBrion Vibber <brion@pobox.com>
Mon, 29 Nov 2010 19:31:33 +0000 (11:31 -0800)
tests/NicknameTest.php [new file with mode: 0644]

diff --git a/tests/NicknameTest.php b/tests/NicknameTest.php
new file mode 100644 (file)
index 0000000..95af940
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+
+if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
+    print "This script must be run from the command line\n";
+    exit();
+}
+
+define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
+define('STATUSNET', true);
+define('LACONICA', true);
+
+require_once INSTALLDIR . '/lib/common.php';
+
+/**
+ * Test cases for nickname validity and normalization.
+ */
+class NicknameTest extends PHPUnit_Framework_TestCase
+{
+    /**
+     * @dataProvider provider
+     *
+     */
+    public function testBasic($input, $expected)
+    {
+        $matches = array();
+        // First problem: this is all manual, wtf!
+        if (preg_match('/^([' . NICKNAME_FMT . ']{1,64})$/', $input, $matches)) {
+            $norm = common_canonical_nickname($matches[1]);
+            $this->assertEquals($expected, $norm, "normalized input nickname: $input -> $norm");
+        } else {
+            $this->assertEquals($expected, false, "invalid input nickname: $input");
+        }
+    }
+
+    static public function provider()
+    {
+        return array(
+                     array('evan', 'evan'),
+                     array('Evan', 'evan'),
+                     array('EVAN', 'evan'),
+                     array('ev_an', 'evan'),
+                     array('ev.an', 'evan'),
+                     array('ev/an', false),
+                     array('ev an', false),
+                     array('ev-an', false),
+                     array('évan', false), // so far...
+                     array('Évan', false), // so far...
+                     array('evan1', 'evan1'),
+                     array('evan_1', 'evan1'),
+                     );
+    }
+}