]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
beginning of a test for location services
authorEvan Prodromou <evan@status.net>
Thu, 22 Oct 2009 20:19:25 +0000 (16:19 -0400)
committerEvan Prodromou <evan@status.net>
Thu, 22 Oct 2009 20:19:25 +0000 (16:19 -0400)
tests/LocationTest.php [new file with mode: 0644]

diff --git a/tests/LocationTest.php b/tests/LocationTest.php
new file mode 100644 (file)
index 0000000..62849eb
--- /dev/null
@@ -0,0 +1,87 @@
+<?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);
+
+require_once INSTALLDIR . '/lib/common.php';
+
+// Make sure this is loaded
+// XXX: how to test other plugins...?
+
+addPlugin('Geonames');
+
+class LocationTest extends PHPUnit_Framework_TestCase
+{
+
+    /**
+     * @dataProvider locationNames
+     */
+
+    public function testLocationFromName($name, $language, $location)
+    {
+        $result = Location::fromName($name, $language);
+        $this->assertEquals($result, $location);
+    }
+
+    static public function locationNames()
+    {
+        return array(array('Montreal', 'en', null),
+                     array('San Francisco, CA', 'en', null),
+                     array('Paris, France', 'en', null),
+                     array('Paris, Texas', 'en', null));
+    }
+
+    /**
+     * @dataProvider locationIds
+     */
+
+    public function testLocationFromId($id, $ns, $language, $location)
+    {
+        $result = Location::fromId($id, $ns, $language);
+        $this->assertEquals($result, $location);
+    }
+
+    static public function locationIds()
+    {
+        return array(array(6077243, GeonamesPlugin::NAMESPACE, 'en', null),
+                     array(5391959, GeonamesPlugin::NAMESPACE, 'en', null));
+    }
+
+    /**
+     * @dataProvider locationLatLons
+     */
+
+    public function testLocationFromLatLon($lat, $lon, $language, $location)
+    {
+        $result = Location::fromLatLon($lat, $lon, $language);
+        $this->assertEquals($result, $location);
+    }
+
+    static public function locationLatLons()
+    {
+        return array(array(37.77493, -122.41942, 'en', null),
+                     array(45.509, -73.588, 'en', null));
+    }
+
+    /**
+     * @dataProvider nameOfLocation
+     */
+
+    public function testLocationGetName($location, $language, $name)
+    {
+        $result = $location->getName($language);
+        $this->assertEquals($result, $name);
+    }
+
+    static public function nameOfLocation()
+    {
+        return array(array(new Location(), 'en', 'Montreal'),
+                     array(new Location(), 'fr', 'MontrĂ©al'));
+    }
+}
+