Improve SVG regexp validation to use \A and \z (#19953)
This commit is contained in:
parent
992ced1908
commit
de1e79e722
2 changed files with 13 additions and 1 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
class NavigationLink < ApplicationRecord
|
class NavigationLink < ApplicationRecord
|
||||||
SVG_REGEXP = /<svg .*>/im
|
SVG_REGEXP = /\A<svg .*>[\s]*\z/im
|
||||||
|
|
||||||
before_validation :allow_relative_url, if: :url?
|
before_validation :allow_relative_url, if: :url?
|
||||||
before_save :strip_local_hostname, if: :url?
|
before_save :strip_local_hostname, if: :url?
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,18 @@ RSpec.describe NavigationLink do
|
||||||
|
|
||||||
navigation_link.icon = "<svg foo='bar'\nbaz='lol'\n\n more stuff...\n\n. >"
|
navigation_link.icon = "<svg foo='bar'\nbaz='lol'\n\n more stuff...\n\n. >"
|
||||||
expect(navigation_link).to be_valid
|
expect(navigation_link).to be_valid
|
||||||
|
|
||||||
|
navigation_link.icon = "something...something\n<svg foo='bar'\nbaz='lol'\n\n more stuff...\n\n. >"
|
||||||
|
expect(navigation_link).not_to be_valid
|
||||||
|
|
||||||
|
navigation_link.icon = "<svg foo='bar'\nbaz='lol'\n\n more stuff...\n\n. >\n\n\n\n"
|
||||||
|
expect(navigation_link).to be_valid
|
||||||
|
|
||||||
|
navigation_link.icon = "<svg foo='bar'\nbaz='lol'\n\n more stuff...\n\n. >\n\n\t \n\n"
|
||||||
|
expect(navigation_link).to be_valid
|
||||||
|
|
||||||
|
navigation_link.icon = "<svg foo='bar'\nbaz='lol'\n\n more stuff...\n\n. >\n\nsomething\n\n"
|
||||||
|
expect(navigation_link).not_to be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when validating the URL" do
|
context "when validating the URL" do
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue