From 9f9df7fd941e6fb0a20588dd3fadb30abe8b1df2 Mon Sep 17 00:00:00 2001 From: Mike Bronner Date: Thu, 22 Jun 2017 07:44:26 -0700 Subject: [PATCH 1/4] Update cache key to work with non-roman alphabets --- src/ProviderAndDumperAggregator.php | 8 ++++---- .../Providers/GeocoderServiceTest.php | 17 ++++++++++++++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/ProviderAndDumperAggregator.php b/src/ProviderAndDumperAggregator.php index 75361c0..5fb049b 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); + $cacheKey = str_slug(strtolower(urlencode($value))); $this->results = cache()->remember( - "geocoder-{$cacheId}", + "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}"); + $cacheKey = str_slug(strtolower(urlencode("{$latitude}-{$longitude}"))); $this->results = cache()->remember( - "geocoder-{$cacheId}", + "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..6dc8a89 100644 --- a/tests/Laravel5_3/Providers/GeocoderServiceTest.php +++ b/tests/Laravel5_3/Providers/GeocoderServiceTest.php @@ -178,9 +178,20 @@ 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, cache("geocoder-{$cacheKey}")); + $this->assertTrue(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(cache()->has("geocoder-{$cacheKey}")); } } From a328949d7c93ac9dc79d53a7685747cb9b13b5d5 Mon Sep 17 00:00:00 2001 From: Mike Bronner Date: Sun, 25 Jun 2017 08:04:02 -0700 Subject: [PATCH 2/4] Add unit test to catch failed geocoding --- .../Laravel5_3/Providers/GeocoderServiceTest.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/Laravel5_3/Providers/GeocoderServiceTest.php b/tests/Laravel5_3/Providers/GeocoderServiceTest.php index 6dc8a89..8f8638b 100644 --- a/tests/Laravel5_3/Providers/GeocoderServiceTest.php +++ b/tests/Laravel5_3/Providers/GeocoderServiceTest.php @@ -194,4 +194,19 @@ public function testJapaneseCharacterGeocoding() $this->assertEquals($cacheKey, '108-0075e69db1e4baace983bde6b8afe58cbae6b8afe58d97efbc92e4b881e79baeefbc91efbc96efbc8defbc93'); $this->assertTrue(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); + } } From 9ad306840535fc1da154fb62222c67e20350cd35 Mon Sep 17 00:00:00 2001 From: Mike Bronner Date: Sun, 25 Jun 2017 08:17:48 -0700 Subject: [PATCH 3/4] Fix travis configuration --- .travis.yml | 11 +++++------ composer.json | 1 + 2 files changed, 6 insertions(+), 6 deletions(-) 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" }, From a322da316717eda1fb38afdc3db1b5bfc7d29ef6 Mon Sep 17 00:00:00 2001 From: Mike Bronner Date: Wed, 12 Jul 2017 18:25:36 -0700 Subject: [PATCH 4/4] Replace cache helper with cache from IOC --- src/ProviderAndDumperAggregator.php | 4 ++-- tests/Laravel5_3/Providers/GeocoderServiceTest.php | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ProviderAndDumperAggregator.php b/src/ProviderAndDumperAggregator.php index 5fb049b..2599dfa 100644 --- a/src/ProviderAndDumperAggregator.php +++ b/src/ProviderAndDumperAggregator.php @@ -75,7 +75,7 @@ public function dump($dumper) public function geocode($value) { $cacheKey = str_slug(strtolower(urlencode($value))); - $this->results = cache()->remember( + $this->results = app('cache')->remember( "geocoder-{$cacheKey}", config('geocoder.cache-duraction', 0), function () use ($value) { @@ -102,7 +102,7 @@ public function get() public function reverse($latitude, $longitude) { $cacheKey = str_slug(strtolower(urlencode("{$latitude}-{$longitude}"))); - $this->results = cache()->remember( + $this->results = app('cache')->remember( "geocoder-{$cacheKey}", config('geocoder.cache-duraction', 0), function () use ($latitude, $longitude) { diff --git a/tests/Laravel5_3/Providers/GeocoderServiceTest.php b/tests/Laravel5_3/Providers/GeocoderServiceTest.php index 8f8638b..d8a795b 100644 --- a/tests/Laravel5_3/Providers/GeocoderServiceTest.php +++ b/tests/Laravel5_3/Providers/GeocoderServiceTest.php @@ -180,8 +180,8 @@ public function testCacheIsUsed() ->get(); $cacheKey = str_slug(strtolower(urlencode('1600 Pennsylvania Ave., Washington, DC USA'))); - $this->assertEquals($result, cache("geocoder-{$cacheKey}")); - $this->assertTrue(cache()->has("geocoder-{$cacheKey}")); + $this->assertEquals($result, app('cache')->get("geocoder-{$cacheKey}")); + $this->assertTrue(app('cache')->has("geocoder-{$cacheKey}")); } public function testJapaneseCharacterGeocoding() @@ -192,7 +192,7 @@ public function testJapaneseCharacterGeocoding() ->get(); $this->assertEquals($cacheKey, '108-0075e69db1e4baace983bde6b8afe58cbae6b8afe58d97efbc92e4b881e79baeefbc91efbc96efbc8defbc93'); - $this->assertTrue(cache()->has("geocoder-{$cacheKey}")); + $this->assertTrue(app('cache')->has("geocoder-{$cacheKey}")); } public function testFailedGeocodingCanBeCaught()