about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2021-06-22 12:06:09 +0200
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2021-06-23 10:09:26 +0200
commitc4023c6ca31f80cb7fa3cbebc9f0095d5f649d53 (patch)
tree9eaa76d7a2978abd8bc98f040309ea486518c8bb
parent8cb207ae69700de3e782eec5cc9013c0987b2519 (diff)
downloadrust-c4023c6ca31f80cb7fa3cbebc9f0095d5f649d53.tar.gz
rust-c4023c6ca31f80cb7fa3cbebc9f0095d5f649d53.zip
Fix search filter update
-rw-r--r--src/librustdoc/html/static/search.js4
-rw-r--r--src/test/rustdoc-gui/search-filter.goml17
2 files changed, 21 insertions, 0 deletions
diff --git a/src/librustdoc/html/static/search.js b/src/librustdoc/html/static/search.js
index 35be246b5bf..617c79a4579 100644
--- a/src/librustdoc/html/static/search.js
+++ b/src/librustdoc/html/static/search.js
@@ -1442,6 +1442,10 @@ window.initSearch = function(rawSearchIndex) {
         if (selectCrate) {
             selectCrate.onchange = function() {
                 updateLocalStorage("rustdoc-saved-filter-crate", selectCrate.value);
+                // In case you "cut" the entry from the search input, then change the crate filter
+                // before paste back the previous search, you get the old search results without
+                // the filter. To prevent this, we need to remove the previous results.
+                currentResults = null;
                 search(undefined, true);
             };
         }
diff --git a/src/test/rustdoc-gui/search-filter.goml b/src/test/rustdoc-gui/search-filter.goml
new file mode 100644
index 00000000000..a098dbd9f12
--- /dev/null
+++ b/src/test/rustdoc-gui/search-filter.goml
@@ -0,0 +1,17 @@
+goto: file://|DOC_PATH|/test_docs/index.html
+write: (".search-input", "test")
+// Waiting for the search results to appear...
+wait-for: "#titles"
+assert-text: ("#results .externcrate", "test_docs")
+text: (".search-input", "")
+// We now want to change the crate filter.
+click: "#crate-search"
+// We select "lib2" option then press enter to change the filter.
+press-key: "ArrowDown"
+press-key: "Enter"
+// We now make the search again.
+write: (".search-input", "test")
+// Waiting for the search results to appear...
+wait-for: "#titles"
+// We check that there is no more "test_docs" appearing.
+assert-false: "#results .externcrate"