Sha256: 95250b105bee1423a897622e2dd4b07c8885507f2b340b3c00ac5cd732437d32

Contents?: true

Size: 988 Bytes

Versions: 1

Compression:

Stored size: 988 Bytes

Contents

require 'spec_helper'

require 'ronin/url_query_param'

describe URLQueryParam do
  let(:name)  { 'foo' }
  let(:value) { 'bar' }

  subject do
    described_class.new(:name => {:name => name}, :value => value)
  end

  describe "#to_s" do
    it "should dump a name and a value into a String" do
      expect(subject.to_s).to eq("#{name}=#{value}")
    end

    context "with empty or nil values" do
      subject do
        described_class.new(:name => {:name => name})
      end

      it "should ignore empty or nil values" do
        expect(subject.to_s).to eq("#{name}=")
      end
    end

    context "with special characters" do
      let(:value)         { 'bar baz'         }
      let(:encoded_value) { URI::DEFAULT_PARSER.escape(value) }

      subject do
        described_class.new(:name => {:name => name}, :value => value)
      end

      it "should escape special characters" do
        expect(subject.to_s).to eq("#{name}=#{encoded_value}")
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ronin-1.5.1 spec/url_query_param_spec.rb