diff options
-rw-r--r-- | tests/LocationTest.php | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/LocationTest.php b/tests/LocationTest.php new file mode 100644 index 000000000..62849eb9f --- /dev/null +++ b/tests/LocationTest.php @@ -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')); + } +} + |