diff --git a/CHECKS b/CHECKS index 223e5a175..24d7a521f 100644 --- a/CHECKS +++ b/CHECKS @@ -1,4 +1,4 @@ WAIT=10 -ATTEMPTS=20 +ATTEMPTS=300 /users/sign_in Sign in to diff --git a/app/models/questionnaire.rb b/app/models/questionnaire.rb index 5407edf57..ad8c2f488 100644 --- a/app/models/questionnaire.rb +++ b/app/models/questionnaire.rb @@ -43,7 +43,10 @@ class Questionnaire < ApplicationRecord validates :portfolio_url, url: { allow_blank: true } validates :vcs_url, url: { allow_blank: true } - validates_format_of :vcs_url, with: %r{\A(((https?:\/\/)?(www\.)?github\.com\/\w+\/?)|((https?:\/\/)?(www\.)?gitlab\.com\/\w+\/?)|((https?:\/\/)?(www\.)?bitbucket\.org\/\w+\/?))\z}, allow_blank: true, message: "Must be a GitHub, GitLab or Bitbucket url" + validates_format_of :vcs_url, + with: %r{\A((https?:\/\/)?(www\.)?((github\.com)|(gitlab\.com)|(bitbucket\.org))\/(.*){0,62})\z}i, + allow_blank: true, + message: "Must be a GitHub, GitLab or Bitbucket url" strip_attributes POSSIBLE_EXPERIENCES = { @@ -129,11 +132,13 @@ def email end def portfolio_url=(value) + value = value.downcase unless value.blank? value = "http://" + value if !value.blank? && !value.include?("http://") && !value.include?("https://") super value end def vcs_url=(value) + value = value.downcase unless value.blank? value = "https://" + value if !value.blank? && !value.include?("http://") && !value.include?("https://") super value end diff --git a/test/models/questionnaire_test.rb b/test/models/questionnaire_test.rb index d1ac8764b..7cf590185 100644 --- a/test/models/questionnaire_test.rb +++ b/test/models/questionnaire_test.rb @@ -103,6 +103,8 @@ class QuestionnaireTest < ActiveSupport::TestCase should allow_value('foo.com').for(:portfolio_url) should allow_value('github.com/foo', 'gitlab.com/bar', 'bitbucket.org/baz').for(:vcs_url) should allow_value('https://github.com/foo', 'https://gitlab.com/bar', 'https://bitbucket.org/baz').for(:vcs_url) + should allow_value('HttPs://gITHub.CoM/foo', 'hTTp://gitLAB.coM/bar').for(:vcs_url) + should allow_value('wWw.gITHub.CoM/fOo', 'hTTp://wWw.gitLAB.coM/f-fc-vx').for(:vcs_url) should_not allow_value('http://foo.com', 'https://bar.com').for(:vcs_url) context "#school" do