Auto merge of #119327 - notriddle:notriddle/plusencoding, r=GuillaumeGomez

rustdoc: treat query string `+` as space

Fixes #119219
This commit is contained in:
bors 2023-12-27 11:47:24 +00:00
commit ca9ff83f1b
2 changed files with 11 additions and 1 deletions

View File

@ -279,7 +279,8 @@ function preLoadCss(cssUrl) {
const params = {}; const params = {};
window.location.search.substring(1).split("&"). window.location.search.substring(1).split("&").
map(s => { map(s => {
const pair = s.split("="); // https://github.com/rust-lang/rust/issues/119219
const pair = s.split("=").map(x => x.replace(/\+/g, " "));
params[decodeURIComponent(pair[0])] = params[decodeURIComponent(pair[0])] =
typeof pair[1] === "undefined" ? null : decodeURIComponent(pair[1]); typeof pair[1] === "undefined" ? null : decodeURIComponent(pair[1]);
}); });

View File

@ -137,3 +137,12 @@ call-function: (
"menu_a_color": "#3873ad", "menu_a_color": "#3873ad",
} }
) )
// Check that search input correctly decodes form encoding.
go-to: "file://" + |DOC_PATH| + "/test_docs/index.html?search=a+b"
wait-for: "#search-tabs" // Waiting for the search.js to load.
assert-property: (".search-input", { "value": "a b" })
// Check that literal + is not treated as space.
go-to: "file://" + |DOC_PATH| + "/test_docs/index.html?search=a%2Bb"
wait-for: "#search-tabs" // Waiting for the search.js to load.
assert-property: (".search-input", { "value": "a+b" })