Beispiel #1
0
 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 sync_video(self,sel,sub_file,start_delay=3,sub_int=2,step="Continue"):
    """
    Description: Use the defined sync button to sync the subtitles.  Waits for
    text present on the video and prints the subtime.

    Options:
        sub_file - path to file or text lines to enter
        start_delay - time to wait before 1st sync (default = 4 secs)
        sub_int - time to wait before next sub (default = 2 secs
        step - {'Continue' (default) | 'Stop} move on to next step when done.

    Pre-condition - can use this to sync on Step 2, Step 3 or Edit.
    """
    print ("Syncing the subs")
    sel.select_window("null")
    mslib.wait_for_video_to_buffer(self,sel)
    mslib.wait_for_element_present(self,sel,"css=.unisubs-titlesList")
    #start playback
#    sel.type_keys("css=.unisubs-play",u'\u0009')
    if sel.is_element_present(testvars.WidgetUI["Video_pause_button"]):
        print "video is playing"
    else:
        sel.focus(testvars.WidgetUI["Play_pause"])
        sel.click_at(testvars.WidgetUI["Play_pause"],"")
    time.sleep(start_delay)
    #start syncing   
    
    for i,line in enumerate(codecs.open(sub_file)):
        x=i+1
        sel.focus(testvars.WidgetUI["Sync_sub"])
        sel.click_at(testvars.WidgetUI["Sync_sub"],"")
        time.sleep(.1)
        sub_cell_start_time = "css=li:nth-child("+str(x)+") > span.unisubs-timestamp span span.unisubs-timestamp-time"
        sub_cell_text = "css=li:nth-child("+str(x)+") > span.unisubs-title span"
        start_time=sel.get_text(sub_cell_start_time)
        print start_time
        print sel.get_text(sub_cell_text)
        time.sleep(sub_int)
    # finish sync of the last sub
    sel.focus(testvars.WidgetUI["Sync_sub"])
    sel.click_at(testvars.WidgetUI["Sync_sub"],"")
    if step == "Continue":
        sel.click(testvars.WidgetUI["Next_step"])
Beispiel #3
0
 def test_470(self):
     """Widget Step 1, advanced (recommended) mode setting.
     
     http://litmus.pculture.org/show_test.cgi?id=470
     """
     print "starting testcase 470"
     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)
     #Type sub-text in the video, then wait stay on Step-1 screen
     mslib.wait_for_element_present(self, sel,
                                    testvars.WidgetUI["Play_pause"])
     mode_label = sel.get_text(
         "css=.unisubs-speedmode option:contains('Recommended')")
     sel.select("//select", "label=" + mode_label)
     mslib.wait_for_video_to_buffer(self, sel)
     sel.click(testvars.WidgetUI["Play_pause"])
     # keep typing while in playback mode until button changes to play button (indicating paused)
     sel.click("//div/input")
     for x in range(0, 4):
         while sel.is_element_present(
                 testvars.WidgetUI["Video_pause_button"]):
             time.sleep(.2)
             sel.type_keys("//div/input", "Hi ")
         # stop typing and wait for playback to resume (pause button present)
         stop_time = sel.get_text(testvars.WidgetUI['Video_elapsed_time'])
         sel.type_keys("//div/input", "I'm Asa Dotzler")
         if "firefox" in selvars.set_browser():
             sel.key_press("css=.trans", "13")
         else:
             sel.focus("css=input[class*=trans]")
             sel.key_press_native('10')
         mslib.wait_for_element_present(
             self, sel, testvars.WidgetUI["Video_pause_button"])
         time.sleep(.5)
         resume_time = sel.get_text(testvars.WidgetUI['Video_elapsed_time'])
         self.failUnless(int(stop_time) > int(resume_time))
def edit_text(self,sel,subtextfile,new_text=""):
    """
    Description: Input the same text used in transcribe_video and for each line,
    edit the text with new_text.  Verifies text has been updated.

    Options:
        new_text - text string

    Pre-condition - can use this on Step 2, Step 3.
    """
    print ("Editing the sub text in the widget")
    sel.select_window("null")
    mslib.wait_for_element_present(self,sel,"css=ul.unisubs-titlesList")
    sel.click("css=.unisubs-activestep") #reset the list to the top of the page
    mslib.wait_for_video_to_buffer(self,sel)
   
    for i,line in enumerate(codecs.open(subtextfile)):
        x = i+1
        sub_cell = "css=ul.unisubs-titlesList li:nth-child("+str(x)+")"       
        if sel.is_element_present(sub_cell) == False:
            break
        textspan = sub_cell +" > .unisubs-title span"
        thetextarea = "css=.unisubs-subedit"     
        
        if new_text == "":
            ed_text = str(line).rstrip().upper()
        else:
            ed_text = new_text
        sel.click(textspan)
        time.sleep(.5)
        print ed_text
        sel.type(thetextarea, ed_text)
        sel.get_eval("this.browserbot.getUserWindow().unisubs.widget.fireKeySequence(this.browserbot.getUserWindow().document.getElementsByClassName('unisubs-subedit')[0], 13,13);")   
      
        time.sleep(1)
#        self.assertTrue(sel.is_element_present(textspan))
        sub_cell_text=sel.get_text(textspan)
        print sub_cell_text
        self.assertEqual(sub_cell_text.rstrip(),ed_text.rstrip())
        time.sleep(.5)
def resync_video (self,sel,subtextfile,start_delay=1,sub_int=1, step="Stop"):
    """
    Description: tests the time shift of subs when using down key to resyncronize.
    Verifies time stamp has changed.

    Options:
        start_delay - amount of time to wait before jumping back with ctrl key (default=4)
        sub_int - amount of before next sub sync
        step - {'Stop' (default) | 'Continue'}

    Pre-conditions: must coordinate this with the times used in sync_video or the time shift
    comparision may fail.
    """
    print " * Resync subs - shorter interval"

    if sel.is_element_present("css=.unisubs-activestep:contains('1')"):
        goto_step(self,sel,"2")
    mslib.wait_for_video_to_buffer(self,sel)
    sel.click(testvars.WidgetUI["Video_playPause"])
       
    time.sleep(start_delay)
    mslib.wait_for_element_present(self,sel,testvars.WidgetUI["Sync_sub"])
       
    for i,line in enumerate(codecs.open(subtextfile,encoding='utf-8')):
        x = i+1
        sub_cell_start_time = "css=li:nth-child("+str(x)+") > .unisubs-timestamp span span.unisubs-timestamp-time"
        start_time=sel.get_text(sub_cell_start_time)
        sel.focus(testvars.WidgetUI["Sync_sub"])
        sel.click_at(testvars.WidgetUI["Sync_sub"],"")
        mslib.wait_for_element_present(self,sel,testvars.WidgetUI["Active_subtime"])
        new_start_time = sel.get_text(testvars.WidgetUI["Active_subtime"])
        self.assertNotEqual(float(start_time),float(new_start_time), \
                        '%.2f' % float(start_time) +" = " +'%.2f' % float(new_start_time))
        time.sleep(sub_int)
        
    sel.focus(testvars.WidgetUI["Sync_sub"])
    sel.click_at(testvars.WidgetUI["Sync_sub"],"")
    if step == "Continue":
        sel.click(testvars.WidgetUI["Next_step"])