From 44e17dfe0ab02dfeebdb3a6f2973496fdf865fc9 Mon Sep 17 00:00:00 2001 From: Martin Nilsson <nilsson@opera.com> Date: Tue, 26 Aug 2014 17:32:34 +0200 Subject: [PATCH] Fixed test that broke with Kevins fix. --- lib/modules/Standards.pmod/URI.pike | 8 ++++++++ lib/modules/Standards.pmod/testsuite.in | 1 + 2 files changed, 9 insertions(+) diff --git a/lib/modules/Standards.pmod/URI.pike b/lib/modules/Standards.pmod/URI.pike index 903b2f410c..7809b5f6a8 100644 --- a/lib/modules/Standards.pmod/URI.pike +++ b/lib/modules/Standards.pmod/URI.pike @@ -263,6 +263,14 @@ void reparse_uri(this_program|string|void base_uri) } DEBUG("Found scheme %O", scheme); + // DWIM for "www.cnn.com" style input, when parsed in the context of + // base "http://". + if( !scheme && this_program::base_uri?->scheme && + !sizeof(this_program::base_uri->authority) ) + { + uri = "//"+uri; + } + // Parse authority/login // // hier-part = "//" authority path-abempty / path-absolute diff --git a/lib/modules/Standards.pmod/testsuite.in b/lib/modules/Standards.pmod/testsuite.in index fcaa3a3edd..b6350d5530 100644 --- a/lib/modules/Standards.pmod/testsuite.in +++ b/lib/modules/Standards.pmod/testsuite.in @@ -105,6 +105,7 @@ test_equal(Standards.URI("http://www.com/?")->get_http_path_query(),"/?") test_equal(Standards.URI("http://www.com/")->get_http_path_query(),"/") test_eval_error(Standards.URI("www.com")) test_eq((string)Standards.URI("www.com","http://"),"http://www.com") +test_eq((string)Standards.URI("www.com/x?a=b#y","http://"),"http://www.com/x?a=b#y") test_eq((string)Standards.URI("ftp://www.com/x?a=b#y","http://"),"ftp://www.com/x?a=b#y") // Some tests of empty path followed by a query. test_eq(Standards.URI("http://user:??@host?query")->query, "query") -- GitLab