def test_multi_select_widget(self): """ tests the usage of the FilteredSelectMultiple widget for multi select fields """ driver = self.driver driver.get(self.base_url) ss_path = setup_screenshots_folder( "PNG-metashare.repository.seltests.test_editor.EditorTest", "multi_select_widget") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # login user login_user(driver, "editoruser", "secret") # make sure login was successful self.assertEqual("Logout", driver.find_element_by_xpath("//div[@id='inner']/div[2]/a[3]/div").text) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # Editor driver.find_element_by_css_selector("div.button.middle_button").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # Share/Create Resource mouse_over(driver, driver.find_element_by_link_text("Share/Create")) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) #driver.find_element_by_link_text("Resource").click() click_menu_item(driver, driver.find_element_by_link_text("Resource")) # create text corpus driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) Select(driver.find_element_by_id("id_resourceType")).select_by_visible_text("Corpus") driver.find_element_by_id("id_corpusTextInfo").click() driver.find_element_by_id("id_submit").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) self.assertEqual("Add Resource", driver.find_element_by_css_selector("#content > h1").text) # distribution popup driver.find_element_by_css_selector("img[alt=\"Add information\"]").click() driver.switch_to_window("id_distributionInfo") # show licenses driver.find_element_by_id("fieldsetcollapser0").click() # check that the left window contains all entries self.assertEqual("underNegotiation", driver.find_element_by_xpath( "//select[@id='id_licenceinfotype_model_set-0-licence_from']/option[41]").text) # add an entry driver.find_element_by_xpath( "//select[@id='id_licenceinfotype_model_set-0-licence_from']/option[1]").click() driver.find_element_by_link_text("Add").click() # check that entry has moved to right site self.assertEqual("AGPL", driver.find_element_by_xpath( "//select[@id='id_licenceinfotype_model_set-0-licence_to']/option[1]").text) self.assertEqual("ApacheLicence_V2.0", driver.find_element_by_xpath( "//select[@id='id_licenceinfotype_model_set-0-licence_from']/option[1]").text) # remove entry driver.find_element_by_xpath( "//select[@id='id_licenceinfotype_model_set-0-licence_to']/option[1]").click() driver.find_element_by_link_text("Remove").click() # entry is now at last position on left site self.assertEqual("AGPL", driver.find_element_by_xpath( "//select[@id='id_licenceinfotype_model_set-0-licence_from']/option[41]").text)
def test_filter(self): ss_path = setup_screenshots_folder( "PNG-metashare.repository.seltests.test_editor.FilterTest", "test_filter") driver = self.driver driver.get(self.base_url) driver.find_element_by_id("browse").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) self.assertEqual("17 Language Resources", driver.find_element_by_css_selector("h3").text) # make sure all filters are available self.assertEqual("Availability", driver.find_element_by_link_text("Availability").text) self.assertEqual("Language", driver.find_element_by_link_text("Language").text) self.assertEqual("Licence", driver.find_element_by_link_text("Licence").text) self.assertEqual("Linguality Type", driver.find_element_by_link_text("Linguality Type").text) self.assertEqual("Media Type", driver.find_element_by_link_text("Media Type").text) self.assertEqual("MIME Type", driver.find_element_by_link_text("MIME Type").text) self.assertEqual("Resource Type", driver.find_element_by_link_text("Resource Type").text) self.assertEqual("Restrictions of Use", driver.find_element_by_link_text("Restrictions of Use").text) # check Availability filter driver.find_element_by_link_text("Availability").click() self.assertEqual("Available-restricted Use (17)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[8]/div").text) driver.find_element_by_link_text("Availability").click() # check Language filter driver.find_element_by_link_text("Language").click() self.assertEqual("English (8)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[1]").text) self.assertEqual("Spanish (6)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[2]").text) self.assertEqual("French (3)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[3]").text) self.assertEqual("Italian (3)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[4]").text) self.assertEqual("German (2)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[5]").text) self.assertEqual("more", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[12]").text) # check language filter more/less driver.find_element_by_link_text("more").click() self.assertEqual("Portuguese (2)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[6]").text) self.assertEqual("Arabic (1)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[7]").text) self.assertEqual("Chinese (1)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[8]").text) self.assertEqual("Estonian (1)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[9]").text) self.assertEqual("Thai (1)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[10]").text) self.assertEqual("Turkish (1)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[11]").text) self.assertEqual("less", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[12]").text) driver.find_element_by_link_text("less").click() self.assertEqual("more", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[2]/div[12]").text) driver.find_element_by_link_text("Language").click() # check Licence filter driver.find_element_by_link_text("Licence").click() self.assertEqual("ELRA_VAR (14)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[10]/div[1]").text) self.assertEqual("ELRA_END_USER (13)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[10]/div[2]").text) self.assertEqual("ELRA_EVALUATION (3)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[10]/div[3]").text) driver.find_element_by_link_text("Licence").click() # check Linguality Type filter driver.find_element_by_link_text("Linguality Type").click() self.assertEqual("Monolingual (17)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[14]/div[1]").text) driver.find_element_by_link_text("Linguality Type").click() # check Media Type filter driver.find_element_by_link_text("Media Type").click() self.assertEqual("Text (11)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[6]/div[1]").text) self.assertEqual("Audio (6)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[6]/div[2]").text) driver.find_element_by_link_text("Media Type").click() # check MIME Type filter driver.find_element_by_link_text("MIME Type").click() self.assertEqual("Plain text (2)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[16]/div[1]").text) driver.find_element_by_link_text("MIME Type").click() # check Resource Type filter driver.find_element_by_link_text("Resource Type").click() self.assertEqual("Lexical Conceptual Resource (9)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[4]/div[1]").text) self.assertEqual("Corpus (8)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[4]/div[2]").text) driver.find_element_by_link_text("Resource Type").click() # check Restrictions of Use filter driver.find_element_by_link_text("Restrictions of Use").click() self.assertEqual("Commercial Use (14)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[12]/div[1]").text) self.assertEqual("Academic-non Commercial Use (13)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[12]/div[2]").text) self.assertEqual("Evaluation Use (3)", driver.find_element_by_xpath( "//div[@id='searchFilters']/div[12]/div[3]").text) driver.find_element_by_link_text("Restrictions of Use").click() if True: # test sorting: # default sorting is by resource name, ascending self.assertEqual("Resource Name A-Z", driver.find_element_by_xpath( # first option is selected by default "//select[@name='ordering']/option[1]").text) self.assertEqual("AURORA-5", driver.find_element_by_xpath( "//div[@class='results']/div/a").text) # now sort by Resource name descending Select(driver.find_element_by_name("ordering")).select_by_visible_text("Resource Name Z-A") self.assertEqual("VERBA Polytechnic and Plurilingual Terminological Database - S-AA Anatomy", driver.find_element_by_xpath( "//div[@class='results']/div/a").text) # now sort by resource type ascending Select(driver.find_element_by_name("ordering")).select_by_visible_text("Resource Type A-Z") self.assertEqual("Corpus", driver.find_element_by_xpath( "//div[@class='results']/div/img").get_attribute("title")) # now sort by resource type descending Select(driver.find_element_by_name("ordering")).select_by_visible_text("Resource Type Z-A") self.assertEqual("Lexical Conceptual", driver.find_element_by_xpath( "//div[@class='results']/div/img").get_attribute("title")) # now sort by media type ascending Select(driver.find_element_by_name("ordering")).select_by_visible_text("Media Type A-Z") self.assertEqual("audio", driver.find_element_by_xpath( "//div[@class='results']/div/img[2]").get_attribute("title")) # now sort by media type descending Select(driver.find_element_by_name("ordering")).select_by_visible_text("Media Type Z-A") self.assertEqual("text", driver.find_element_by_xpath( "//div[@class='results']/div/img[2]").get_attribute("title")) # now sort by language ascending Select(driver.find_element_by_name("ordering")).select_by_visible_text("Language Name A-Z") self.assertEqual("Arabic\nEnglish\nFrench", driver.find_element_by_xpath( "//div[@class='results']/div/ul").text) # now sort by language descending Select(driver.find_element_by_name("ordering")).select_by_visible_text("Language Name Z-A") self.assertEqual("Turkish", driver.find_element_by_xpath( "//div[@class='results']/div/ul").text) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # test filter application: # filter by language English driver.find_element_by_link_text("Language").click() driver.find_element_by_link_text("English").click() self.assertEqual("8 Language Resources", driver.find_element_by_css_selector("h3").text) # additionally filter by license driver.find_element_by_link_text("Licence").click() driver.find_element_by_link_text("ELRA_VAR").click() self.assertEqual("5 Language Resources", driver.find_element_by_css_selector("h3").text) # addtionally filter by media type driver.find_element_by_link_text("Media Type").click() driver.find_element_by_link_text("Text").click() self.assertEqual("4 Language Resources", driver.find_element_by_css_selector("h3").text) # additionally filter by restriction of use driver.find_element_by_link_text("Restrictions of Use").click() driver.find_element_by_link_text("Commercial Use").click() self.assertEqual("4 Language Resources", driver.find_element_by_css_selector("h3").text) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # remove language filter driver.find_element_by_link_text("English").click() self.assertEqual("9 Language Resources", driver.find_element_by_css_selector("h3").text) # remove license filter driver.find_element_by_link_text("ELRA_VAR").click() self.assertEqual("9 Language Resources", driver.find_element_by_css_selector("h3").text) # remove media type filter driver.find_element_by_link_text("Text").click() self.assertEqual("14 Language Resources", driver.find_element_by_css_selector("h3").text) # remove restiriction of use filter driver.find_element_by_link_text("Commercial Use").click() self.assertEqual("17 Language Resources", driver.find_element_by_css_selector("h3").text) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time()))
def test_sorting(self): """ tests the sorting of controlled vocabulary in some examplary CharFields used in the Editor """ driver = self.driver driver.get(self.base_url) ss_path = setup_screenshots_folder( "PNG-metashare.repository.seltests.test_editor.EditorTest", "sorting") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # login user login_user(driver, "editoruser", "secret") # make sure login was successful self.assertEqual("Logout", driver.find_element_by_xpath("//div[@id='inner']/div[2]/a[3]/div").text) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # Editor driver.find_element_by_css_selector("div.button.middle_button").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # Share/Create Resource mouse_over(driver, driver.find_element_by_link_text("Share/Create")) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) driver.find_element_by_link_text("Resource").click() # create text corpus driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) Select(driver.find_element_by_id("id_resourceType")).select_by_visible_text("Corpus") driver.find_element_by_id("id_corpusTextInfo").click() driver.find_element_by_id("id_submit").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) self.assertEqual("Add Resource", driver.find_element_by_css_selector("#content > h1").text) # remember root window id root_id = driver.current_window_handle # distribution popup driver.find_element_by_css_selector("img[alt=\"Add information\"]").click() driver.switch_to_window("id_distributionInfo") # check sorting of Availability self.assertEqual("available-restrictedUse", driver.find_element_by_xpath( "//select[@id='id_availability']/option[2]").text) self.assertEqual("available-unrestrictedUse", driver.find_element_by_xpath( "//select[@id='id_availability']/option[3]").text) self.assertEqual("notAvailableThroughMetaShare", driver.find_element_by_xpath( "//select[@id='id_availability']/option[4]").text) self.assertEqual("underNegotiation", driver.find_element_by_xpath( "//select[@id='id_availability']/option[5]").text) driver.find_element_by_name("_save").click() driver.switch_to_window(root_id) # corpus info text popup driver.find_element_by_id("add_id_corpusTextInfo-0").click() driver.switch_to_window("id_corpusTextInfo__dash__0") # check sorting of Linguality self.assertEqual("bilingual", driver.find_element_by_xpath( "//select[@id='id_form-0-lingualityType']/option[2]").text) self.assertEqual("monolingual", driver.find_element_by_xpath( "//select[@id='id_form-0-lingualityType']/option[3]").text) self.assertEqual("multilingual", driver.find_element_by_xpath( "//select[@id='id_form-0-lingualityType']/option[4]").text) # check sorting of Size unit self.assertEqual("4-grams", driver.find_element_by_xpath( "//select[@id='id_sizeinfotype_model_set-0-sizeUnit']/option[2]").text) self.assertEqual("5-grams", driver.find_element_by_xpath( "//select[@id='id_sizeinfotype_model_set-0-sizeUnit']/option[3]").text) self.assertEqual("articles", driver.find_element_by_xpath( "//select[@id='id_sizeinfotype_model_set-0-sizeUnit']/option[4]").text) self.assertEqual("bigrams", driver.find_element_by_xpath( "//select[@id='id_sizeinfotype_model_set-0-sizeUnit']/option[5]").text) self.assertEqual("bytes", driver.find_element_by_xpath( "//select[@id='id_sizeinfotype_model_set-0-sizeUnit']/option[6]").text) self.assertEqual("classes", driver.find_element_by_xpath( "//select[@id='id_sizeinfotype_model_set-0-sizeUnit']/option[7]").text) self.assertEqual("concepts", driver.find_element_by_xpath( "//select[@id='id_sizeinfotype_model_set-0-sizeUnit']/option[8]").text) self.assertEqual("diphones", driver.find_element_by_xpath( "//select[@id='id_sizeinfotype_model_set-0-sizeUnit']/option[9]").text) self.assertEqual("elements", driver.find_element_by_xpath( "//select[@id='id_sizeinfotype_model_set-0-sizeUnit']/option[10]").text) # skip to end of list self.assertEqual("words", driver.find_element_by_xpath( "//select[@id='id_sizeinfotype_model_set-0-sizeUnit']/option[50]").text)
def test_LR_creation_tool(self): driver = self.driver driver.get(self.base_url) ss_path = setup_screenshots_folder( "PNG-metashare.repository.seltests.test_editor.EditorTest", "LR_creation_tool") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # login user login_user(driver, "manageruser", "secret") # make sure login was successful self.assertEqual("Logout", driver.find_element_by_xpath("//div[@id='inner']/div[2]/a[3]/div").text) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # Editor driver.find_element_by_css_selector("div.button.middle_button").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # Share/Create Resource mouse_over(driver, driver.find_element_by_link_text("Share/Create")) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) driver.find_element_by_link_text("Resource").click() # create tool driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) Select(driver.find_element_by_id("id_resourceType")).select_by_visible_text( "Tool / Service") driver.find_element_by_id("id_submit").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) self.assertEqual("Add Resource", driver.find_element_by_css_selector("#content > h1").text) # remember root window id root_id = driver.current_window_handle # add required fields driver.find_element_by_name("key_form-0-resourceName_0").clear() driver.find_element_by_name("key_form-0-resourceName_0").send_keys("en") driver.find_element_by_name("val_form-0-resourceName_0").clear() driver.find_element_by_name("val_form-0-resourceName_0").send_keys("Test Tool") driver.find_element_by_name("key_form-0-description_0").clear() driver.find_element_by_name("key_form-0-description_0").send_keys("en") driver.find_element_by_name("val_form-0-description_0").clear() driver.find_element_by_name("val_form-0-description_0").send_keys("Test Description") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # distribution popup driver.find_element_by_css_selector("img[alt=\"Add information\"]").click() self.fill_distribution(driver, ss_path, root_id) # contact person popup driver.find_element_by_css_selector("img[alt=\"Add Another\"]").click() self.fill_contact_person(driver, ss_path, root_id) # tool info popup driver.find_element_by_id("edit_id_toolServiceInfo").click() driver.switch_to_window("edit_id_toolServiceInfo") Select(driver.find_element_by_id("id_toolServiceType")).select_by_visible_text("tool") Select(driver.find_element_by_id("id_languageDependent")).select_by_visible_text("Yes") # save and close tool info popup driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) driver.find_element_by_name("_save").click() driver.switch_to_window(root_id) # save tool driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) driver.find_element_by_name("_save").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) self.assertEqual("The Resource \"Test Tool\" was added successfully.", driver.find_element_by_css_selector("li.info").text) # ingest resource self.ingest(driver) self.assertEqual("ingested", driver.find_element_by_xpath("//table[@id='result_list']/tbody/tr[1]/td[3]").text) # publish resource self.publish(driver) self.assertEqual("published", driver.find_element_by_xpath("//table[@id='result_list']/tbody/tr[1]/td[3]").text) # delete resource self.delete(driver) self.assertEqual("Successfully deleted 1 Resource.", driver.find_element_by_css_selector("li.info").text)
def test_LR_creation_lang_descr_text(self): driver = self.driver driver.get(self.base_url) ss_path = setup_screenshots_folder( "PNG-metashare.repository.seltests.test_editor.EditorTest", "LR_creation_lang_descr_text") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # login user login_user(driver, "manageruser", "secret") # make sure login was successful self.assertEqual("Logout", driver.find_element_by_xpath("//div[@id='inner']/div[2]/a[3]/div").text) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # Editor driver.find_element_by_css_selector("div.button.middle_button").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # Share/Create Resource mouse_over(driver, driver.find_element_by_link_text("Share/Create")) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) driver.find_element_by_link_text("Resource").click() # create language description driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) Select(driver.find_element_by_id("id_resourceType")).select_by_visible_text( "Language description") driver.find_element_by_id("id_submit").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) self.assertEqual("Add Resource", driver.find_element_by_css_selector("#content > h1").text) # remember root window id root_id = driver.current_window_handle # add required fields driver.find_element_by_name("key_form-0-resourceName_0").clear() driver.find_element_by_name("key_form-0-resourceName_0").send_keys("en") driver.find_element_by_name("val_form-0-resourceName_0").clear() driver.find_element_by_name("val_form-0-resourceName_0").send_keys("Test Text Language Description") driver.find_element_by_name("key_form-0-description_0").clear() driver.find_element_by_name("key_form-0-description_0").send_keys("en") driver.find_element_by_name("val_form-0-description_0").clear() driver.find_element_by_name("val_form-0-description_0").send_keys("Test Description") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # distribution popup driver.find_element_by_css_selector("img[alt=\"Add information\"]").click() self.fill_distribution(driver, ss_path, root_id) # contact person popup driver.find_element_by_css_selector("img[alt=\"Add Another\"]").click() self.fill_contact_person(driver, ss_path, root_id) # language description general info popup driver.find_element_by_id("edit_id_langdescInfo").click() driver.switch_to_window("edit_id_langdescInfo") Select(driver.find_element_by_id("id_languageDescriptionType")).select_by_visible_text( "grammar") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) driver.find_element_by_name("_save").click() driver.switch_to_window(root_id) # language description info text popup driver.find_element_by_id("add_id_languageDescriptionTextInfo").click() driver.switch_to_window("id_languageDescriptionTextInfo") Select(driver.find_element_by_id("id_form-2-0-lingualityType")).select_by_visible_text( "monolingual") # language description info text / language driver.find_element_by_css_selector("img[alt=\"Add Another\"]").click() self.fill_language(driver, ss_path, "languageinfotype_model_set-0-") # save and close language description info text popup driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) driver.find_element_by_name("_save").click() driver.switch_to_window(root_id) # save language description text driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) driver.find_element_by_name("_save").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) self.assertEqual("The Resource \"Test Text Language Description\" was added successfully.", driver.find_element_by_css_selector("li.info").text)
def test_LR_creation_tool(self): # set up the current manager user profile so that it doesn't have any # default editor groups self.manager_user.get_profile().default_editor_groups.clear() driver = self.driver driver.get(self.base_url) ss_path = setup_screenshots_folder( "PNG-metashare.repository.seltests.test_editor.EditorTest", "LR_creation_tool") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # login user login_user(driver, "manageruser", "secret") # make sure login was successful self.assertEqual("Logout", driver.find_element_by_xpath("//div[@id='inner']/div[2]/a/div").text) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # Manage Resources -> Manage all resources mouse_over(driver, driver.find_element_by_link_text("Manage Resources")) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) click_menu_item(driver, driver.find_element_by_link_text("Manage all resources")) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # Add resource driver.find_element_by_link_text("Add Resource").click() # create tool driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) Select(driver.find_element_by_id("id_resourceType")).select_by_visible_text( "Tool / Service") driver.find_element_by_id("id_submit").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) self.assertEqual("Add Resource", driver.find_element_by_css_selector("#content > h1").text) # remember root window id root_id = driver.current_window_handle # add required fields # (add an invalid character in the resource name to verify that invalid # characters are found in DictField values) driver.find_element_by_name("key_form-0-resourceName_0").clear() driver.find_element_by_name("key_form-0-resourceName_0").send_keys("en") driver.find_element_by_name("val_form-0-resourceName_0").clear() driver.find_element_by_name("val_form-0-resourceName_0").send_keys(u"Test\u000b Tool") driver.find_element_by_name("key_form-0-description_0").clear() driver.find_element_by_name("key_form-0-description_0").send_keys("en") driver.find_element_by_name("val_form-0-description_0").clear() driver.find_element_by_name("val_form-0-description_0").send_keys("Test Description") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # distribution popup driver.find_element_by_css_selector("img[alt=\"Add information\"]").click() self.fill_distribution(driver, ss_path, root_id) # contact person popup driver.find_element_by_css_selector("img[alt=\"Add Another\"]").click() self.fill_contact_person(driver, ss_path, root_id) # tool info popup driver.find_element_by_id("edit_id_toolServiceInfo").click() driver.switch_to_window("edit_id_toolServiceInfo") Select(driver.find_element_by_id("id_toolServiceType")).select_by_visible_text("Tool") Select(driver.find_element_by_id("id_languageDependent")).select_by_visible_text("Yes") # save and close tool info popup driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) save_and_close(driver, root_id) # add both optional "Identifier" and "Original metadata schema" fields # (add an invalid character here to verify that invalid characters are # found in both MultiTextField values and in XmlCharField values) _identifier_elem = \ driver.find_element_by_xpath("//ul[@id='widget_1']/li[1]/input") _identifier_elem.clear() _identifier_elem.send_keys(u"test \u0007identifier") driver.find_element_by_id("id_form-2-0-originalMetadataSchema").clear() driver.find_element_by_id("id_form-2-0-originalMetadataSchema") \ .send_keys(u"test metadata schema \u0016A") # save tool - we expect three error messages due to the invalid # characters in some fields: driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) driver.find_element_by_name("_save").click() # TODO remove this workaround when Selenium starts working again as intended time.sleep(1) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) self.assertTrue(driver.find_element_by_xpath( "//div[@id='form-0']/fieldset/div/ul/li").text.startswith( "The character at position 5 () must not be used.")) self.assertTrue(driver.find_element_by_xpath( "//ul[@id='widget_1']/li[1]/small").text.startswith( "The character at position 6 () must not be used.")) self.assertTrue(driver.find_element_by_xpath( "//div[@id='form-2-0']/fieldset/div[3]/ul/li").text.startswith( "The character at position 22 () must not be used.")) # correct the resource name now driver.find_element_by_name("val_form-0-resourceName_0").clear() driver.find_element_by_name("val_form-0-resourceName_0").send_keys("Test Tool") # correct the optional "Identifier" field now _identifier_elem = \ driver.find_element_by_xpath("//ul[@id='widget_1']/li[1]/input") _identifier_elem.clear() _identifier_elem.send_keys(u"test identifier") # correct the optional "Original metadata schema" field now driver.find_element_by_id("id_form-2-0-originalMetadataSchema").clear() driver.find_element_by_id("id_form-2-0-originalMetadataSchema") \ .send_keys(u"test metadata schema") # save tool driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) driver.find_element_by_name("_save").click() # TODO remove this workaround when Selenium starts working again as intended time.sleep(1) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) self.assertEqual("The Resource \"Test Tool\" was added successfully.", driver.find_element_by_css_selector("li.info").text) # make sure that the editor groups list of the created resource is empty # (which resembles the default editor groups list of the creating user) _created_res = resourceInfoType_model.objects.get(pk=1) self.assertEqual(0, _created_res.editor_groups.count(), 'the created resource must not have any editor groups (just like ' \ 'the default groups set of the creating user)') # for the following tests to not fail, we have to add the resource to an # editor group again which is managed by the current user _created_res.editor_groups.add(self.test_editor_group) # make sure an internal resource cannot be published self.publish(driver) self.assertEqual("internal", driver.find_element_by_xpath("//table[@id='result_list']/tbody/tr[1]/td[3]").text) self.assertEqual("Only ingested resources can be published.", driver.find_element_by_css_selector("ul.messagelist>li.error").text) # ingest resource self.ingest(driver) self.assertEqual("ingested", driver.find_element_by_xpath("//table[@id='result_list']/tbody/tr[1]/td[3]").text) self.assertEqual("Successfully ingested 1 internal resource.", driver.find_element_by_css_selector("ul.messagelist>li").text) # publish resource self.publish(driver) self.assertEqual("published", driver.find_element_by_xpath("//table[@id='result_list']/tbody/tr[1]/td[3]").text) self.assertEqual("Successfully published 1 ingested resource.", driver.find_element_by_css_selector("ul.messagelist>li").text) # delete resource self.delete(driver) self.assertEqual("Successfully deleted 1 resource.", driver.find_element_by_css_selector("ul.messagelist>li").text)
def test_LR_creation_lex_resource_text(self): driver = self.driver driver.get(self.base_url) ss_path = setup_screenshots_folder( "PNG-metashare.repository.seltests.test_editor.EditorTest", "LR_creation_lex_resource_text") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # login user login_user(driver, "manageruser", "secret") # make sure login was successful self.assertEqual("Logout", driver.find_element_by_xpath("//div[@id='inner']/div[2]/a/div").text) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # Manage Resources -> Manage all resources mouse_over(driver, driver.find_element_by_link_text("Manage Resources")) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) click_menu_item(driver, driver.find_element_by_link_text("Manage all resources")) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # Add resource driver.find_element_by_link_text("Add Resource").click() # create lexical resource driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) Select(driver.find_element_by_id("id_resourceType")).select_by_visible_text( "Lexical conceptual resource") driver.find_element_by_id("id_submit").click() driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) self.assertEqual("Add Resource", driver.find_element_by_css_selector("#content > h1").text) # remember root window id root_id = driver.current_window_handle # add required fields driver.find_element_by_name("key_form-0-resourceName_0").clear() driver.find_element_by_name("key_form-0-resourceName_0").send_keys("en") driver.find_element_by_name("val_form-0-resourceName_0").clear() driver.find_element_by_name("val_form-0-resourceName_0").send_keys("Test Lexical Resource Text") driver.find_element_by_name("key_form-0-description_0").clear() driver.find_element_by_name("key_form-0-description_0").send_keys("en") driver.find_element_by_name("val_form-0-description_0").clear() driver.find_element_by_name("val_form-0-description_0").send_keys("Test Description") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) # distribution popup driver.find_element_by_css_selector("img[alt=\"Add information\"]").click() self.fill_distribution(driver, ss_path, root_id) # contact person popup driver.find_element_by_css_selector("img[alt=\"Add Another\"]").click() self.fill_contact_person(driver, ss_path, root_id) # lexical resource general info popup driver.find_element_by_id("edit_id_lexiconInfo").click() driver.switch_to_window("edit_id_lexiconInfo") Select(driver.find_element_by_id("id_lexicalConceptualResourceType")).select_by_visible_text( "Word List") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) save_and_close(driver, root_id) # lexical resource text info popup driver.find_element_by_id("add_id_lexicalConceptualResourceTextInfo").click() driver.switch_to_window("id_lexicalConceptualResourceTextInfo") Select(driver.find_element_by_id("id_form-0-lingualityType")).select_by_visible_text( "Monolingual") # lexical resource text info / language self.fill_language(driver, ss_path, "languageinfotype_model_set-0-") # lexical resource text info / size self.fill_text_size(driver, ss_path, "sizeinfotype_model_set-0-") # save and close lexical resource text info popup driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) save_and_close(driver, root_id) # save lexical resource text driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) driver.find_element_by_name("_save").click() # TODO remove this workaround when Selenium starts working again as intended time.sleep(1) driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) self.assertEqual("The Resource \"Test Lexical Resource Text\" was added successfully.", driver.find_element_by_css_selector("li.info").text) # check the editor group of the resource is the default editor group of the user self.assertEqual(self.test_editor_group.name, driver.find_element_by_xpath("//table[@id='result_list']/tbody/tr[1]/td[5]").text) # make sure an internal resource cannot be published self.publish(driver) self.assertEqual("internal", driver.find_element_by_xpath("//table[@id='result_list']/tbody/tr[1]/td[3]").text) self.assertEqual("Only ingested resources can be published.", driver.find_element_by_css_selector("ul.messagelist>li.error").text) # ingest resource self.ingest(driver) self.assertEqual("ingested", driver.find_element_by_xpath("//table[@id='result_list']/tbody/tr[1]/td[3]").text) self.assertEqual("Successfully ingested 1 internal resource.", driver.find_element_by_css_selector("ul.messagelist>li").text) # publish resource self.publish(driver) self.assertEqual("published", driver.find_element_by_xpath("//table[@id='result_list']/tbody/tr[1]/td[3]").text) self.assertEqual("Successfully published 1 ingested resource.", driver.find_element_by_css_selector("ul.messagelist>li").text) # delete resource self.delete(driver) self.assertEqual("Successfully deleted 1 resource.", driver.find_element_by_css_selector("ul.messagelist>li").text)