diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/LocationTest.php | 87 | ||||
-rw-r--r-- | tests/URLDetectionTest.php | 4 |
2 files changed, 89 insertions, 2 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')); + } +} + diff --git a/tests/URLDetectionTest.php b/tests/URLDetectionTest.php index 0cc03ccce..d83f9faf5 100644 --- a/tests/URLDetectionTest.php +++ b/tests/URLDetectionTest.php @@ -185,12 +185,12 @@ class URLDetectionTest extends PHPUnit_Framework_TestCase array('http://example.com/path/(foo)/bar', '<a href="http://example.com/path/(foo)/bar" title="http://example.com/path/(foo)/bar" rel="external">http://example.com/path/(foo)/bar</a>'), array('http://example.com/path/[foo]/bar', - '<a href="http://example.com/path/[foo]/bar" title="http://example.com/path/[foo]/bar" rel="external">http://example.com/path/[foo]/bar</a>'), + '<a href="http://example.com/path/" title="http://example.com/path/" rel="external">http://example.com/path/</a>[foo]/bar'), array('http://example.com/path/foo/(bar)', '<a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="external">http://example.com/path/foo/(bar)</a>'), //Not a valid url - urls cannot contain unencoded square brackets array('http://example.com/path/foo/[bar]', - '<a href="http://example.com/path/foo/[bar]" title="http://example.com/path/foo/[bar]" rel="external">http://example.com/path/foo/[bar]</a>'), + '<a href="http://example.com/path/foo/" title="http://example.com/path/foo/" rel="external">http://example.com/path/foo/</a>[bar]'), array('Hey, check out my cool site http://example.com okay?', 'Hey, check out my cool site <a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a> okay?'), array('What about parens (e.g. http://example.com/path/foo/(bar))?', |