diff --git a/.travis.yml b/.travis.yml index 3dff9db..26957e7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,15 @@ language: php php: - - 5.4 - - 5.5 - - 5.6 - 7.0 - - hhvm + - 7.1 before_script: - travis_retry composer self-update - travis_retry composer install --no-interaction --prefer-source --dev -script: phpunit --coverage-text --coverage-clover ./build/logs/clover.xml +script: + - ./vendor/bin/phpunit --coverage-text --coverage-clover ./build/logs/clover.xml -after_script: php vendor/bin/coveralls +after_script: + - php vendor/bin/coveralls diff --git a/composer.json b/composer.json index 72e5c5f..409562f 100644 --- a/composer.json +++ b/composer.json @@ -40,6 +40,7 @@ "squizlabs/php_codesniffer": "^2.7", "phpmd/phpmd": "^2.4", "pdepend/pdepend": "^2.2", + "satooshi/php-coveralls" : "dev-master@dev", "sebastian/phpcpd": "^2.0", "jakub-onderka/php-parallel-lint": "^0.9.2" }, diff --git a/src/ProviderAndDumperAggregator.php b/src/ProviderAndDumperAggregator.php index 75361c0..2599dfa 100644 --- a/src/ProviderAndDumperAggregator.php +++ b/src/ProviderAndDumperAggregator.php @@ -74,9 +74,9 @@ public function dump($dumper) */ public function geocode($value) { - $cacheId = str_slug($value); - $this->results = cache()->remember( - "geocoder-{$cacheId}", + $cacheKey = str_slug(strtolower(urlencode($value))); + $this->results = app('cache')->remember( + "geocoder-{$cacheKey}", config('geocoder.cache-duraction', 0), function () use ($value) { return parent::geocode($value); @@ -101,9 +101,9 @@ public function get() */ public function reverse($latitude, $longitude) { - $cacheId = str_slug("{$latitude}-{$longitude}"); - $this->results = cache()->remember( - "geocoder-{$cacheId}", + $cacheKey = str_slug(strtolower(urlencode("{$latitude}-{$longitude}"))); + $this->results = app('cache')->remember( + "geocoder-{$cacheKey}", config('geocoder.cache-duraction', 0), function () use ($latitude, $longitude) { return parent::reverse($latitude, $longitude); diff --git a/tests/Laravel5_3/Providers/GeocoderServiceTest.php b/tests/Laravel5_3/Providers/GeocoderServiceTest.php index b94f690..d8a795b 100644 --- a/tests/Laravel5_3/Providers/GeocoderServiceTest.php +++ b/tests/Laravel5_3/Providers/GeocoderServiceTest.php @@ -178,9 +178,35 @@ public function testCacheIsUsed() { $result = app('geocoder')->geocode('1600 Pennsylvania Ave., Washington, DC USA') ->get(); - $cacheKey = 'geocoder-' . str_slug('1600 Pennsylvania Ave., Washington, DC USA'); + $cacheKey = str_slug(strtolower(urlencode('1600 Pennsylvania Ave., Washington, DC USA'))); - $this->assertTrue(cache()->has($cacheKey)); - $this->assertEquals($result, cache($cacheKey)); + $this->assertEquals($result, app('cache')->get("geocoder-{$cacheKey}")); + $this->assertTrue(app('cache')->has("geocoder-{$cacheKey}")); + } + + public function testJapaneseCharacterGeocoding() + { + $cacheKey = str_slug(strtolower(urlencode('108-0075 東京都港区港南2丁目16-3'))); + + app('geocoder')->geocode('108-0075 東京都港区港南2丁目16-3') + ->get(); + + $this->assertEquals($cacheKey, '108-0075e69db1e4baace983bde6b8afe58cbae6b8afe58d97efbc92e4b881e79baeefbc91efbc96efbc8defbc93'); + $this->assertTrue(app('cache')->has("geocoder-{$cacheKey}")); + } + + public function testFailedGeocodingCanBeCaught() + { + $result = 'success'; + + try { + app('geocoder') + ->geocode('asd,Afghanistan') + ->get(); + } catch (\Throwable $exception) { + $result = 'failure'; + } + + $this->assertEquals('failure', $result); } }