mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-26 17:48:30 +08:00
Adds a search field to the page header on desktop that is controlled by a site setting (within Search). The search field toggles back to the search icon (magnifying class) when the header is minimized (ie. scrolling in topics) and restores to the field again when header is no longer minimized. On mobile the search experience is still the same.
108 lines
2.6 KiB
Ruby
Vendored
108 lines
2.6 KiB
Ruby
Vendored
# frozen_string_literal: true
|
|
|
|
module PageObjects
|
|
module Pages
|
|
class Search < PageObjects::Pages::Base
|
|
def type_in_search(input)
|
|
find("input.full-page-search").send_keys(input)
|
|
self
|
|
end
|
|
|
|
def type_in_search_menu(input)
|
|
find("input#search-term").send_keys(input)
|
|
self
|
|
end
|
|
|
|
def click_search_menu_link
|
|
find(".search-menu .results .search-link").click
|
|
end
|
|
|
|
def clear_search_input
|
|
find("input.full-page-search").set("")
|
|
self
|
|
end
|
|
|
|
def heading_text
|
|
find("h1.search-page-heading").text
|
|
end
|
|
|
|
def click_search_button
|
|
find(".search-cta").click
|
|
end
|
|
|
|
def click_search_icon
|
|
find(".d-header #search-button").click
|
|
end
|
|
|
|
def click_in_posts_by_user
|
|
find(".search-menu-container .search-menu-assistant-item").click
|
|
end
|
|
|
|
def click_first_topic
|
|
find(".topic-list-body tr:first-of-type").click
|
|
end
|
|
|
|
def has_search_menu_visible?
|
|
page.has_selector?(".search-menu .search-menu-panel", visible: true)
|
|
end
|
|
|
|
def has_no_search_menu_visible?
|
|
page.has_no_selector?(".search-menu .search-menu-panel")
|
|
end
|
|
|
|
SEARCH_ICON_SELECTOR = "#search-button.btn-icon"
|
|
SEARCH_FIELD_SELECTOR = ".floating-search-input .search-menu"
|
|
SEARCH_RESULT_SELECTOR = ".search-results .fps-result"
|
|
|
|
def has_search_icon?
|
|
page.has_selector?(SEARCH_ICON_SELECTOR, visible: true)
|
|
end
|
|
|
|
def has_no_search_icon?
|
|
page.has_no_selector?(SEARCH_ICON_SELECTOR)
|
|
end
|
|
|
|
def has_search_field?
|
|
page.has_selector?(SEARCH_FIELD_SELECTOR, visible: true)
|
|
end
|
|
|
|
def has_no_search_field?
|
|
page.has_no_selector?(SEARCH_FIELD_SELECTOR)
|
|
end
|
|
|
|
def has_topic_title_for_first_search_result?(title)
|
|
page.has_css?(".search-menu .results .search-result-topic", text: title)
|
|
end
|
|
|
|
def has_search_result?
|
|
page.has_selector?(SEARCH_RESULT_SELECTOR)
|
|
end
|
|
|
|
def has_no_search_result?
|
|
page.has_no_selector?(SEARCH_RESULT_SELECTOR)
|
|
end
|
|
|
|
def has_warning_message?
|
|
page.has_selector?(".search-results .warning")
|
|
end
|
|
|
|
def has_found_no_results?
|
|
page.has_css?(".search-menu-container .results .no-results")
|
|
end
|
|
|
|
def search_term
|
|
page.find("#search-term").value
|
|
end
|
|
|
|
SEARCH_PAGE_SELECTOR = "body.search-page"
|
|
|
|
def active?
|
|
has_css?(SEARCH_PAGE_SELECTOR)
|
|
end
|
|
|
|
def not_active?
|
|
has_no_css?(SEARCH_PAGE_SELECTOR)
|
|
end
|
|
end
|
|
end
|
|
end
|