diff options
Diffstat (limited to 'spec/support/shared_examples/services/projects/urls_with_escaped_elements_shared_example.rb')
-rw-r--r-- | spec/support/shared_examples/services/projects/urls_with_escaped_elements_shared_example.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/spec/support/shared_examples/services/projects/urls_with_escaped_elements_shared_example.rb b/spec/support/shared_examples/services/projects/urls_with_escaped_elements_shared_example.rb new file mode 100644 index 00000000000..df8b1f91629 --- /dev/null +++ b/spec/support/shared_examples/services/projects/urls_with_escaped_elements_shared_example.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +# Shared examples that test requests against URLs with escaped elements +# +RSpec.shared_examples "URLs containing escaped elements return expected status" do + using RSpec::Parameterized::TableSyntax + + where(:url, :result_status) do + "https://user:0a%23@test.example.com/project.git" | :success + "https://git.example.com:1%2F%2F@source.developers.google.com/project.git" | :success + CGI.escape("git://localhost:1234/some-path?some-query=some-val\#@example.com/") | :error + CGI.escape(CGI.escape("https://user:0a%23@test.example.com/project.git")) | :error + end + + with_them do + it "returns expected status" do + expect(result[:status]).to eq(result_status) + end + end +end |