def fill_audio_size(self, driver, ss_path, parent_id): """ fills the text size with required information """ driver.switch_to_window("id_audioSizeInfo") driver.find_element_by_id("id_sizeinfotype_model_set-0-size").send_keys("100") Select(driver.find_element_by_id("id_sizeinfotype_model_set-0-sizeUnit")).select_by_visible_text("Gb") save_and_close(driver, parent_id)
def fill_distribution(self, driver, ss_path, parent_id): """ fills the distribution popup with required information and returns to the parent window """ driver.switch_to_window("id_distributionInfo") Select(driver.find_element_by_id("id_availability")).select_by_visible_text( "Available - Unrestricted Use") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) save_and_close(driver, parent_id)
def fill_contact_person(self, driver, ss_path, parent_id): """ fills the contact person popup with required information and returns to the parent window """ driver.switch_to_window("id_contactPerson") driver.find_element_by_name("key_surname_0").clear() driver.find_element_by_name("key_surname_0").send_keys("en") driver.find_element_by_name("val_surname_0").clear() driver.find_element_by_name("val_surname_0").send_keys("Mustermann") driver.find_element_by_id("id_form-0-email").clear() driver.find_element_by_id("id_form-0-email").send_keys("*****@*****.**") driver.get_screenshot_as_file('{0}/{1}.png'.format(ss_path, time.time())) save_and_close(driver, parent_id)
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/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 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 - Restricted Use", driver.find_element_by_xpath( "//select[@id='id_availability']/option[2]").text) self.assertEqual("Available - Unrestricted Use", driver.find_element_by_xpath( "//select[@id='id_availability']/option[3]").text) self.assertEqual("Not Available Through Meta Share", driver.find_element_by_xpath( "//select[@id='id_availability']/option[4]").text) self.assertEqual("Under Negotiation", driver.find_element_by_xpath( "//select[@id='id_availability']/option[5]").text) save_and_close(driver, 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): # 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)
def fill_audio_size(self, driver, ss_path, parent_id): driver.switch_to_window("id_audioSizeInfo") # TODO: the popup can be saved immediately, but still audio size is required in corpus audio info save_and_close(driver, parent_id)
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() click_menu_item(driver, driver.find_element_by_link_text("Resource")) # 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())) save_and_close(driver, 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)