Project

General

Profile

Actions

Bug #11149

closed

URI.parse keeps '?' for query and '#' for fragment even if they are empty

Added by davispuh (Dāvis Mosāns) almost 9 years ago. Updated almost 6 years ago.

Status:
Rejected
Target version:
-
ruby -v:
ruby 2.2.1p85 (2015-02-26 revision 49769) [x64-mingw32]
[ruby-core:69158]

Description

p = URI.parse('http://example.com/path?query#fragment')
p.query = ''
p.fragment = ''
puts p.to_s

will output "http://example.com/path?#" but I think it should be "http://example.com/path" without '?' and '#'

Updated by naruse (Yui NARUSE) almost 9 years ago

  • Status changed from Open to Assigned
  • Assignee set to naruse (Yui NARUSE)

As URL Standard, current behavior is correct.
https://url.spec.whatwg.org/

But Google Chrome's behavior is like what you say.

I keep watching how W3C/WHATWG decide this behavior.

Updated by davispuh (Dāvis Mosāns) almost 9 years ago

Actually yes, I was wrong on this and it is expected behavior.

When one wants without '?' and '#' correct way is to set to nil and not to empty string ''

p.query = nil
p.fragment = nil

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

At least, that test should not be in test_parse, but in test_set_component or others.

Updated by naruse (Yui NARUSE) almost 6 years ago

  • Status changed from Assigned to Rejected

Chrome also follows the behavior.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0