From 06896a8e3cad8719e30dfb4d0c64aee2cacd3309 Mon Sep 17 00:00:00 2001 From: Bob Aman Date: Wed, 10 Jun 2015 05:55:53 +0300 Subject: [PATCH] Adding test to prove Addressable form encodes precisely as required by OAuth 2. --- spec/addressable/uri_spec.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/spec/addressable/uri_spec.rb b/spec/addressable/uri_spec.rb index 6aecabcb..2698323c 100644 --- a/spec/addressable/uri_spec.rb +++ b/spec/addressable/uri_spec.rb @@ -5434,6 +5434,24 @@ def to_str end end +# See https://tools.ietf.org/html/rfc6749#appendix-B +describe Addressable::URI, "when form encoding the example value from OAuth 2" do + it "should result in correct values" do + expect(Addressable::URI.form_encode( + {"value" => " %&+£€"} + )).to eq("value=+%25%26%2B%C2%A3%E2%82%AC") + end +end + +# See https://tools.ietf.org/html/rfc6749#appendix-B +describe Addressable::URI, "when form unencoding the example value from OAuth 2" do + it "should result in correct values" do + expect(Addressable::URI.form_unencode( + "value=+%25%26%2B%C2%A3%E2%82%AC" + )).to eq([["value", " %&+£€"]]) + end +end + describe Addressable::URI, "when form unencoding a string" do it "should result in correct values" do expect(Addressable::URI.form_unencode(