def test_extension_landing_header(base_url, selenium): extensions = Extensions(selenium, base_url).open() # checking that 'Extensions' is underlined in the header menu assert 'Extensions' in extensions.header.is_active_link assert 'Extensions' in extensions.title assert 'Explore powerful tools and features' \ in extensions.header_summary
def test_browse_more_recommended_extensions(base_url, selenium): extensions = Extensions(selenium, base_url).open() extensions.shelves.recommended_addons.browse_all() assert 'type=extension' in selenium.current_url search_results = Search(selenium, base_url) select = Select(search_results.filter_by_badging) assert select.first_selected_option.text == 'Recommended' for result in search_results.result_list.extensions: assert 'Recommended' in result.promoted_badge_label
def test_extensions_categories(base_url, selenium, count, category): extensions = Extensions(selenium, base_url).open() # clicking through each Category listed on Extensions homepage extensions.categories.category_list[count].click() category_results = Search(selenium, base_url) # checking that category search results are loaded and sorted by users category_results.wait_for_contextcard_update(category) select = Select(category_results.filter_by_sort) assert 'Most Users' in select.first_selected_option.text
def test_category_section_loads_correct_category(base_url, selenium): page = Extensions(selenium, base_url).open() item = page.categories.category_list[0] name = item.name category = item.click() WebDriverWait(selenium, 10).until( EC.text_to_be_present_in_element( (By.CLASS_NAME, 'SearchContextCard-header'), name)) assert name in category.header.name
def test_top_rated_extensions(base_url, selenium): extensions = Extensions(selenium, base_url).open() shelf_items = extensions.shelves.top_rated_addons.list assert 'Top rated extensions' in extensions.shelves.top_rated_addons.card_header # the following statements are checking that each shelf has four addons # and each addon has a name, icon and number of users assert len(shelf_items) == 4 for item in shelf_items: assert item.name assert item.addon_icon_preview.is_displayed() assert item.addon_users_preview.is_displayed()
def test_browse_more_top_rated_extensions(base_url, selenium): extensions = Extensions(selenium, base_url).open() extensions.shelves.top_rated_addons.browse_all() assert 'sort=rating&type=extension' in selenium.current_url search_results = Search(selenium, base_url) select = Select(search_results.filter_by_badging) assert select.first_selected_option.text == 'Recommended' for result in search_results.result_list.extensions: assert 'Recommended' in result.promoted_badge_label # using a list slice below (normal len is 25) to validate rating ordering # because not all addons in the list have a rating on stage ratings = search_results.result_list.extensions[0:16] for rating in ratings: assert rating.rating >= 4
def test_explore_section_loads(base_url, selenium): page = Extensions(selenium, base_url).open() page.header.click_explore() assert 'firefox/' in selenium.current_url
def click(self): self.root.click() from pages.desktop.extensions import Extensions return Extensions(self.selenium, self.page.base_url)
def click(self): self.find_element(*self._extension_link_locator).click() from pages.desktop.extensions import Extensions return Extensions(self.selenium, self.page.base_url)
def click_extensions(self): self.find_element(*self._extensions_locator).click() from pages.desktop.extensions import Extensions return Extensions(self.selenium, self.page.base_url).wait_for_page_to_load()
def test_category_section_loads_correct_category(base_url, selenium): page = Extensions(selenium, base_url).open() item = page.categories.category_list[0] name = item.name category = item.click() assert name in category.header.name
def test_title_routes_to_home(base_url, selenium): page = Extensions(selenium, base_url).open() home = page.header.click_title() assert home.hero_banner.is_displayed()