make SafeURI class clone deeper

Fixes #6645
This commit is contained in:
Joao Duarte 2017-02-06 12:36:20 +00:00 committed by João Duarte
parent 2ed9022500
commit c10f55054b
2 changed files with 25 additions and 0 deletions

View file

@ -47,5 +47,10 @@ class LogStash::Util::SafeURI
def ==(other)
other.is_a?(::LogStash::Util::SafeURI) ? @uri == other.uri : false
end
def clone
cloned_uri = uri.clone
self.class.new(cloned_uri)
end
end

View file

@ -0,0 +1,20 @@
# encoding: utf-8
require "logstash/util/safe_uri"
require "spec_helper"
module LogStash module Util
describe SafeURI do
describe "#clone" do
subject { LogStash::Util::SafeURI.new("http://localhost:9200/uri?q=s") }
it "allows modifying uri parameters" do
cloned_safe_uri = subject.clone
cloned_safe_uri.path = "/cloned"
cloned_safe_uri.query = "a=b"
expect(subject.path).to eq("/uri")
expect(subject.query).to eq("q=s")
expect(cloned_safe_uri.path).to eq("/cloned")
expect(cloned_safe_uri.query).to eq("a=b")
end
end
end
end end