From d64a86322319fe272f562ced4bcae52e17648940 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Fri, 21 Feb 2025 00:34:22 +0100 Subject: [PATCH] Add GUI test for search --- tests/gui/search.goml | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tests/gui/search.goml b/tests/gui/search.goml index 2c81590f..1fbe095f 100644 --- a/tests/gui/search.goml +++ b/tests/gui/search.goml @@ -28,3 +28,48 @@ assert-text: ("#searchresults-header", "") call-function: ("open-search", {}) write: "strikethrough" wait-for-text: ("#searchresults-header", "2 search results for 'strikethrough':") + +// Now we test search shortcuts and more page changes. +go-to: |DOC_PATH| + "index.html" + +// First we ensure that the search input is disabled and hidden. +assert: "#searchbar:disabled" +// This check is to ensure that the search bar is inside the search wrapper. +assert: "#search-wrapper #searchbar" +assert-css: ("#search-wrapper", {"display": "none"}) + +// Now we make the search input appear with the `S` shortcut. +press-key: 'S' +wait-for: "#searchbar:not(:disabled)" +assert-css: ("#search-wrapper", {"display": "block"}) +// We ensure the search bar has the focus. +assert: "#searchbar:focus" + +// Now we press `Escape` to ensure that the search input disappears again. +press-key: 'Escape' +wait-for-css: ("#search-wrapper", {"display": "none"}) + +// Making it appear by clicking on the search button. +click: "#search-toggle" +wait-for-css: ("#search-wrapper", {"display": "block"}) +// We ensure the search bar has the focus. +assert: "#searchbar:focus" + +// We input "test". +write: "test" +// The results should now appear. +wait-for-text: ("#searchresults-header", "search results for 'test':", ENDS_WITH) +assert: "#searchresults" +// Ensure that the URL was updated as well. +assert-document-property: ({"URL": "?search=test"}, ENDS_WITH) + +// Now we ensure that when we land on the page with a "search in progress", the search results are +// loaded and that the search input has focus. +go-to: |DOC_PATH| + "index.html?search=test" +wait-for-text: ("#searchresults-header", "search results for 'test':", ENDS_WITH) +assert: "#searchbar:focus" +assert: "#searchresults" + +// And now we press `Escape` to close everything. +press-key: 'Escape' +wait-for-css: ("#search-wrapper", {"display": "none"})