def test_537(self): """Add comments on a translation using non-ascii characters http://litmus.pculture.org/show_test.cgi?id=537 """ sel = self.selenium sel.set_timeout(testvars.MSTestVariables["TimeOut"]) #get a video and open page website.SiteLogout(self,sel) test_video_url = website.get_video_with_translations(self,sel) print test_video_url sel.open(test_video_url) language = website.get_translated_lang(self,sel) #Login and go to language comments page website.SiteLogIn(self,sel,testvars.siteuser,testvars.passw) sel.open(test_video_url) mslib.wait_for_element_present(self,sel,testvars.video_lang+":contains('"+language+"')") sel.click(testvars.video_lang+":contains('"+language+"')") mslib.wait_for_element_present(self,sel,testvars.video_lang_hd+":contains('"+language+"')") sel.click(testvars.comments_tab) #Enter some non-ascii comments print "1. entering croatian comment text" website.enter_comment_text(self,sel,comments_text.hr_comment_text) website.verify_comment_text(self,sel,comments_text.hr_comment_text) print "2. entering japanese comment text" website.enter_comment_text(self,sel,comments_text.jp_comment_text) website.verify_comment_text(self,sel,comments_text.jp_comment_text) print "3. entering russian comment text" website.enter_comment_text(self,sel,comments_text.ru_comment_text) website.verify_comment_text(self,sel,comments_text.ru_comment_text)
def test_701(self): """Pagedemo Khan Widgetizer async - sub position on playback. http://litmus.pculture.org/show_test.cgi?id=687 """ test_id = 701 sel = self.selenium testpage = "/pagedemo/async_widgetizer" sel.open(testpage) sel.wait_for_page_to_load(testvars.timeout) sel.window_maximize() sel.click("link=Widgetize it!") mslib.wait_for_element_present(self, sel, testvars.WebsiteUI["SubtitleMe_menu"]) time.sleep(5) sel.get_eval( 'this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[0].play()' ) mslib.wait_for_element_present( self, sel, testvars.WidgetUI["Current_playing_offsite"]) sel.get_eval( 'this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[0].pause()' ) caption_position = sel.get_element_height( testvars.WidgetUI["Current_playing_offsite"]) verify_caption_position(self, sel, caption_position) verify_submenu_present(self, sel)
def SiteLogout(self,sel): """ Description: Logout of site using site Logout button. """ sel.open("/logout/?next=/") mslib.wait_for_element_present(self,sel,testvars.WebsiteUI["Login_Button"])
def edit_translation(self,sel,subtextfile,new_text=""): """ Description: Update the translation text with either the orig text or text provided in a file. Options: new_text - text string Pre-condition - Editing Translation Widget opened """ print ("Editing the translation") sel.select_window("null") mslib.wait_for_element_present(self,sel,"css=.unisubs-titlesList") for i,line in enumerate(codecs.open(subtextfile)): x = i+1 sub_cell = "css=.unisubs-titlesList li:nth-child("+str(x)+")" if sel.is_element_present(sub_cell) == False: break thetextarea = "css=textarea" if new_text == "": ed_text = str(line).upper() else: ed_text = new_text sel.click(sub_cell) sel.type(thetextarea, u'ed_text') sel.get_eval("this.browserbot.getUserWindow().unisubs.widget.fireKeySequence(this.browserbot.getUserWindow().document.getElementsByClassName('unisubs-subedit')[0], 13,13);") time.sleep(1) sel.click(testvars.WidgetUI["Next_step"])
def verify_latest_history(self, sel, rev=None, user=None, tm=None, text=None): print "verifying history tab contents" print rev time.sleep(10) sel.refresh() sel.wait_for_page_to_load(testvars.timeout) if sel.is_text_present("Most Recent") == False: sel.click(testvars.history_tab) mslib.wait_for_element_present( self, sel, "css=div[id=revisions-tab] tr:nth-child(1) > td:nth-child(1) > a") if rev: self.assertTrue( sel.is_element_present( "css=div[id=revisions-tab] tr:nth-child(1) > td:nth-child(1) > a:contains('" + rev + "')")) if user: self.assertTrue( sel.is_element_present( "css=div[id=revisions-tab] tr:nth-child(1) > td:nth-child(2) > a:contains('" + user + "')")) if time: self.assertTrue( sel.is_element_present( "css=div[id=revisions-tab] tr:nth-child(1) > td:nth-child(4):contains('" + tm + "')")) if text: self.assertTrue( sel.is_element_present( "css=div[id=revisions-tab] tr:nth-child(1) > td:nth-child(5):contains('" + text + "')"))
def TwitterAuth(self, sel, user, passw): """ Description: Perform twitter account sign-in once window has been launced via website or widget. Requires: valid username and password """ print "twitter auth: " + user + ":" sel.select_pop_up("null") if sel.get_eval("window.location") == "http://twitter.com/universalsubs": if sel.is_element_present("css=.signin span:contains('Sign in')"): sel.click("css=.signin span:contains('Sign in')") mslib.wait_for_element_present(self, sel, "css=input[title='username']") sel.type("username", user) sel.type("password", passw) sel.click("signin_submit") else: time.sleep(2) sel.select_pop_up("null") mslib.wait_for_element_present(self, sel, "css=input[id=username_or_email]") sel.type("username_or_email", user) sel.type("session[password]", passw) sel.click("allow") if sel.is_element_present("css=th:contains('Humaness')"): self.fail("caught by the twitter captcha, can not continue")
def Login(self, sel, auth_type): """ Description: Log on using website button and select an external login option. auth_type can be either 'twitter', 'open-id', or 'google' Requires: valid account for selected login. See testvars for existing accounts. Pre-condition: user is on the site page Post-condition: offsite login form displayed, see offsite """ # auth_type can be either ".twitter", ".open-id", "google" if auth_type == "twitter": auth_link = "css=a#twitter.provider" elif auth_type == "open-id": auth_link = "css=a#open-id.provider" elif auth_type == "google": auth_link = "css=a#google.provider" else: self.fail("unrecognized auth type") sel.select_window("null") mslib.wait_for_element_present(self, sel, testvars.WebsiteUI["Login_Button"]) sel.click(testvars.WebsiteUI["Login_Button"]) mslib.wait_for_element_present(self, sel, auth_link) sel.click(auth_link) sel.wait_for_page_to_load(testvars.MSTestVariables["TimeOut"])
def skiptest_696(self): """Subtesting widget - sub position on playback. Open the testpage Start Playback Verify subs are in the correct position on the video. http://litmus.pculture.org/show_test.cgi?id=696 """ sel = self.selenium #test 1st video on the page testpage = (selvars.set_subtesting_wordpress_page(self, 601) ) #same subtesting page as test test_601 sel.open(testpage) sel.wait_for_page_to_load(testvars.timeout) sel.window_maximize() mslib.wait_for_element_present(self, sel, testvars.WebsiteUI["SubtitleMe_menu"]) time.sleep(3) sel.get_eval( 'this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[0].play()' ) mslib.wait_for_element_present( self, sel, testvars.WidgetUI["Current_playing_offsite"]) sel.get_eval( 'this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[0].pause()' ) caption_position = sel.get_element_height( testvars.WidgetUI["Current_playing_offsite"]) verify_caption_position(self, sel, caption_position) verify_submenu_present(self, sel)
def test_623(self): """offsite widget on MC site. video url: http://www.youtube.com/watch?v=FNEImAIM4L4 http://litmus.pculture.org/show_test.cgi?id=623 Video with widget embedded on Miro Community test page. """ mc_page = "hunter" vid_pos = "css=p.pElementTest span span.unisubs-widget div.unisubs-videoTab a span.unisubs-tabTextchoose" vid_title = "hunter.s.thompson.avi" print self.shortDescription() sel = self.selenium test_page = selvars.set_unisubs_mc_page(self,mc_page) sel.open(test_page) sel.wait_for_page_to_load(testvars.timeout) mslib.wait_for_element_present(self,sel,testvars.WebsiteUI["SubtitleMe_menu"]) time.sleep(3) sel.get_eval('this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[0].openMenu()') time.sleep(2) if sel.is_element_present(testvars.WebsiteUI["AddSubtitles_menuitem"]) == True: print "has subtitles - edit and revert" subtextfile = "subs.txt" orig_rev = store_subs(self,sel) sel.open(test_page) sel.wait_for_page_to_load(testvars.timeout) mslib.wait_for_element_present(self,sel,testvars.WebsiteUI["SubtitleMe_menu"]) time.sleep(3) sel.get_eval('this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[0].openMenu()') widget.starter_dialog_edit_orig(self,sel) edit_subs(self,sel,orig_rev,subtextfile) else: make_new_subs(self,sel,subtextfile)
def starter_dialog_edit_orig(self,sel): """Choose the current lang to edit. Return orig_lang Gets the videos orig lang to edit the original subs - or sets it to English if none set. Post-condition: the widget is launched and you will be on step 1. """ #Figure our the original lang or choose your own orig_lang = "Original" time.sleep(5) if sel.is_element_present(testvars.WebsiteUI["AddSubtitles_menuitem"]): sel.click(testvars.WebsiteUI["AddSubtitles_menuitem"]) time.sleep(15) if sel.is_element_present(testvars.create_lang_unknown): # No lang set, going to use English orig_lang = "English" select_video_language(self,sel,vid_lang='en',sub_lang='en') elif sel.is_element_present(testvars.create_lang_known): ol = sel.get_text(testvars.create_lang_known) orig_lang = ol.split("in ")[1] print orig_lang lc = sel.get_value("css=select.to-language option:contains('"+orig_lang+"')") lang_code = re.sub("\d+$","",lc) select_video_language(self,sel,vid_lang=lang_code,sub_lang=lang_code) else: print "video opened directly - no lang select dialogs" time.sleep(10) close_howto_video(self,sel) mslib.wait_for_element_present(self,sel,"css=div.unisubs-help-heading") return orig_lang
def test_623(self): """offsite widget on MC site. video url: http://www.youtube.com/watch?v=FNEImAIM4L4 http://litmus.pculture.org/show_test.cgi?id=623 Video with widget embedded on Miro Community test page. """ mc_page = "hunter" vid_pos = "css=p.pElementTest span span.unisubs-widget div.unisubs-videoTab a span.unisubs-tabTextchoose" vid_title = "hunter.s.thompson.avi" print self.shortDescription() sel = self.selenium test_page = selvars.set_unisubs_mc_page(self, mc_page) sel.open(test_page) sel.wait_for_page_to_load(testvars.timeout) mslib.wait_for_element_present(self, sel, testvars.WebsiteUI["SubtitleMe_menu"]) time.sleep(3) sel.get_eval("this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[0].openMenu()") time.sleep(2) if sel.is_element_present(testvars.WebsiteUI["AddSubtitles_menuitem"]) == True: print "has subtitles - edit and revert" subtextfile = "subs.txt" orig_rev = store_subs(self, sel) sel.open(test_page) sel.wait_for_page_to_load(testvars.timeout) mslib.wait_for_element_present(self, sel, testvars.WebsiteUI["SubtitleMe_menu"]) time.sleep(3) sel.get_eval("this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[0].openMenu()") widget.starter_dialog_edit_orig(self, sel) edit_subs(self, sel, orig_rev, subtextfile) else: make_new_subs(self, sel, subtextfile)
def back_step(self,sel): """ Description: Clicks the 'Back to' link to go back 1 step. """ while sel.is_text_present("Back to Typing"): sel.click("link=Back to Typing") mslib.wait_for_element_present(self,sel,"css=.unisubs-activestep")
def starter_dialog_translate_from_orig(self,sel,to_lang='hr'): """Choose the a new translation and translate from original lang Return orig_lang This assumes you know the original language and want to edit the original subs. Post-condition: the widget is launched and you will be on step 1 or Edit step """ #Figure out orig lang fail is there isn't a set lang already mslib.wait_for_text_present(self,sel,"This video") sel.select_frame("relative=top") if sel.is_element_present(testvars.create_lang_unknown): self.fail("can't make a new translation when video has no orig lang set - test is invalid") else: time.sleep(5) ol = sel.get_text(testvars.create_lang_known) orig_lang = ol.split("in ")[1] if not sel.is_element_present("css=select.from-language option:contains('"+orig_lang+" ')"): print "orig lang not transcribed - choosing other existing lang" lc = sel.get_value("css=select.from-language option") else: lc = sel.get_value("css=select.from-language option:contains('"+orig_lang+" ')") lang_code = re.sub("\d+$","",lc) #gives only the letters of the value field. from_code = re.sub("\D","",lc) #gives only the number - used in from pulldown. select_video_language(self,sel,sub_lang=to_lang,from_lang=from_code) time.sleep(5) close_howto_video(self,sel) mslib.wait_for_element_present(self,sel,"css=div.unisubs-help-heading") return orig_lang
def starter_dialog_translate_from_not_orig(self,sel,from_lang,to_lang='hr'): """Choose the a new translation and translate from a sub that is not the orig lang. Return from_lang This assumes you know the original language and want to edit the original subs. Post-condition: the widget is launched and you will be on step 1 or Edit step """ #Figure out orig lang fail is there isn't a set lang already mslib.wait_for_text_present(self,sel,"This video") if sel.is_element_present(testvars.create_lang_unknown): self.fail("can't make a new translation when video has no orig lang set - test is invalid") else: ol = sel.get_text(testvars.create_lang_known) orig_lang = ol.split("in ")[1] lc = sel.get_value("css=select.to-language option:contains('"+orig_lang+" ')") lang_code = re.sub("\d+$","",lc) if lang_code == from_lang: self.fail("invalid test - from lang "+str(from_lang)+" is the same as the origi lang"+str(orig_lang)) select_video_language(self,sel,sub_lang=to_lang,from_lang=from_lang) time.sleep(5) close_howto_video(self,sel) mslib.wait_for_element_present(self,sel,"css=.unisubs-help-heading") return from_lang
def test_737(self): """flowplayer offsite embed - subtitle and playback http://litmus.pculture.org/show_test.cgi?id=737 Flowplayer with widget embedded on Miro Community test page. """ mc_page = "embed_tests" vid_title = "flow player test" subtextfile = os.path.join(testvars.MSTestVariables["DataDirectory"],"737_flow.txt") print self.shortDescription() sel = self.selenium test_page = selvars.set_unisubs_mc_page(self,mc_page) sel.open(test_page) sel.wait_for_page_to_load(testvars.timeout) time.sleep(5) if sel.is_element_present("css=p.other-flow div.unisubs-videoTab a.unisubs-subtitleMeLink span.unisubs-tabTextchoose:contains('Subtitle Me')"): sel.click("css=p.other-flow div.unisubs-videoTab a.unisubs-subtitleMeLink span.unisubs-tabTextchoose:contains('Subtitle Me')") else: sel.get_eval('this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[5].openMenu()') make_new_subs(self,sel,subtextfile) #Playback Subs time.sleep(5) try: sel.get_eval('this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[5].play()') mslib.wait_for_element_present(self,sel,"css=p.other-flow span.unisubs-captionSpan") sel.get_eval('this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[5].pause()') caption_position = sel.get_element_height("css=p.other-flow span.unisubs-captionSpan") verify_caption_position(self,sel,caption_position) except: print "sub position playback failed" self.verificationErrors.append("sub playback / position test failed")
def test_737(self): """flowplayer offsite embed - subtitle and playback http://litmus.pculture.org/show_test.cgi?id=737 Flowplayer with widget embedded on Miro Community test page. """ mc_page = "embed_tests" vid_title = "flow player test" subtextfile = os.path.join(testvars.MSTestVariables["DataDirectory"], "737_flow.txt") print self.shortDescription() sel = self.selenium test_page = selvars.set_unisubs_mc_page(self, mc_page) sel.open(test_page) sel.wait_for_page_to_load(testvars.timeout) time.sleep(5) if sel.is_element_present( "css=p.other-flow div.unisubs-videoTab a.unisubs-subtitleMeLink span.unisubs-tabTextchoose:contains('Subtitle Me')" ): sel.click( "css=p.other-flow div.unisubs-videoTab a.unisubs-subtitleMeLink span.unisubs-tabTextchoose:contains('Subtitle Me')" ) else: sel.get_eval("this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[5].openMenu()") make_new_subs(self, sel, subtextfile) # Playback Subs time.sleep(5) try: sel.get_eval("this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[5].play()") mslib.wait_for_element_present(self, sel, "css=p.other-flow span.unisubs-captionSpan") sel.get_eval("this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[5].pause()") caption_position = sel.get_element_height("css=p.other-flow span.unisubs-captionSpan") verify_caption_position(self, sel, caption_position) except: print "sub position playback failed" self.verificationErrors.append("sub playback / position test failed")
def Login(self,sel,auth_type): """ Description: Log on using website button and select an external login option. auth_type can be either 'twitter', 'open-id', or 'google' Requires: valid account for selected login. See testvars for existing accounts. Pre-condition: user is on the site page Post-condition: offsite login form displayed, see offsite """ # auth_type can be either ".twitter", ".open-id", "google" if auth_type == "twitter": auth_link = "css=a#twitter.provider" elif auth_type == "open-id": auth_link = "css=a#open-id.provider" elif auth_type == "google": auth_link = "css=a#google.provider" else: self.fail("unrecognized auth type") sel.select_window("null") mslib.wait_for_element_present(self,sel,testvars.WebsiteUI["Login_Button"]) sel.click(testvars.WebsiteUI["Login_Button"]) mslib.wait_for_element_present(self,sel,auth_link) sel.click(auth_link) sel.wait_for_page_to_load(testvars.MSTestVariables["TimeOut"])
def test_741(self): """widgetizer on MC site html5 mp4. http://litmus.pculture.org/show_test.cgi?id=741 Video with widget embedded on Miro Community test page. """ print self.shortDescription() sel = self.selenium mc_page = "widgetizer_tests" test_page = selvars.set_unisubs_mc_page(self,mc_page) sel.open(test_page) sel.wait_for_page_to_load(testvars.timeout) mslib.wait_for_element_present(self, sel,"body#video_page div.unisubs-videoTab:nth-child(2) > a.unisubs-subtitleMeLink span.unisubs-tabTextchoose") time.sleep(3) sel.get_eval('this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[1].openMenu()') time.sleep(2) if sel.is_element_present(testvars.WebsiteUI["AddSubtitles_menuitem"]) == True: print "has subtitles - edit and revert" subtextfile = "subs.txt" orig_rev = store_subs(self,sel) sel.open(test_page) sel.wait_for_page_to_load(testvars.timeout) mslib.wait_for_element_present(self,sel,testvars.WebsiteUI["SubtitleMe_menu"]) time.sleep(3) sel.get_eval('this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[1].openMenu()') widget.starter_dialog_edit_orig(self,sel) edit_subs(self,sel,orig_rev,subtextfile) else: make_new_subs(self,sel,subtextfile)
def click_time_shift_arrows(self,sel,subtextfile): """ Description: clicks the left and right arrows on subtitle text box. Verifies that the time has been changed by .05 seconds. Options: subtextfile - text used in transcribe step. """ sub_li = 1 sel.select_window("null") mslib.wait_for_element_present(self,sel,"css=.unisubs-activestep:contains('3')") mslib.wait_for_element_present(self,sel,testvars.WidgetUI["Sync_sub"]) sub_cell_start_time = "css=li:nth-child("+str(sub_li)+") > .unisubs-timestamp span span.unisubs-timestamp-time" up_arrow = "css=li:nth-child("+str(sub_li)+") > .unisubs-timestamp span .unisubs-changeTime .unisubs-up" down_arrow = "css=li:nth-child("+str(sub_li)+") > .unisubs-timestamp span .unisubs-changeTime .unisubs-down" for x in range(0,3): #Click up (right) and verify time jump of .05 seconds start_time = sel.get_text(sub_cell_start_time) sel.focus(up_arrow) sel.click_at(up_arrow,"") new_start_time = sel.get_text(sub_cell_start_time) self.assertAlmostEqual(mslib.calc_time_diff(start_time,new_start_time),float(.05),3) #maybe verify the pixel change on the timeline for x in range(0,3): #Click text-arrow right and verify time jump start_time = sel.get_text(sub_cell_start_time) sel.click_at(down_arrow,"") new_start_time = sel.get_text(sub_cell_start_time) self.assertAlmostEqual(mslib.calc_time_diff(new_start_time,start_time),float(.05),3)
def test_691(self): """Pagedemo New York Times video 1 - forked the subs and create a fresh set of captions in hr lang. http://litmus.pculture.org/show_test.cgi?id=691 """ test_id = 691 sel = self.selenium testpage = "/pagedemo/nytimes_youtube_embed" subtextfile = os.path.join(testvars.MSTestVariables["DataDirectory"],"OctopusGarden.txt") sel.open(testpage) sel.wait_for_page_to_load(testvars.timeout) sel.window_maximize() mslib.wait_for_element_present(self,sel,testvars.WebsiteUI["SubtitleMe_menu"]) time.sleep(5) sel.get_eval('this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[0].openMenu()') widget.open_starter_dialog(self,sel) widget.starter_dialog_fork(self,sel,to_lang='hr') widget.transcribe_video(self, sel, subtextfile) widget.sync_video(self, sel, subtextfile) widget.site_login_from_widget_link(self,sel) #verify subs still present print "verifying subtitles are still present" sel.select_window("null") mslib.wait_for_element_present(self,sel,"css=.unisubs-titlesList") widget.verify_sub_text(self,sel,subtextfile) if sel.is_element_present("css=.unisubs-modal-login"): #Login sel.click("css=.unisubs-log") widget.site_login_auth(self,sel) sel.select_window("null") widget.submit_sub_edits(self,sel,offsite=True)
def test_689(self): """Pagedemo New York Times video 1 - edit original subs http://litmus.pculture.org/show_test.cgi?id=689 """ test_id = 689 sel = self.selenium testpage = "/pagedemo/nytimes_youtube_embed" subtextfile = os.path.join(testvars.MSTestVariables["DataDirectory"],"OctopusGarden.txt") sel.open(testpage) sel.wait_for_page_to_load(testvars.timeout) sel.window_maximize() mslib.wait_for_element_present(self,sel,testvars.WebsiteUI["SubtitleMe_menu"]) time.sleep(5) sel.get_eval('this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[0].openMenu()') widget.starter_dialog_edit_orig(self,sel) widget.goto_step(self,sel,step="2") widget.edit_text(self,sel,subtextfile) #Login if sel.is_element_present("css=div div.unisubs-needLogin a"): sel.click("css=div div.unisubs-needLogin a") mslib.wait_for_element_present(self,sel,"css=.unisubs-modal-login") sel.click("css=.unisubs-log") widget.site_login_auth(self,sel) sel.select_window("null") widget.submit_sub_edits(self,sel,offsite=True)
def verify_sub_upload(self, sel, sub_file, lang=""): """Verifies the uploaded subtitle text matches the text of a corresponing test file. """ mslib.wait_for_element_present(self, sel, "css=p.feedback-message") sel.click("css=div#upload_subs-div a.close") time.sleep(15) sel.refresh() time.sleep(3) mslib.wait_for_element_present(self, sel, testvars.video_original) sub_td = 1 if lang == "": #assuming original lang if no lang specified. sel.click(testvars.video_original) sel.wait_for_page_to_load(testvars.timeout) else: sel.click(testvars.video_lang + ":contains('" + lang + "')") sel.wait_for_page_to_load(testvars.timeout) for line in codecs.open(sub_file, encoding='utf-8'): subline = line.split(',') sub = subline[0].rstrip() self.assertTrue("css=tr:nth-child(" + str(sub_td) + ") > td.last:contains(" + sub + ")") sub_td = sub_td + 1
def test_486(self): """Revisions - edit subtitles timing and verify in history table. http://litmus.pculture.org/show_test.cgi?id=486 """ sel = self.selenium sel.set_timeout(testvars.MSTestVariables["TimeOut"]) sel.open("/") subtextfile = os.path.join(testvars.MSTestVariables["DataDirectory"], "OctopusGarden.txt") print "submitting a youtube video, format: " vid_url = offsite.get_youtube_video_url(self) # Submit Video print "logging in and submitting video" website.SiteLogIn(self, sel, testvars.siteuser, testvars.passw) website.submit_video(self, sel, vid_url) # Verify embed and player print "verifying embed" unisubs_url = website.verify_submitted_video(self, sel, vid_url, embed_type="youtube") # Start sub widget print "starting sub widget" website.start_sub_widget(self, sel) # Transcribe print "transcribing video" widget.transcribe_video(self, sel, subtextfile) # Sync print "syncing video" widget.sync_video(self, sel, subtextfile) # Review print "review step - just submitting video" widget.submit_sub_edits(self, sel) mslib.wait_for_element_present(self, sel, testvars.video_video_info) sel.select_frame("relative=top") sel.click(testvars.video_original) sel.wait_for_page_to_load(testvars.MSTestVariables["TimeOut"]) # Verify subtitles website.verify_subs(self, sel, subtextfile) sel.click(testvars.video_add_translation) widget.starter_dialog_edit_orig(self, sel) widget.goto_step(self, sel, "2") widget.resync_video(self, sel, subtextfile) widget.submit_sub_edits(self, sel) time.sleep(2) sel.select_frame("relative=top") # Click History tab sel.click(testvars.video_original) sel.wait_for_page_to_load(testvars.MSTestVariables["TimeOut"]) sel.click(testvars.history_tab) rev_num = website.get_current_rev(self, sel) website.verify_latest_history(self, sel, rev=str(rev_num), user="******", tm="100%", text="0%") website.admin_delete_video(self, sel, unisubs_url)
def SiteLogout(self, sel): """ Description: Logout of site using site Logout button. """ sel.open("/logout/?next=/") mslib.wait_for_element_present(self, sel, testvars.WebsiteUI["Login_Button"])
def click_lang_tab(self,sel,language): """Click on a lanugage tab. Assumes you are on the videos tab and know the lang you want. """ mslib.wait_for_element_present(self,sel,testvars.video_lang+":contains('"+language+"')") sel.click(testvars.video_lang+":contains('"+language+"')") sel.wait_for_page_to_load(testvars.MSTestVariables["TimeOut"]) self.failUnless(sel.is_element_present(testvars.video_lang_hd+":contains('"+language+"')"))
def test_613(self): """Submit a video and add to team. http://litmus.pculture.org/show_test.cgi?id=613. """ sel = self.selenium sel.set_timeout(testvars.timeout) #login website.SiteLogIn(self,sel,testvars.siteuser,testvars.passw) #create team team = "miro"+time.strftime("%m%d%H%M%S", time.gmtime()) team_logo_path = os.path.join(testvars.MSTestVariables["DataDirectory"],"sheep.png") website.open_teams_page(self,sel) sel.click(testvars.start_team) sel.wait_for_page_to_load(testvars.timeout) website.create_team(self,sel,team,team_logo_path) #submit video sel.window_maximize() test_video_url = website.submit_random_youtube(self,sel) print test_video_url mslib.wait_for_element_present(self,sel,"css=span.sort_label strong:contains('Add video')") vid_title = sel.get_text(testvars.vid_title) #add video to team and verify values teamli = "add/video/"+team sel.click(testvars.video_add_to_team) ## sel.click_at("css=span.sort_label strong:contains('Add video')","") sel.click_at("css=a[href*='"+teamli+"']","") sel.wait_for_page_to_load(testvars.timeout) print "verifying the inital add page" if sel.is_element_present("css=.errorlist")== True: print "error adding video to team" self.fail() else: mslib.wait_for_text_present(self,sel,"Video language") sel.select("id_language", "value=en") sel.click(testvars.teams_save) sel.wait_for_page_to_load(testvars.timeout) self.assertTrue(sel.is_element_present("css=li.active a:contains('"+team+"')")) sel.click(testvars.teams_video_tab) sel.wait_for_page_to_load(testvars.timeout) print "verifying team videos list" self.assertTrue(sel.is_element_present("css=tr.video-container td a[href*='"+test_video_url+"info/']"),"test_video_url error") # self.assertTrue(sel.is_element_present("css=tr.video-container td:contains('"+vid_title[0:10]+"')"),"vid_title error") # delete the video from the team sel.click("css=td a:contains('"+vid_title[0:10]+"') +div +div +div.small.grey a.remove-video") self.failUnless(re.search(r"^Remove this video[\s\S]$", sel.get_confirmation())) # logout sel.click(testvars.WebsiteUI["Logout_Button"])
def get_diff_url(self,sel,rev_link): """Gets the url id of a revision for comparing. """ sel.click(rev_link) mslib.wait_for_element_present(self,sel,"css=ul.breadcrumb li a:contains('Revision History')") d = sel.get_eval("window.location") diff_id = d.split('/')[-1] sel.click("css=ul.breadcrumb li a:contains('Revision History')") sel.wait_for_page_to_load(testvars.MSTestVariables["TimeOut"]) return diff_id
def verify_login(self,sel,username="******"): """ Description: Verifies user is logged in by finding the logout button on the website and then starting the demo and looking for logout menu item on the Subtitle Me button. Pre-Condition: must be logged into site. """ mslib.wait_for_element_present(self,sel,"css=li[id=me_menu]") self.failUnless(sel.is_element_present("css=div[id=menu_name]:contains('"+username+"')"),\ "user not logged in, user_panel not displayed")
def click_lang_tab(self, sel, language): """Click on a lanugage tab. Assumes you are on the videos tab and know the lang you want. """ mslib.wait_for_element_present( self, sel, testvars.video_lang + ":contains('" + language + "')") sel.click(testvars.video_lang + ":contains('" + language + "')") sel.wait_for_page_to_load(testvars.MSTestVariables["TimeOut"]) self.failUnless( sel.is_element_present(testvars.video_lang_hd + ":contains('" + language + "')"))
def verify_login(self, sel, username="******"): """ Description: Verifies user is logged in by finding the logout button on the website and then starting the demo and looking for logout menu item on the Subtitle Me button. Pre-Condition: must be logged into site. """ mslib.wait_for_element_present(self, sel, "css=li[id=me_menu]") self.failUnless(sel.is_element_present("css=div[id=menu_name]:contains('"+username+"')"),\ "user not logged in, user_panel not displayed")
def get_diff_url(self, sel, rev_link): """Gets the url id of a revision for comparing. """ sel.click(rev_link) mslib.wait_for_element_present( self, sel, "css=ul.breadcrumb li a:contains('Revision History')") d = sel.get_eval("window.location") diff_id = d.split('/')[-1] sel.click("css=ul.breadcrumb li a:contains('Revision History')") sel.wait_for_page_to_load(testvars.MSTestVariables["TimeOut"]) return diff_id
def GmailAuth(self,sel,user,passw): """ Description: Perform gmail account sign-in once window has been launced via website or widget. Requires: valid username and password """ sel.select_pop_up("null") print "gmail auth: "+ user mslib.wait_for_element_present(self,sel,"signIn") sel.type("Email", user) sel.type("Passwd", passw) sel.click("signIn") sel.wait_for_page_to_load(testvars.timeout)
def GmailAuth(self, sel, user, passw): """ Description: Perform gmail account sign-in once window has been launced via website or widget. Requires: valid username and password """ sel.select_pop_up("null") print "gmail auth: " + user mslib.wait_for_element_present(self, sel, "signIn") sel.type("Email", user) sel.type("Passwd", passw) sel.click("signIn") sel.wait_for_page_to_load(testvars.timeout)
def test_400(self): """Widget Step 1, Skip-back functionality http://litmus.pculture.org/show_test.cgi?id=400 """ print "starting testcase 400 - shift-tab to skip back on step 1" print "known bug: http://bugzilla.pculture.org/show_bug.cgi?id=14292" sel = self.selenium sel.set_timeout(testvars.MSTestVariables["TimeOut"]) subtextfile = os.path.join(testvars.MSTestVariables["DataDirectory"], "switch-to-firefox.txt") # be sure logged out website.SiteLogout(self, sel) website.start_demo(self, sel) website.start_sub_widget(self, sel, login=False) #set mode to expert and wait for video to load mode_label = sel.get_text( "css=.unisubs-speedmode option:contains('Expert')") sel.select("//select", "label=" + mode_label) mslib.wait_for_video_to_buffer(self, sel) # start playback sel.click(testvars.WidgetUI["Play_pause"]) mslib.wait_for_element_present(self, sel, testvars.WidgetUI["Video_pause_button"]) # wait for play to advance and test with screen button time.sleep(7) for x in range(0, 3): # get the time, skip back and get the time again start_time = sel.get_text(testvars.WidgetUI["Video_elapsed_time"]) sel.click(testvars.WidgetUI["Skip_back"]) time.sleep(1) sel.click(testvars.WidgetUI["Play_pause"]) time.sleep(.50) stop_time = sel.get_text(testvars.WidgetUI["Video_elapsed_time"]) diff_time = int(start_time) - int(stop_time) self.failUnless(diff_time > 5) sel.click(testvars.WidgetUI["Play_pause"]) time.sleep(10) # wait for play to advance and test with keyboard key # get the time, skip back and get the time again start_time = sel.get_text(testvars.WidgetUI["Video_elapsed_time"]) sel.shift_key_down() sel.type_keys("css=.unisubs-play", u'\u0009') sel.shift_key_up() sel.click(testvars.WidgetUI["Play_pause"]) time.sleep(.50) stop_time = sel.get_text(testvars.WidgetUI["Video_elapsed_time"]) diff_time = int(start_time) - int(stop_time) self.failUnless(diff_time > 5) sel.click(testvars.WidgetUI["Play_pause"]) time.sleep(10)
def feature_video(self,sel,action='Feature'): """As an admin user, Feature or Unfeature a video. Assumes logged in as an admin user. Action can be 'Feature' or 'Unfeature' """ mslib.wait_for_element_present(self,sel,"css=ul#admin-menu.left_nav li a:contains('eature')") if not sel.is_element_present("css=ul#admin-menu.left_nav li a:contains('"+action+"')"): print "video already",action else: sel.click("css=ul#admin-menu.left_nav li a:contains('eature')") mslib.wait_for_element_present(self,sel,"css=ul#admin-menu.left_nav li a:contains('eature')") vid_url = sel.get_attribute("css=ul#video-menu.left_nav li:nth-child(1) > a@href") return vid_url
def get_vimeo_video_url(self): if "firefox" not in selvars.set_browser(): vimeoURL = "http://vimeo.com/25378567" else: self.selenium = (selenium( selvars.set_localhost(), selvars.set_port(), selvars.set_browser("vimeo", " get video url"), "http://vimeo.com/")) self.selenium.start() vsel = self.selenium try: vsel.set_timeout(testvars.MSTestVariables["TimeOut"]) vsel.open("groups/all/sort:recent") vsel.wait_for_page_to_load(testvars.MSTestVariables["TimeOut"]) vsel.click("css=.detail_format a.thumbnail") mslib.wait_for_element_present( self, vsel, "css=div.tabmain a:contains('Videos')") vsel.click("css=div.tabmain a:contains('Videos')") mslib.wait_for_element_present(self, vsel, "css=div#vimeo_dropdown_2") vsel.click_at("css=div#vimeo_dropdown_2", "") vsel.click_at("css=li#detail", "") mslib.wait_for_element_present(self, vsel, "css=.thumbnail_box a.thumbnail") vsel.click("css=.thumbnail_box a.thumbnail") mslib.wait_for_element_present(self, vsel, "css=input#clip_id") urlid = vsel.get_value("css=input#clip_id") vimeoURL = "http://vimeo.com/" + urlid print vimeoURL finally: vsel.stop() return vimeoURL
def Login(self,sel,auth_type): """ Description: Initiates login sequence using the Subtitle Me menu that's attached to an embedded video, either onsite or offsite. auth_type can be 'log' (for site), 'twitter','openid','google' Requires valid accounts for chosen login type Pre-condition: Subtitle me widget menu should be present on page. Post-condition: either site or external login authorization pages are opened. For offsite login options see <a href="offsite.html">offsite</a> """ print "logging in using "+auth_type+ " account" mslib.wait_for_element_present(self,sel, testvars.WebsiteUI["SubtitleMe_menu"]) sel.click(testvars.WebsiteUI["SubtitleMe_menu"]) time.sleep(5) # give the widget a chance to open directly if it's going to. select_video_language(self,sel) close_howto_video(self,sel) if sel.is_element_present("css=.unisubs-modal-widget"): mslib.wait_for_element_present(self,sel,testvars.WidgetUI["Must_Login"]) sel.click(testvars.WidgetUI["Must_Login"]) else: if sel.is_element_present("css=.unisubs-uniLogo"): mslib.wait_for_element_present(self,sel,testvars.WebsiteUI["Login_menuitem"]) sel.click(testvars.WebsiteUI["Login_menuitem"]) # sel.select_frame("relative=top") mslib.wait_for_element_present(self,sel,"css=.unisubs-modal-login-content") sel.click("css=a.unisubs-" +auth_type)
def get_vimeo_video_url(self): if "firefox" not in selvars.set_browser(): vimeoURL = "http://vimeo.com/25378567" else: self.selenium = (selenium(selvars.set_localhost(), selvars.set_port(), selvars.set_browser("vimeo"," get video url"), "http://vimeo.com/")) self.selenium.start() vsel= self.selenium try: vsel.set_timeout(testvars.MSTestVariables["TimeOut"]) vsel.open("groups/all/sort:recent") vsel.wait_for_page_to_load(testvars.MSTestVariables["TimeOut"]) vsel.click("css=.detail_format a.thumbnail") mslib.wait_for_element_present(self,vsel,"css=div.tabmain a:contains('Videos')") vsel.click("css=div.tabmain a:contains('Videos')") mslib.wait_for_element_present(self,vsel,"css=div#vimeo_dropdown_2") vsel.click_at("css=div#vimeo_dropdown_2", "") vsel.click_at("css=li#detail", "") mslib.wait_for_element_present(self,vsel,"css=.thumbnail_box a.thumbnail") vsel.click("css=.thumbnail_box a.thumbnail") mslib.wait_for_element_present(self, vsel,"css=input#clip_id") urlid = vsel.get_value("css=input#clip_id") vimeoURL = "http://vimeo.com/"+urlid print vimeoURL finally: vsel.stop() return vimeoURL
def test_486(self): """Revisions - edit subtitles timing and verify in history table. http://litmus.pculture.org/show_test.cgi?id=486 """ sel = self.selenium sel.set_timeout(testvars.MSTestVariables["TimeOut"]) sel.open("/") subtextfile = os.path.join(testvars.MSTestVariables["DataDirectory"],"OctopusGarden.txt") print "submitting a youtube video, format: " vid_url = offsite.get_youtube_video_url(self) # Submit Video print "logging in and submitting video" website.SiteLogIn(self,sel,testvars.siteuser,testvars.passw) website.submit_video(self,sel,vid_url) # Verify embed and player print "verifying embed" unisubs_url = website.verify_submitted_video(self,sel,vid_url,embed_type="youtube") # Start sub widget print "starting sub widget" website.start_sub_widget(self,sel) # Transcribe print "transcribing video" widget.transcribe_video(self,sel,subtextfile) # Sync print "syncing video" widget.sync_video(self,sel,subtextfile) # Review print "review step - just submitting video" widget.submit_sub_edits(self,sel) mslib.wait_for_element_present(self,sel,testvars.video_video_info) sel.select_frame("relative=top") sel.click(testvars.video_original) sel.wait_for_page_to_load(testvars.MSTestVariables["TimeOut"]) # Verify subtitles website.verify_subs(self,sel,subtextfile) sel.click(testvars.video_add_translation) widget.starter_dialog_edit_orig(self,sel) widget.goto_step(self,sel,"2") widget.resync_video(self,sel,subtextfile) widget.submit_sub_edits(self,sel) time.sleep(2) sel.select_frame("relative=top") # Click History tab sel.click(testvars.video_original) sel.wait_for_page_to_load(testvars.MSTestVariables["TimeOut"]) sel.click(testvars.history_tab) rev_num = website.get_current_rev(self,sel) website.verify_latest_history(self,sel,rev=str(rev_num),user="******",tm="100%",text="0%") website.admin_delete_video(self,sel,unisubs_url)
def test_494(self): """Revisions - translation - invalid comparison selection http://litmus.pculture.org/show_test.cgi?id=494 """ sel = self.selenium sel.set_timeout(testvars.MSTestVariables["TimeOut"]) subtextfile = os.path.join(testvars.MSTestVariables["DataDirectory"], "OctopusGarden.txt") website.SiteLogIn(self, sel, testvars.siteuser, testvars.passw) #get a video and open page test_video_url = website.get_video_with_translations(self, sel) print test_video_url sel.open(test_video_url) language = website.get_translated_lang(self, sel) website.click_lang_tab(self, sel, language) ## if not enough revisions for comparison, edit the sub text. rev_num = website.get_current_rev(self, sel) print rev_num while rev_num < 2: print "only 2 or less revs - editing text first" #edit text sel.click(testvars.video_edit_subtitles) mslib.wait_for_element_present(self, sel, "css=div.unisubs-help-heading") if sel.is_element_present( "css=h2:contains('Editing Translation')"): widget.edit_translation(self, sel, subtextfile) else: widget.goto_step(self, sel, step="3") widget.edit_text(self, sel, subtextfile) widget.submit_sub_edits(self, sel) rev_num = website.get_current_rev(self, sel) sel.click(testvars.history_tab) row_num = 1 website.check_the_box(self, sel, row_num) #uncheck the box to start while sel.is_element_present( "//div[@id='revisions-tab']/table/tbody/tr[" + str(row_num) + "]"): website.check_the_box(self, sel, row_num) sel.click(testvars.video_compare_revisions) self.assertEqual("Select two revisions to compare, please", sel.get_alert()) website.check_the_box(self, sel, row_num) #uncheck the box row_num += 1 if row_num == 3: break
def test_410(self): """Widget Step 3, skip-back functionality. http://litmus.pculture.org/show_test.cgi?id=410 """ print "starting testcase 410" sel = self.selenium sel.set_timeout(testvars.MSTestVariables["TimeOut"]) subtextfile = os.path.join(testvars.MSTestVariables["DataDirectory"], "switch-to-firefox.txt") # be sure logged out website.SiteLogout(self, sel) website.start_demo(self, sel) #start sub widget website.start_sub_widget(self, sel, login=False) #complete step 1 typing widget.transcribe_video(self, sel, subtextfile, buffer="yes") #complete step 2 syncing widget.sync_video(self, sel, subtextfile) #on step 3 test ctrl to skip back mslib.wait_for_element_present(self, sel, testvars.WidgetUI["Play_pause"]) time.sleep(3) sel.click(testvars.WidgetUI["Play_pause"]) # wait for play to advance and test with screen button time.sleep(10) print "1. screen button skip back" for x in range(0, 3): # get the time, skip back and get the time again start_time = sel.get_text(testvars.WidgetUI["Video_elapsed_time"]) sel.click_at(testvars.WidgetUI["Skip_back"], "") time.sleep(1) stop_time = sel.get_text(testvars.WidgetUI["Video_elapsed_time"]) diff_time = float(start_time) - float(stop_time) self.assertTrue(diff_time > 5) #wait for playback to progress time.sleep(10) # wait for play to advance and test with keyboard key # get the time, skip back and get the time again start_time = sel.get_text(testvars.WidgetUI["Video_elapsed_time"]) print "2. key button skip back" sel.shift_key_down() sel.type_keys("css=.unisubs-right", u'\u0009') sel.shift_key_up() time.sleep(1) stop_time = sel.get_text(testvars.WidgetUI["Video_elapsed_time"]) diff_time = int(start_time) - int(stop_time) print diff_time self.assertTrue(diff_time > 5)
def test_488(self): """Add comments on a translation http://litmus.pculture.org/show_test.cgi?id=488 """ sel = self.selenium sel.set_timeout(testvars.MSTestVariables["TimeOut"]) #get a video and open page website.SiteLogout(self, sel) test_video_url = website.get_video_with_translations(self, sel) print test_video_url sel.open(test_video_url) language = website.get_translated_lang(self, sel) #Open the Language tab / then the comments mslib.wait_for_element_present( self, sel, testvars.video_lang + ":contains('" + language + "')") sel.click(testvars.video_lang + ":contains('" + language + "')") mslib.wait_for_element_present( self, sel, testvars.video_lang_hd + ":contains('" + language + "')") sel.click(testvars.comments_tab) #Not logged in, enter a comment print "1. trying to enter a comment when not logged in" ctext = "this comment should never post" website.enter_comment_text(self, sel, ctext) website.verify_comment_text(self, sel, ctext, result="login") #Login and go to language comments page website.SiteLogIn(self, sel, testvars.siteuser, testvars.passw) sel.open(test_video_url) mslib.wait_for_element_present( self, sel, testvars.video_lang + ":contains('" + language + "')") sel.click(testvars.video_lang + ":contains('" + language + "')") mslib.wait_for_element_present( self, sel, testvars.video_lang_hd + ":contains('" + language + "')") sel.click(testvars.comments_tab) #Enter a 1-char comment print "2. entering a 1-char comment on Video Info" website.enter_comment_text(self, sel, "d") website.verify_comment_text(self, sel, "d") #Enter a normal comment print "3. entering a normal comment on Video Info" website.enter_comment_text(self, sel, comments_text.normal_comment_text) website.verify_comment_text(self, sel, comments_text.normal_comment_text) print "4. entering a too-long comment on Video Info" #Enter a too long comment website.enter_comment_text(self, sel, comments_text.normal_comment_text * 10) website.verify_comment_text(self, sel, comments_text.normal_comment_text, result="too long")
def verify_sub_text(self,sel,subtextfile): """ Description: Compares the current text in the text box with the text in the input subtextfile. Pre-condition: User in widget, steps 1,2,3 or Edit. """ print "verifying sub text" sel.select_window("null") mslib.wait_for_element_present(self,sel,"css=.unisubs-titlesList") sub_li=1 for line in codecs.open(subtextfile,encoding='utf-8'): sub_cell_text = "css=li:nth-child("+str(sub_li)+") > .unisubs-title" self.assertEqual(line.rstrip(), sel.get_text(sub_cell_text).rstrip()) sub_li = sub_li + 1
def OpenIdAuth(self, sel, user, passw): """ Description: Perform open id [from http://myopenid.com ]account sign-in once window has been launced via website or widget. Requires: valid username and password """ print "open id auth: " + user sel.select_pop_up("null") mslib.wait_for_element_present(self, sel, "openid_url") sel.type("css=input.openid", testvars.openiduser) sel.click("css=button.green_button.big") mslib.wait_for_element_present(self, sel, "id=signin_button") sel.type("password", testvars.passw) sel.click("id=signin_button") sel.wait_for_page_to_load(testvars.timeout)
def OpenIdAuth(self,sel,user,passw): """ Description: Perform open id [from http://myopenid.com ]account sign-in once window has been launced via website or widget. Requires: valid username and password """ print "open id auth: "+ user sel.select_pop_up("null") mslib.wait_for_element_present(self,sel,"openid_url") sel.type("css=input.openid", testvars.openiduser) sel.click("css=button.green_button.big") mslib.wait_for_element_present(self,sel,"id=signin_button") sel.type("password", testvars.passw) sel.click("id=signin_button") sel.wait_for_page_to_load(testvars.timeout)
def steps_display(self,sel,step_num): """ Description: verifies text contents of Steps. """ mslib.wait_for_element_present(self,sel,"css=.unisubs-activestep:contains('"+str(step_num)+"')") self.assertTrue(str(step_num) == sel.get_text("css=.unisubs-activestep"),"active step is not: "+str(step_num)) self.assertTrue("tab" == sel.get_text("css=.unisubs-tab"),"tab not in help text") if step_num == "1": self.assertTrue("Typing" == sel.get_text("css=h2"), "heading is not Typing") self.assertEqual("Play next 8 seconds", sel.get_text("css=.unisubs-tab + span")) else: self.assertEqual("Play/Pause", sel.get_text("css=.unisubs-tab + span")) self.assertEqual("shift\n+\ntab", sel.get_text("css=.unisubs-control")) self.assertEqual("Skip Back 8 Seconds", sel.get_text("css=.unisubs-control + span")) self.assertEqual("Speed Mode", sel.get_text("css=.unisubs-speedmode h4"))
def site_login_auth(self,sel): """ Description: specifically logs in as the site user defined in <a href="testvars.html">testvars</a> Pre-condition: Login was clicked from widget Post-condition: user logged in and returned to widget page. """ time.sleep(5) sel.select_pop_up("null") mslib.wait_for_element_present(self,sel,"id_username") sel.type("id_username", testvars.siteuser) sel.type("id_password", testvars.passw) sel.click("//button[@value='login']") #wait for the login to complete time.sleep(10)
def test_369(self): """Subtitle Youtube video in offsite embed. http://litmus.pculture.org/show_test.cgi?id=369 """ print "starting 369 youtube widget test" sel = self.selenium subtextfile = os.path.join(testvars.MSTestVariables["DataDirectory"], "OctopusGarden.txt") sel.set_timeout(testvars.MSTestVariables["TimeOut"]) sel.open(selvars.set_widget_null_page()) mslib.wait_for_element_present(self, sel, "css=.left_column span.unisubs-tabTextchoose") website.start_sub_widget(self, sel, "css=.left_column span.unisubs-tabTextchoose") # Transcribe widget.transcribe_video(self, sel, subtextfile) # Sync widget.sync_video(self, sel, subtextfile, 6, 8)
def site_login_from_widget_link(self,sel): """ Description: performs a site login from the Login link on the widget steps. Pre-condition: widget is opened and user is not logged in. Post-condition: user is returned to starting widget page. """ if sel.is_element_present(testvars.WidgetUI["Must_Login"]): # log in from widget sel.click("link=LOGIN") mslib.wait_for_element_present(self,sel,"css=.unisubs-modal-login") time.sleep(2) sel.click("css=.unisubs-log") site_login_auth(self,sel) else: print "User is already logged into site"
def test_685(self): """Pagedemo Blog Youtube Embed - sub position on playback. http://litmus.pculture.org/show_test.cgi?id=685 """ test_id = 685 sel = self.selenium testpage = "/pagedemo/blog_youtube_embed" sel.open(testpage) sel.wait_for_page_to_load(testvars.timeout) sel.window_maximize() time.sleep(5) sel.get_eval('this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[0].play()') mslib.wait_for_element_present(self,sel,testvars.WidgetUI["Current_playing_offsite"]) sel.get_eval('this.browserbot.getUserWindow().unisubs.widget.Widget.getAllWidgets()[0].pause()') caption_position = sel.get_element_height(testvars.WidgetUI["Current_playing_offsite"]) verify_caption_position(self,sel,caption_position)