Example #1
0
 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)
Example #2
0
    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()))
Example #3
0
 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)        
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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)