Sha256: 9fdb6331b535e70491d97b825f066e990a4edc610363c93c19595640ed787bad

Contents?: true

Size: 1.86 KB

Versions: 19

Compression:

Stored size: 1.86 KB

Contents

# frozen_string_literal: false

require 'uri'

module URI
  class TestCommon < Test::Unit::TestCase
    def test_decode_www_form
      assert_equal([%w[a 1], %w[a 2]], URI.decode_www_form("a=1&a=2"))
      assert_equal([%w[a 1;a=2]], URI.decode_www_form("a=1;a=2"))
      assert_equal([%w[a 1], ['', ''], %w[a 2]], URI.decode_www_form("a=1&&a=2"))
      assert_raise(ArgumentError){URI.decode_www_form("\u3042")}
      # assert_equal([%w[a 1], ["\u3042", "\u6F22"]],
      #              URI.decode_www_form("a=1&%E3%81%82=%E6%BC%A2"))
      # assert_equal([%w[a 1], ["\uFFFD%8", "\uFFFD"]],
      #              URI.decode_www_form("a=1&%E3%81%8=%E6%BC"))
      assert_equal([%w[?a 1], %w[a 2]], URI.decode_www_form("?a=1&a=2"))
      assert_equal([], URI.decode_www_form(""))
      # assert_equal([%w[% 1]], URI.decode_www_form("%=1"))
      # assert_equal([%w[a %]], URI.decode_www_form("a=%"))
      # assert_equal([%w[a 1], %w[% 2]], URI.decode_www_form("a=1&%=2"))
      # assert_equal([%w[a 1], %w[b %]], URI.decode_www_form("a=1&b=%"))
      assert_equal([['a', ''], ['b', '']], URI.decode_www_form("a&b"))
      bug4098 = '[ruby-core:33464]'
      assert_equal([['a', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'], ['b', '']], URI.decode_www_form("a=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&b"), bug4098)

      assert_raise(ArgumentError){ URI.decode_www_form("a=1&%82%A0=%8A%BF", "x-sjis") }
      # assert_equal([["a", "1"], [s("\x82\xA0"), s("\x8a\xBF")]],
      #              URI.decode_www_form("a=1&%82%A0=%8A%BF", "sjis"))
      # assert_equal([["a", "1"], [s("\x82\xA0"), s("\x8a\xBF")], %w[_charset_ sjis], [s("\x82\xA1"), s("\x8a\xC0")]],
      #              URI.decode_www_form("a=1&%82%A0=%8A%BF&_charset_=sjis&%82%A1=%8A%C0", use__charset_: true))
      assert_equal([["", "isindex"], ["a", "1"]],
                   URI.decode_www_form("isindex&a=1", isindex: true))
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
opal-1.8.3.rc1 test/opal/test_uri.rb
opal-1.8.2 test/opal/test_uri.rb
opal-1.8.1 test/opal/test_uri.rb
opal-1.8.0 test/opal/test_uri.rb
opal-1.8.0.beta1 test/opal/test_uri.rb
opal-1.7.4 test/opal/test_uri.rb
opal-1.8.0.alpha1 test/opal/test_uri.rb
opal-1.7.3 test/opal/test_uri.rb
opal-1.7.2 test/opal/test_uri.rb
opal-1.7.1 test/opal/test_uri.rb
opal-1.7.0 test/opal/test_uri.rb
opal-1.7.0.rc1 test/opal/test_uri.rb
opal-1.6.1 test/opal/test_uri.rb
opal-1.6.0 test/opal/test_uri.rb
opal-1.6.0.rc1 test/opal/test_uri.rb
opal-1.6.0.alpha1 test/opal/test_uri.rb
opal-1.5.1 test/opal/test_uri.rb
opal-1.5.0 test/opal/test_uri.rb
opal-1.5.0.rc1 test/opal/test_uri.rb