Пример #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)
Пример #2
0
 def test_status_after_saving(self):
     
     # load test fixture and set its status to 'published'
     test_utils.setup_test_storage()
     _result = test_utils.import_xml(TESTFIXTURE_XML)
     resource = resourceInfoType_model.objects.get(pk=_result[0].id)
     resource.editor_groups.add(self.test_editor_group)
     resource.storage_object.published = True
     # this also saves the storage object:
     resource.save()
 
     driver = self.driver
     driver.get(self.base_url)
     # 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)
     # go to Editor
     driver.find_element_by_css_selector("div.button.middle_button").click()
     # go to Update->Resource
     mouse_over(driver, driver.find_element_by_link_text("Update"))
     #driver.find_element_by_link_text("Resource").click()        
     click_menu_item(driver, driver.find_element_by_link_text("Resource"))
     # make sure we are on the right site
     self.assertEqual("Select Resource to change | META-SHARE backend", driver.title)
     # check if LR entry is available and that its status is published
     try: 
         self.assertEqual("REVEAL-THIS Corpus",
             driver.find_element_by_link_text("REVEAL-THIS Corpus").text)
     except AssertionError as e: 
         self.verification_errors.append(str(e))
     try: 
         self.assertEqual(
           "published", 
           driver.find_element_by_xpath("//table[@id='result_list']/tbody/tr/td[3]").text)
     except AssertionError as e: 
         self.verification_errors.append(str(e))
     # click LR to edit it
     driver.find_element_by_link_text("REVEAL-THIS Corpus").click()
     # change the short name and save the LR
     driver.find_element_by_name("key_form-0-resourceShortName_0").clear()
     driver.find_element_by_name("key_form-0-resourceShortName_0").send_keys("en")
     driver.find_element_by_name("val_form-0-resourceShortName_0").clear()
     driver.find_element_by_name("val_form-0-resourceShortName_0").send_keys("a random short name")
     driver.find_element_by_name("_save").click()
     # make sure that the LR status is still published after saving
     try: 
         self.assertEqual(
           "published", 
           driver.find_element_by_xpath("//table[@id='result_list']/tbody/tr/td[3]").text)
     except AssertionError as e: 
         self.verification_errors.append(str(e))
Пример #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)        
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #8
0
 def test_LR_creation_corpus_text(self):
     driver = self.driver
     driver.get(self.base_url)
     ss_path = '{}/reports/PNG-metashare.repository.seltests.test_editor.EditorTest/'.format(ROOT_PATH) + \
       'LR_creation_corpus_text'.format(ROOT_PATH)
     if not os.path.exists(ss_path):
         os.makedirs(ss_path)
     driver.get_screenshot_as_file('{}/01.png'.format(ss_path))  
     # 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('{}/02.png'.format(ss_path))
     # Editor
     driver.find_element_by_css_selector("div.button.middle_button").click()
     driver.get_screenshot_as_file('{}/03.png'.format(ss_path))
     # Share/Create Resource
     mouse_over(driver, driver.find_element_by_link_text("Share/Create"))
     driver.get_screenshot_as_file('{}/04.png'.format(ss_path))
     driver.find_element_by_link_text("Resource").click()
     # hover does not work, link not visible, so directly call the target url:
     #driver.get(self.base_url + "editor/repository/resourceinfotype_model/add/")
     # create text corpus
     driver.get_screenshot_as_file('{}/05.png'.format(ss_path))
     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('{}/06.png'.format(ss_path))
     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_id("id_form-0-resourceName").clear()
     driver.find_element_by_id("id_form-0-resourceName").send_keys("Test Text Corpus")
     driver.find_element_by_id("id_form-0-description").clear()
     driver.find_element_by_id("id_form-0-description").send_keys("Test Description")
     driver.find_element_by_link_text("Today").click()
     driver.get_screenshot_as_file('{}/07.png'.format(ss_path))
     # distribution popup       
     driver.find_element_by_css_selector("img[alt=\"Add information\"]").click()
     driver.switch_to_window("id_distributionInfo")
     Select(driver.find_element_by_id("id_availability")).select_by_visible_text(
       "available-unrestrictedUse")
     driver.get_screenshot_as_file('{}/08.png'.format(ss_path))
     driver.find_element_by_name("_save").click()
     driver.switch_to_window(root_id)
     # contact person popup
     driver.find_element_by_css_selector("img[alt=\"Add Another\"]").click()
     driver.switch_to_window("id_contactPerson")
     driver.find_element_by_id("id_surname").clear()
     driver.find_element_by_id("id_surname").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('{}/09.png'.format(ss_path))
     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")
     Select(driver.find_element_by_id("id_mediaType")).select_by_visible_text("text")
     Select(driver.find_element_by_id("id_form-0-lingualityType")).select_by_visible_text(
       "monolingual")
     # corpus info text / language popup
     driver.find_element_by_css_selector("img[alt=\"Add Another\"]").click()
     driver.switch_to_window("id_languageInfo")
     driver.find_element_by_id("id_languageId").clear()
     driver.find_element_by_id("id_languageId").send_keys("De")
     driver.find_element_by_id("id_languageName").clear()
     driver.find_element_by_id("id_languageName").send_keys("German")
     driver.get_screenshot_as_file('{}/10.png'.format(ss_path))
     driver.find_element_by_name("_save").click()
     driver.switch_to_window("id_corpusTextInfo__dash__0")
     # corpus info text / size popup
     driver.find_element_by_css_selector("#add_id_sizeInfo > img[alt=\"Add Another\"]").click()
     driver.switch_to_window("id_sizeInfo")
     driver.find_element_by_id("id_size").clear()
     driver.find_element_by_id("id_size").send_keys("10000")
     Select(driver.find_element_by_id("id_sizeUnit")).select_by_visible_text("tokens")
     driver.get_screenshot_as_file('{}/11.png'.format(ss_path))
     driver.find_element_by_name("_save").click()
     driver.switch_to_window("id_corpusTextInfo__dash__0")
     # save and close corpus info text popup
     driver.get_screenshot_as_file('{}/12.png'.format(ss_path))
     driver.find_element_by_name("_save").click()
     driver.switch_to_window(root_id)
     # save text corpus
     driver.get_screenshot_as_file('{}/13.png'.format(ss_path))
     driver.find_element_by_name("_save").click()
     driver.get_screenshot_as_file('{}/14.png'.format(ss_path))
     self.assertEqual("The Resource \"Test Text Corpus\" was added successfully.", 
       driver.find_element_by_css_selector("li.info").text)