def testShouldCheckLibDeactivateAndActivate(self, mozwebqa): homepage_obj = HomePage(mozwebqa) loginpage_obj = LoginPage(mozwebqa) dashboardpage_obj = DashboardPage(mozwebqa) librarypage_obj = LibraryEditorPage(mozwebqa) homepage_obj.go_to_home_page() homepage_obj.header.click_signin() loginpage_obj.login() Assert.true(dashboardpage_obj.is_the_current_page) # go back to homepage, create a new library to work with dashboardpage_obj.header.click_home_logo() homepage_obj.click_create_lib_btn() library_name = librarypage_obj.library_name librarypage_obj.header.click_dashboard() #Click on the private button to make it private and then check that the library is not in the list anymore dashboardpage_obj.library(library_name).click_private() Assert.false(dashboardpage_obj.library(library_name).is_displayed, "Library %s found" % library_name) #Go to the private libraries page and check that the library that you just made private is present there. #Click on public to make it public and check on the dashboard that the library is present there. dashboardpage_obj.click_private_libraries_link() Assert.true(dashboardpage_obj.library(library_name).is_displayed, "Library %s not found" % library_name) # Switch it back to public - it should disappaer dashboardpage_obj.library(library_name).click_public() Assert.false(dashboardpage_obj.library(library_name).is_displayed, "Library %s found" % library_name) # Go to main dashboard, should be present dashboardpage_obj.header.click_dashboard() Assert.true(dashboardpage_obj.library(library_name).is_displayed, "Library %s not found" % library_name) dashboardpage_obj.delete_test_data()
def testShouldCheckAddonLabel(self, mozwebqa): #This test is to check the labels of an add-on on the dashboard #Create page objects homepage_obj = HomePage(mozwebqa) loginpage_obj = LoginPage(mozwebqa) dashboardpage_obj = DashboardPage(mozwebqa) addonpage_obj = AddonEditorPage(mozwebqa) loginpage_obj.login() #Create an addon. Then go to dashboard and assert that the label is 'initial'. homepage_obj.go_to_home_page() homepage_obj.click_create_addon_btn() addon_name = addonpage_obj.addon_name homepage_obj.header.click_dashboard() Assert.true(dashboardpage_obj.is_the_current_page) Assert.true(dashboardpage_obj.addon(addon_name).is_displayed, "Addon %s not found" % addon_name) #Click on the edit button of the addon.Then create a copy of that addon and assert that the label is 'copy' dashboardpage_obj.addon(addon_name).click_edit() addonpage_obj.click_copy() copy_addon_name = addonpage_obj.addon_name try: Assert.not_equal(addon_name, copy_addon_name) except: print 'A copy of the addon could not be created' homepage_obj.header.click_dashboard() Assert.true(dashboardpage_obj.addon(copy_addon_name).is_displayed, "Addon %s not found" % copy_addon_name) dashboardpage_obj.delete_test_data()
def testShouldCheckAddonDeactivateAndActivate(self, mozwebqa): homepage_obj = HomePage(mozwebqa) loginpage_obj = LoginPage(mozwebqa) dashboardpage_obj = DashboardPage(mozwebqa) addonpage_obj = AddonEditorPage(mozwebqa) homepage_obj.go_to_home_page() homepage_obj.header.click_signin() loginpage_obj.login() Assert.true(dashboardpage_obj.is_the_current_page) # Go back to homepage and create a new addon to work with. dashboardpage_obj.header.click_home_logo() homepage_obj.click_create_addon_btn() addon_name = addonpage_obj.addon_name addonpage_obj.header.click_dashboard() #Click on the private button to make it private and then check that the addon is not in the list anymore dashboardpage_obj.addon(addon_name).click_private() Assert.false(dashboardpage_obj.addon(addon_name).is_displayed, "Addon %s found" % addon_name) #Go to the private addons page and check that the addon that you just made private is present there. #Click on public to make it public and check on the dashboard that the addon is present there. dashboardpage_obj.click_private_addons_link() Assert.true(dashboardpage_obj.addon(addon_name).is_displayed, "Addon %s not found" % addon_name) # Switch it back to public now, addon should disappear dashboardpage_obj.addon(addon_name).click_public() Assert.false(dashboardpage_obj.addon(addon_name).is_displayed, "Addon %s found" % addon_name) # Should be on main dashboard page dashboardpage_obj.header.click_dashboard() Assert.true(dashboardpage_obj.addon(addon_name).is_displayed, "Addon %s not found" % addon_name) dashboardpage_obj.delete_test_data()
def test_create_addon(self, mozwebqa): #This test is to check the labels of an add-on on the dashboard #Create page objects homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() loginpage_obj = homepage_obj.header.click_signin() dashboard_obj = loginpage_obj.login() #Create an addon. Then go to dashboard and assert that the label is 'initial'. homepage_obj = dashboard_obj.go_to_home_page() addonpage_obj = homepage_obj.click_create_addon_btn() addon_name = addonpage_obj.package_name dashboard_obj = addonpage_obj.header.click_dashboard() Assert.true(dashboard_obj.is_the_current_page) Assert.true(dashboard_obj.addon(addon_name).is_displayed, "Addon %s not found" % addon_name) #Click on the edit button of the addon.Then create a copy of that addon and assert that the label is 'copy' addonpage_obj = dashboard_obj.addon(addon_name).click_edit() addonpage_obj.click_copy() copy_addon_name = addonpage_obj.package_name Assert.contains(addon_name, copy_addon_name) Assert.contains('copy', copy_addon_name) dashboard_obj = homepage_obj.header.click_dashboard() Assert.true(dashboard_obj.addon(copy_addon_name).is_displayed, "Addon %s not found" % copy_addon_name) dashboard_obj.delete_test_data()
def test_create_library(self, mozwebqa): #This test is to check the labels of a library on the dashboard #Create page objects homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() loginpage_obj = homepage_obj.header.click_signin() dashboard_obj = loginpage_obj.login() #Create a library. Then go to dashboard and assert that the label is present. homepage_obj = dashboard_obj.go_to_home_page() libpage_obj = homepage_obj.click_create_lib_btn() library_name = libpage_obj.package_name dashboard_obj = libpage_obj.header.click_dashboard() Assert.true(dashboard_obj.is_the_current_page) Assert.true(dashboard_obj.library(library_name).is_displayed, "Library %s not found" % library_name) #Click on the edit button of the library.Then create a copy of that library and assert that the label is 'copy' libpage_obj = dashboard_obj.library(library_name).click_edit() libpage_obj.click_copy() copy_library_name = libpage_obj.package_name Assert.contains(library_name, copy_library_name) Assert.contains('copy', copy_library_name) dashboard_obj = libpage_obj.header.click_dashboard() Assert.true(dashboard_obj.library(copy_library_name).is_displayed, "Library %s not found" % copy_library_name) dashboard_obj.delete_test_data()
def testShouldCheckLibraryLabel(self, mozwebqa): #This test is to check the labels of a library on the dashboard #Create page objects homepage_obj = HomePage(mozwebqa) loginpage_obj = LoginPage(mozwebqa) dashboardpage_obj = DashboardPage(mozwebqa) libpage_obj = LibraryEditorPage(mozwebqa) loginpage_obj.login() #Create a library. Then go to dashboard and assert that the label is present. homepage_obj.go_to_home_page() homepage_obj.click_create_lib_btn() library_name = libpage_obj.library_name libpage_obj.header.click_dashboard() Assert.true(dashboardpage_obj.is_the_current_page) Assert.true(dashboardpage_obj.library(library_name).is_displayed, "Library %s not found" % library_name) #Click on the edit button of the library.Then create a copy of that library and assert that the label is 'copy' dashboardpage_obj.library(library_name).click_edit() libpage_obj.click_copy() copy_library_name = libpage_obj.library_name try: Assert.not_equal(library_name, copy_library_name) except: print 'A copy of the library could not be created' libpage_obj.header.click_dashboard() Assert.true(dashboardpage_obj.library(copy_library_name).is_displayed, "Library %s not found" % copy_library_name) dashboardpage_obj.delete_test_data()
def test_search_by_library_name_returns_library(self, mozwebqa): homepage_obj = HomePage(mozwebqa) loginpage_obj = LoginPage(mozwebqa) dashboard_obj = DashboardPage(mozwebqa) librarypage_obj = LibraryEditorPage(mozwebqa) searchpage_obj = SearchPage(mozwebqa) homepage_obj.go_to_home_page() homepage_obj.header.click_signin() loginpage_obj.login() #create a new library with the valid criteria (version not initial) dashboard_obj.header.click_home_logo() homepage_obj.click_create_lib_btn() librarypage_obj.type_library_version('searchable') librarypage_obj.click_save() searchterm = librarypage_obj.library_name librarypage_obj.header.click_home_logo() homepage_obj.header.click_search() searchpage_obj.search_until_package_exists(searchterm, searchpage_obj.library(searchterm)) Assert.true(searchpage_obj.library(searchterm).is_displayed, '%s not found before timeout' % searchterm) searchpage_obj.delete_test_data()
def test_doc_link_redirects(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() link = homepage_obj.header.documentation_link homepage_obj.selenium.get(link) Assert.contains("https://addons.mozilla.org/en-US/developers/docs/sdk/latest/", homepage_obj.selenium.current_url)
def test_addons_libraries_listed_on_home(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() #3 of each should be present Assert.equal(homepage_obj.browse_addons_count, 3) Assert.equal(homepage_obj.browse_libraries_count, 3)
def test_login(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() loginpage_obj = homepage_obj.header.click_signin() Assert.true(loginpage_obj.is_the_current_page) dashboard_obj = loginpage_obj.login() Assert.true(dashboard_obj.is_the_current_page) Assert.true(dashboard_obj.header.logged_in) Assert.equal(dashboard_obj.logged_in_username, mozwebqa.credentials['default']['name'])
def test_view_source_library(self, mozwebqa): #This test is to check viewing the source of a library while not logged in homepage_obj = HomePage(mozwebqa) #Go to search page and click view source on the first library listed homepage_obj.go_to_home_page() searchpage_obj = homepage_obj.header.click_search() libraryeditor_obj = searchpage_obj.library(1).click() Assert.true(libraryeditor_obj.tab(1).selected) Assert.not_none(libraryeditor_obj.tab(1).content)
def test_view_source_addon(self, mozwebqa): #This test is to check viewing the source of an addon while not logged in homepage_obj = HomePage(mozwebqa) #Go to search page and click view source on the first addon listed homepage_obj.go_to_home_page() searchpage_obj = homepage_obj.header.click_search() addoneditor_obj = searchpage_obj.addon(1).click() # TODO: wtf Assert.true(addoneditor_obj.tab(1).selected) Assert.not_none(addoneditor_obj.tab(1).content)
def test_used_packages_slider_filters_results(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() searchpage_obj = homepage_obj.header.click_search() searchpage_obj.click_filter_libraries_link() initial_library_count = searchpage_obj.library_count_label searchpage_obj.move_used_packages_slider(10) Assert.true(initial_library_count > searchpage_obj.library_count_label)
def test_activity_slider_filters_results(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() searchpage_obj = homepage_obj.header.click_search() initial_addon_count = searchpage_obj.addons_count_label initial_library_count = searchpage_obj.library_count_label searchpage_obj.move_activity_slider(1) Assert.true(initial_addon_count > searchpage_obj.addons_count_label) Assert.true(initial_library_count > searchpage_obj.library_count_label)
def test_clicking_library_author_link_displays_author_profile(self, mozwebqa): # go to library result and click author link homepage_obj = HomePage(mozwebqa) userpage_obj = UserPage(mozwebqa) homepage_obj.go_to_home_page() searchpage_obj = homepage_obj.header.click_search() library_name = searchpage_obj.library(1).name author_name = searchpage_obj.library(library_name).author_name searchpage_obj.library(library_name).click_author() Assert.equal(userpage_obj.author_name.lower(), author_name)
def test_clicking_addon_author_link_displays_author_profile(self, mozwebqa): # go to addon result and click author link homepage_obj = HomePage(mozwebqa) userpage_obj = UserPage(mozwebqa) searchpage_obj = SearchPage(mozwebqa) homepage_obj.go_to_home_page() homepage_obj.header.click_search() addon_name = searchpage_obj.addon(1).name author_name = searchpage_obj.addon(addon_name).author_name searchpage_obj.addon(addon_name).click_author() Assert.equal(userpage_obj.author_name.lower(), author_name)
def test_empty_search_returns_all_results(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() searchpage_obj = homepage_obj.header.click_search() # search with a zero length string should still return results # default display is for 5 addons/5 libraries # same as filtering by 'Combined' searchpage_obj.clear_search() searchpage_obj.click_search() Assert.equal(searchpage_obj.addons_element_count(), 5) Assert.equal(searchpage_obj.library_element_count(), 5)
def test_clicking_library_source_displays_editor(self, mozwebqa): homepage_obj = HomePage(mozwebqa) editorpage_obj = LibraryEditorPage(mozwebqa) homepage_obj.go_to_home_page() loginpage_obj = homepage_obj.header.click_signin() dashboard_obj = loginpage_obj.login() searchpage_obj = dashboard_obj.header.click_search() library_name = searchpage_obj.library(1).name searchpage_obj.library(library_name).click() Assert.equal(editorpage_obj.package_name, library_name) searchpage_obj.delete_test_data()
def test_clicking_addon_source_displays_editor(self, mozwebqa): homepage_obj = HomePage(mozwebqa) editorpage_obj = AddonEditorPage(mozwebqa) homepage_obj.go_to_home_page() loginpage_obj = homepage_obj.header.click_signin() dashboard_obj = loginpage_obj.login() searchpage_obj = dashboard_obj.header.click_search() addon_name = searchpage_obj.addon(1).name searchpage_obj.addon(addon_name).click() Assert.equal(editorpage_obj.addon_name, addon_name) searchpage_obj.delete_test_data()
def test_library_delete(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() loginpage_obj = homepage_obj.header.click_signin() dashboard_obj = loginpage_obj.login() homepage_obj = dashboard_obj.go_to_home_page() libpage_obj = homepage_obj.click_create_lib_btn() library_name = libpage_obj.library_name dashboard_obj = homepage_obj.header.click_dashboard() dashboard_obj.library(library_name).click_delete() dashboard_obj.library(library_name).confirm_delete() Assert.false(dashboard_obj.library(library_name).is_displayed, "Library %s found" % library_name)
def test_search_partial_library_name_returns_library(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() searchpage_obj = homepage_obj.header.click_search() # get library name, split string in half and search with it # results should be returned including the original addon top_library_name = searchpage_obj.library(1).name search_string = top_library_name[:4] searchpage_obj.type_search_term(search_string) searchpage_obj.click_search() Assert.true(searchpage_obj.library_element_count() >= 1) Assert.true(searchpage_obj.library(top_library_name).is_displayed, 'Library \'%s\' not found' % top_library_name)
def test_addon_delete(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() loginpage_obj = homepage_obj.header.click_signin() dashboard_obj = loginpage_obj.login() homepage_obj = dashboard_obj.go_to_home_page() addonpage_obj = homepage_obj.click_create_addon_btn() #Get the name of the addon on the editor page. addon_name = addonpage_obj.addon_name #Go the the dashboard and delete the addon that you just created. Then check that the addon at the top of the list is not the same as the one you just deleted. dashboard_obj = homepage_obj.header.click_dashboard() dashboard_obj.addon(addon_name).click_delete() dashboard_obj.addon(addon_name).confirm_delete() Assert.false(dashboard_obj.addon(addon_name).is_displayed, "Addon %s found" % addon_name)
def testShouldCheckLibDelete(self, mozwebqa): homepage_obj = HomePage(mozwebqa) loginpage_obj = LoginPage(mozwebqa) dashboardpage_obj = DashboardPage(mozwebqa) libpage_obj = LibraryEditorPage(mozwebqa) homepage_obj.go_to_home_page() loginpage_obj.login() homepage_obj.go_to_home_page() homepage_obj.click_create_lib_btn() library_name = libpage_obj.library_name homepage_obj.header.click_dashboard() dashboardpage_obj.library(library_name).click_delete() dashboardpage_obj.library(library_name).confirm_delete() Assert.false(dashboardpage_obj.library(library_name).is_displayed, "Library %s found" % library_name)
def test_addon_count(self, mozwebqa): #This test is to assert that the count of the addons on dashboard is equal to the number of addons present on the page. #Create page objects homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() loginpage_obj = homepage_obj.header.click_signin() dashboard_obj = loginpage_obj.login() Assert.true(dashboard_obj.is_the_current_page) #Get the total count of the number of add-ons that are displayed on the dashboard. addon_count = dashboard_obj.addons_element_count() #Get the number of addons that are displayed on the left hand side of the page.(Something like your add-ons(20)) counter = dashboard_obj.addons_count_label #Assert that the total addons on the page matches the counter on the left hand side. Assert.equal(str(addon_count), str(counter))
def test_search_partial_addon_name_returns_addon(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() searchpage_obj = homepage_obj.header.click_search() # get addon name, split string in half and search with it # results should be returned including the original addon top_addon_name = searchpage_obj.addon(1).name search_string = top_addon_name[:4] searchpage_obj.type_search_term(search_string) searchpage_obj.click_search() if searchpage_obj.is_see_all_matching_addons_visible: searchpage_obj.click_see_all_matching_addons() Assert.greater_equal(searchpage_obj.addons_element_count, 1) Assert.true(searchpage_obj.addon(top_addon_name).is_displayed, 'Addon \'%s\' not found' % top_addon_name)
def test_search_library_filter_results_match(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() searchpage_obj = homepage_obj.header.click_search() # search with a generic but safe string 'test' # filter by add-on results and check number searchpage_obj.type_search_term('test') searchpage_obj.click_search() searchpage_obj.click_filter_libraries_link() # 20 items maximum per page label_count = min(searchpage_obj.library_count_label, 20) element_count = searchpage_obj.library_element_count() Assert.equal(label_count, element_count, 'Number of items displayed should match 20 or total number of results, whichever is smallest. This is due to pagination.')
def test_rename_addon(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() loginpage_obj = homepage_obj.header.click_signin() dashboard_obj = loginpage_obj.login() new_addon_name = 'renamed addon ' + str(randint(1, 1000)) #Create an addon. homepage_obj = dashboard_obj.go_to_home_page() addonpage_obj = homepage_obj.click_create_addon_btn() #Click properties and change its name addonpage_obj.click_properties() addonpage_obj.type_package_name(new_addon_name) addonpage_obj.click_properties_save() Assert.equal(addonpage_obj.package_name, new_addon_name) addonpage_obj.delete_test_data()
def test_search_by_addon_name_returns_addon(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() loginpage_obj = homepage_obj.header.click_signin() dashboard_obj = loginpage_obj.login() #create a new addon with the valid criteria (version not initial) homepage_obj = dashboard_obj.header.click_home_logo() addonpage_obj = homepage_obj.click_create_addon_btn() addonpage_obj.type_package_version('searchable') addonpage_obj.click_save() searchterm = addonpage_obj.package_name homepage_obj = addonpage_obj.header.click_home_logo() searchpage_obj = homepage_obj.header.click_search() searchpage_obj.search_until_package_exists(searchterm, searchpage_obj.addon(searchterm)) Assert.true(searchpage_obj.addon(searchterm).is_displayed, '%s not found before timeout' % searchterm) searchpage_obj.delete_test_data()
def test_default_search_order_is_by_activity(self, mozwebqa): homepage_obj = HomePage(mozwebqa) homepage_obj.go_to_home_page() searchpage_obj = homepage_obj.header.click_search() searchpage_obj.type_search_term('addon') searchpage_obj.click_search() searchpage_obj.click_see_all_matching_addons() Assert.equal('Activity', searchpage_obj.current_sort_method) addons_activity_property_list = [] while searchpage_obj.paginator.is_next_visible: for lookup in range(1, searchpage_obj.addons_element_count + 1): addons_activity_property_list.append( searchpage_obj.addon(lookup).activity_rating) Assert.is_sorted_descending(addons_activity_property_list, 'The addons are not sorted by Activity') searchpage_obj.paginator.next()