Added more tests covering invalid custom slugs

This commit is contained in:
Alejandro Celaya 2020-03-06 20:01:41 +01:00
parent 18ceafeb60
commit f5c1e12db4
4 changed files with 15 additions and 2 deletions

View File

@ -27,6 +27,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com), and this
#### Fixed #### Fixed
* [#665](https://github.com/shlinkio/shlink/issues/665) Fixed `base_url_redirect_to` simplified config option not being properly parsed. * [#665](https://github.com/shlinkio/shlink/issues/665) Fixed `base_url_redirect_to` simplified config option not being properly parsed.
* [#663](https://github.com/shlinkio/shlink/issues/663) Fixed Shlink allowing short URLs to be created with an empty custom slug.
## 2.0.5 - 2020-02-09 ## 2.0.5 - 2020-02-09

View File

@ -49,7 +49,7 @@
"predis/predis": "^1.1", "predis/predis": "^1.1",
"pugx/shortid-php": "^0.5", "pugx/shortid-php": "^0.5",
"ramsey/uuid": "^3.9", "ramsey/uuid": "^3.9",
"shlinkio/shlink-common": "^2.7.0", "shlinkio/shlink-common": "^2.8.0",
"shlinkio/shlink-event-dispatcher": "^1.3", "shlinkio/shlink-event-dispatcher": "^1.3",
"shlinkio/shlink-installer": "^4.2.0", "shlinkio/shlink-installer": "^4.2.0",
"shlinkio/shlink-ip-geolocation": "^1.3.1", "shlinkio/shlink-ip-geolocation": "^1.3.1",

View File

@ -44,7 +44,10 @@ class ShortUrlMetaInputFilter extends InputFilter
// empty, is by using the deprecated setContinueIfEmpty // empty, is by using the deprecated setContinueIfEmpty
$customSlug = $this->createInput(self::CUSTOM_SLUG, false)->setContinueIfEmpty(true); $customSlug = $this->createInput(self::CUSTOM_SLUG, false)->setContinueIfEmpty(true);
$customSlug->getFilterChain()->attach(new Validation\SluggerFilter()); $customSlug->getFilterChain()->attach(new Validation\SluggerFilter());
$customSlug->getValidatorChain()->attach(new Validator\NotEmpty(Validator\NotEmpty::STRING)); $customSlug->getValidatorChain()->attach(new Validator\NotEmpty([
Validator\NotEmpty::STRING,
Validator\NotEmpty::SPACE,
]));
$this->add($customSlug); $this->add($customSlug);
$this->add($this->createPositiveNumberInput(self::MAX_VISITS)); $this->add($this->createPositiveNumberInput(self::MAX_VISITS));

View File

@ -47,6 +47,15 @@ class ShortUrlMetaTest extends TestCase
yield [[ yield [[
ShortUrlMetaInputFilter::SHORT_CODE_LENGTH => 3, ShortUrlMetaInputFilter::SHORT_CODE_LENGTH => 3,
]]; ]];
yield [[
ShortUrlMetaInputFilter::CUSTOM_SLUG => '/',
]];
yield [[
ShortUrlMetaInputFilter::CUSTOM_SLUG => '',
]];
yield [[
ShortUrlMetaInputFilter::CUSTOM_SLUG => ' ',
]];
} }
/** @test */ /** @test */