Allow webhooks URL to have leading and trailing spaces
This commit is contained in:
parent
01160fc061
commit
4d0e2979b9
4 changed files with 18 additions and 10 deletions
|
@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date.
|
|||
v 8.6.0 (unreleased)
|
||||
- Improve the formatting for the user page bio (Connor Shea)
|
||||
- Fix avatar stretching by providing a cropping feature (Johann Pardanaud)
|
||||
- Strip leading and trailing spaces in URL validator (evuez)
|
||||
|
||||
v 8.5.1
|
||||
- Fix group projects styles
|
||||
|
|
|
@ -29,8 +29,11 @@ class UrlValidator < ActiveModel::EachValidator
|
|||
end
|
||||
|
||||
def valid_url?(value)
|
||||
return false if value.nil?
|
||||
|
||||
options = default_options.merge(self.options)
|
||||
|
||||
value.strip!
|
||||
value =~ /\A#{URI.regexp(options[:protocols])}\z/
|
||||
end
|
||||
end
|
||||
|
|
|
@ -19,6 +19,10 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe ProjectHook, models: true do
|
||||
describe "Associations" do
|
||||
it { is_expected.to belong_to :project }
|
||||
end
|
||||
|
||||
describe '.push_hooks' do
|
||||
it 'should return hooks for push events only' do
|
||||
hook = create(:project_hook, push_events: true)
|
||||
|
|
|
@ -18,20 +18,14 @@
|
|||
|
||||
require 'spec_helper'
|
||||
|
||||
describe ProjectHook, models: true do
|
||||
describe "Associations" do
|
||||
it { is_expected.to belong_to :project }
|
||||
end
|
||||
|
||||
describe "Mass assignment" do
|
||||
end
|
||||
|
||||
describe WebHook, models: true do
|
||||
describe "Validations" do
|
||||
it { is_expected.to validate_presence_of(:url) }
|
||||
|
||||
context "url format" do
|
||||
describe 'url' do
|
||||
it { is_expected.to allow_value("http://example.com").for(:url) }
|
||||
it { is_expected.to allow_value("https://excample.com").for(:url) }
|
||||
it { is_expected.to allow_value("https://example.com").for(:url) }
|
||||
it { is_expected.to allow_value(" https://example.com ").for(:url) }
|
||||
it { is_expected.to allow_value("http://test.com/api").for(:url) }
|
||||
it { is_expected.to allow_value("http://test.com/api?key=abc").for(:url) }
|
||||
it { is_expected.to allow_value("http://test.com/api?key=abc&type=def").for(:url) }
|
||||
|
@ -39,6 +33,12 @@ describe ProjectHook, models: true do
|
|||
it { is_expected.not_to allow_value("example.com").for(:url) }
|
||||
it { is_expected.not_to allow_value("ftp://example.com").for(:url) }
|
||||
it { is_expected.not_to allow_value("herp-and-derp").for(:url) }
|
||||
|
||||
it 'strips :url before saving it' do
|
||||
hook = create(:project_hook, url: ' https://example.com ')
|
||||
|
||||
expect(hook.url).to eq('https://example.com')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue