def test_726(self): """http://litmus.pculture.org/show_test.cgi?id=726 Feed with gzipped enclosures. 1. Add feeds 2. verify items are displayed 3. Verify items are downloadable 4. Cleanup """ reg = mirolib.AppRegions() ZIPPED_FEEDS = [ #["http://podcastle.org/feed/rss2","PodCastle",], ["http://escapepod.org/feed/","Escape","EP"], ["http://pseudopod.org/feed/rss2","Pseudopod","Pseudopod"], ] for url,feed,item_id in ZIPPED_FEEDS: #1. add feed mirolib.add_feed(self,reg,url,feed) #2 verify items displayed if reg.m.exists(Pattern("button_download.png"),3): click(reg.m.getLastMatch()) else: self.fail("download button not found, no items displayed?") #3. verify download started status = mirolib.confirm_download_started(self,reg,item_id) if status == "in_progress": mirolib.log_result("726","verified for feed: "+feed) else: self.verificationErrors.append("failed for feed: "+feed) #4. Cleanup mirolib.delete_feed(self,reg,feed)
def test_653(self): """http://litmus.pculture.org/show_test.cgi?id=653 edit album art 1. add watched folder 2. Edit artwork for 1 item 3. Edit artwork for multiple items 4. Cleanup """ reg = mirolib.AppRegions() time.sleep(5) folder_path = os.path.join(os.getenv("PCF_TEST_HOME"),"Miro","TestData","ArtTest") title = "Pancakes" title2 = "summer" title3="deerhunter" #1. add watched folder mirolib.add_watched_folder(self,reg,folder_path) if reg.s.exists("ArtTest"): click(reg.s.getLastMatch()) mirolib.log_result("157","test_653") art_file = os.path.join(os.getenv("PCF_TEST_HOME"),"Miro","TestData","album_art1.jpg") #add feed and download flip face item mirolib.toggle_normal(reg) mirolib.tab_search(self,reg,title) try: reg.m.click(title) mirolib.edit_item_metadata(self,reg,meta_field="art",meta_value=art_file) ## Verify new image here: reg.m.find(Pattern("album_art1.png")) finally: prefs.remove_watched_folder(self,reg,folder=folder_path)
def test_458(self): """http://litmus.pculture.org/show_test.cgi?id=458 edit blank item description 1. add TwoStupid feed 2. download the Flip Faceitem 3. Edit item description 4. Cleanup """ reg = mirolib.AppRegions() time.sleep(5) url = "http://pculture.org/feeds_test/2stupidvideos.xml" feed = "TwoStupid" title = "Flip" # item title updates when download completes #add feed and download flip face item mirolib.add_feed(self,reg,url,feed) mirolib.toggle_normal(reg) mirolib.tab_search(self,reg,title) if reg.m.exists("button_download.png",10): click(reg.m.getLastMatch()) mirolib.wait_for_item_in_tab(self,reg,"Videos",item=title) reg.m.click(title) mirolib.edit_item_metadata(self,reg,meta_field="about",meta_value="Blank description edited") mirolib.tab_search(self,reg,"blank description") if reg.m.exists(title): mirolib.log_result("656","test_458") else: mirolib.log_result("656","test_458",status="fail") #cleanup mirolib.delete_feed(self,reg,feed)
def _delete_site(self): site_url = "http://blip.tv" site = "blip" mirolib.add_source(self,reg,site_url,site) time.sleep(2) mirolib.delete_site(self,reg,site) mirolib.log_result("92","delte site shortcut verified") time.sleep(2)
def _delete_feed_folder(self): folder_name = "My Folder" mirolib.shortcut("n",shift=True) if reg.m.exists("Folder",3): mirolib.log_result("98","test_92") time.sleep(2) type(folder_name+"\n") time.sleep(4) mirolib.delete_feed(self,reg,feed=folder_name) mirolib.log_result("92","delte feed folder")
def test_24(self): """http://litmus.pculture.org/show_test.cgi?id=24 edit remembered search. 1. Add 2-stupid-videos feed 2. Perform a search 3. Type in search box the delete key 4. Cleanup """ reg = mirolib.AppRegions() url = "http://pculture.org/feeds_test/2stupidvideos.xml" feed = "TwoStupid" term = "Face" title = "Flip" #1. add feed mirolib.add_feed(self,reg,url,feed) mirolib.set_podcast_autodownload(self,reg,setting="All") #2. search mirolib.tab_search(self,reg,term) self.assertTrue(reg.m.exists(title)) url2 = "http://pculture.org/feeds_test/list-of-guide-feeds.xml" feed2 = "Static" term2 = "FilmWeek" mirolib.add_feed(self,reg,url2,feed2) mirolib.tab_search(self,reg,"Brooklyn") mirolib.wait_for_item_in_tab(self,reg,"Videos",title) reg.m.click(title) type(Key.ENTER) time.sleep(2) type(" ") self.assertTrue(exists(Pattern("playback_controls.png"))) mirolib.shortcut("d") reg.s.click(feed2) self.assertTrue(reg.mtb.exists("BROOKLYN")) mirolib.tab_search(self,reg,term2) reg.mtb.click("button_save_as_podcast.png") mirolib.click_last_podcast(self,reg) mirolib.tab_search(self,reg,term2,confirm_present=True) mirolib.clear_search(reg) if reg.mtb.exists(term2.upper()): mirolib.log_result("324","test_24",status="fail") else: mirolib.log_result("324","test_24") #4. cleanup mirolib.delete_feed(self,reg,"stupid") mirolib.click_last_podcast(self,reg) mirolib.delete_current_selection(self,reg) mirolib.delete_feed(self,reg,"Static List")
def _delete_feed(self): feed_url = "stupidvideos.com/rss/rss.php?chart=new&format=yahoo" feed = "StupidVid" mirolib.shortcut("n") if reg.m.exists("URL",3): mirolib.log_result("97","test_92") time.sleep(2) type(feed_url+"\n") time.sleep(4) mirolib.delete_feed(self,reg,feed) mirolib.log_result("92","delte feed shortcut verified")
def _delete_playlist(self): mirolib.shortcut("p") if reg.m.exists("Enter a",3): mirolib.log_result("723","test_92") time.sleep(4) type("FaveList"+"\n") p = mirolib.get_playlists_region(reg) p.click("FaveList",2) time.sleep(2) mirolib.delete_current_selection(self,reg) time.sleep(2) self.assertFalse(p.exists("FaveList",3)) mirolib.log_result("92","delte playlist shortcut verified")
def _delete_playlist_folder(self): mirolib.shortcut("p",shift=True) time.sleep(4) if reg.m.exists("playlist folder",3): mirolib.log_result("724","test_92") type("SUPERPLAYS"+"\n") time.sleep(3) p = mirolib.get_playlists_region(reg) p.click("SUPERPLAYS") time.sleep(2) mirolib.delete_current_selection(self,reg) time.sleep(2) self.assertFalse(p.exists("SUPERPLAYS",3)) mirolib.log_result("92","delte playlist folder shortcut verified")
def test_620(self): """http://litmus.pculture.org/show_test.cgi?id=620 dl youtube video and convert. 1. Download youtube video 2. Convert to video formats 3. Verify playback 4. Convert to audio formats 5. Verify playback 6. Cleanup """ reg = mirolib.AppRegions() # 1. Download youtube vidoe vid_url = "http://www.youtube.com/watch?v=baJ43ByylbM&feature=fvw" item_title = "Zoom" reg.tl.click("File") reg.tl.click("Download from") time.sleep(4) type(vid_url) time.sleep(2) type("\n") mirolib.confirm_download_started(self,reg,item_title) mirolib.wait_for_item_in_tab(self,reg,"videos",item_title) if reg.m.exists(item_title,3): mirolib.log_result("9","test_620 file external download verified.") reg.m.click(item_title) # 2. Convert to audio formats try: aconvertList = ("MP3","Vorbis") for x in aconvertList: mirolib.convert_file(self,reg,x) time.sleep(2) mirolib.click_sidebar_tab(self,reg,"Converting") mirolib.wait_conversions_complete(self,reg,item_title,x) # 3. Verify playback mirolib.click_sidebar_tab(self,reg,"music") aplaybackList = ("MP3",) for x in aplaybackList: mirolib.tab_search(self,reg,"Converted to "+str(x),False) if reg.m.exists(Pattern("item_play_unplayed.png")): doubleClick(reg.m.getLastMatch()) mirolib.verify_audio_playback(self,reg,"Converted") else: self.fail("converted item not found") except FindFailed, debugging: self.verificationErrors.append(debugging)
def test_728(self): """http://litmus.pculture.org/show_test.cgi?id=728 edit metadata for mulitple items 1. add Static List feed 2. download the Earth Eats item 3. Edit item metadata """ reg = mirolib.AppRegions() time.sleep(5) url = "http://pculture.org/feeds_test/list-of-guide-feeds.xml" feed = "Static" term = "Earth Eats" title = "Mushroom" # item title updates when download completes new_type = "Video" edit_itemlist = [["name","Earth Day Everyday", "647"], ["artist","Oliver and Katerina", "648"], ["album","Barki Barks", "649"], ["genre","family", "650"], ["rating","5", "651"], ["year","2010","655"], ["track_num","1", "673"], ["track_of","2", "673"], ] #start clean mirolib.delete_feed(self,reg,feed) #add feed and download earth eats item mirolib.add_feed(self,reg,url,feed) mirolib.toggle_normal(reg) mirolib.tab_search(self,reg,term) if reg.m.exists("button_download.png",10): click(reg.m.getLastMatch()) mirolib.wait_for_item_in_tab(self,reg,"Music",item=title) reg.m.click(title) for x in edit_itemlist: mirolib.edit_item_metadata(self,reg,meta_field=x[0],meta_value=x[1]) mirolib.log_result(x[2],"test_647") time.sleep(2) if not mirolib.tab_search(self,reg,"Earth Day",confirm_present=True) == True: self.fail("new title not saved") #cleanup mirolib.delete_feed(self,reg,feed)
def test_725(self): """http://litmus.pculture.org/show_test.cgi?id=725 item click actions, list view. 1. add 3-blip-videos feed 2. download the Joo Joo 3. verify varios item click scenerios """ reg = mirolib.AppRegions() time.sleep(5) url = "http://pculture.org/feeds_test/3blipvideos.xml" feed = "ThreeBlip" title1 = "The Joo" title2 = "York" title3 = "Accessing" mirolib.delete_feed(self,reg,feed) prefs.set_autodownload(self,reg,setting="Off") prefs.set_default_view(self,reg,setting="List") time.sleep(2) #add feed and download joo joo item mirolib.add_feed(self,reg,url,feed) mirolib.tab_search(self,reg,title1) #double-click starts download reg.m.find(title1) title_loc = reg.m.getLastMatch() doubleClick(title_loc) if reg.m.exists("video-download-pause.png"): mirolib.log_result("122","list view double-click starts download") else: self.fail("list view double-click starts download, failed") #double-click pauses download doubleClick(title_loc) if reg.m.exists("video-download-resume.png"): mirolib.log_result("122","list view double-click pauses download") else: self.fail("list view double-click pause download, failed") #double-click resumes download doubleClick(title_loc) if exists("video-download-pause.png"): mirolib.log_result("122","list view double-click resumes download") else: self.fail("list view double-click resume download, failed") #double-click starts playback mirolib.wait_for_item_in_tab(self,reg,tab="Videos",item=title1) mirolib.click_podcast(self,reg,feed) mirolib.tab_search(self,reg,title1) doubleClick(title1) if exists(Pattern("playback_bar_video.png")): mirolib.log_result("122","list view double-click starts playback") else: self.fail("list view double-click start playback, failed") mirolib.verify_video_playback(self,reg) #cleanup mirolib.delete_feed(self,reg,feed)
def test_138(self): #shortened as there no more feed counter and can't count too much stuff. """http://litmus.pculture.org/show_test.cgi?id=138 clear out old items. Litmus Test Title:: 138 Channels - clear out old items Description: 1. Add a feed that adds five new items each time it's updated. 2. Update the feed to add new items. 3. Modify old items settings to verify items cleared. 4. Cleanup """ setAutoWaitTimeout(testvars.timeout) #set the search regions reg = mirolib.AppRegions() url = "http://bluesock.org/~willg/cgi-bin/newitemsfeed.cgi" feed = "my feed" mirolib.add_feed(self,reg,url,feed) mirolib.get_podcasts_region(reg) mirolib.tab_search(self,reg,"my feed") mirolib.toggle_list(reg) mirolib.count_images(self,reg,img="my feed",region="list",num_expected=5) mirolib.click_podcast(self,reg,feed) mirolib.shortcut("r") time.sleep(10) mirolib.get_podcasts_region(reg) if mirolib.count_images(self,reg,img="my feed",region="list",num_expected=10) == 10: mirolib.log_result("99","test_92") #verifies update podcast shortcut mirolib.click_podcast(self,reg,feed) for x in range(0,3): mirolib.shortcut("r") time.sleep(3) mirolib.open_podcast_settings(self,reg) mirolib.change_podcast_settings(self,reg,option="Podcast Items",setting="Keep 0") time.sleep(2) mirolib.get_podcasts_region(reg) mirolib.count_images(self,reg,img="my feed",region="list",num_expected=5) #4. cleanup mirolib.delete_feed(self,reg,"my feed")
def test_191(self): """http://litmus.pculture.org/show_test.cgi?id=191 Add rss feed to sidebar. 1. Add ClearBits.net as a source 2. Open Netlabel Music page and add RSS feed 3. Verify feed added to the sidebar 4. Cleanup """ site_url = "http://clearbits.net" site = "ClearBits" feed = "ClearBits" reg = mirolib.AppRegions() mirolib.add_source(self,reg,site_url,site) mirolib.click_source(self,reg,site) reg.m.click("Netlabel Music") reg.m.click(testvars.clearbits_rss) mirolib.click_podcast(self,reg,site) mirolib.log_result("29","test_191 verify 1-click add site from source.") time.sleep(3) mirolib.delete_feed(self,reg,feed) mirolib.delete_site(self,reg,site)
def test_722(self): """http://litmus.pculture.org/show_test.cgi?id=722 delete feeds and folders confirm dialog. Litmus Test Title:: 722 - delete feeds confirm dialog Description: 1. Import OPML file of some feeds and folders 2. 1 feed and 1 folder 3. Delete, verify confirm dialog, and delete 4. Cleanup """ setAutoWaitTimeout(testvars.timeout) #set the search regions reg = mirolib.AppRegions() mirolib.delete_all_podcasts(self,reg) opml_path = os.path.join(os.getenv("PCF_TEST_HOME"),"Miro","TestData","folder-test.opml") feed = "Featured" folder = "GEEKY" feedlist = ["Google", "Make","GEEKY","Featured"] #1. Add the feeds mirolib.import_opml(self,reg,opml_path) p = mirolib.get_podcasts_region(reg) mirolib.click_podcast(self,reg,feed) #2. Select the folder too keyDown(Key.SHIFT) p.click(folder) keyUp(Key.SHIFT) #3. Delete then cancel. Verify still exists Static List type(Key.DELETE) for x in feedlist: mirolib.count_images(self,reg,img=x,region="main",num_expected=1) type(Key.ENTER) time.sleep(2) #4. Cleanup mirolib.delete_all_podcasts(self,reg) p = mirolib.get_podcasts_region(reg) for x in feedlist: if not p.exists(x): mirolib.log_result("202","test_722")
def test_721(self): """http://litmus.pculture.org/show_test.cgi?id=721 Menu New Search Watched 1. Add list of guide feeds (Static List) 2. From Sidebar -> New Search feed, create saved search channel 3. Verify Search saved 4. Cleanup """ reg = mirolib.AppRegions() feed = "TestData" term = "monkey" folder_path = os.path.join(os.getenv("PCF_TEST_HOME"),"Miro","TestData","WatchTest") prefs.remove_watched_folder(self,reg,folder=folder_path) #1. add feed mirolib.add_watched_folder(self,reg,folder_path) if reg.s.exists("WatchTest"): mirolib.log_result("678","test_721") #2. search mirolib.tab_search(self,reg,term) mirolib.new_search_feed(self,reg,term,radio="Podcast",source=feed,watched=True) prefs.remove_watched_folder(self,reg,folder=folder_path)
def test_122(self): """http://litmus.pculture.org/show_test.cgi?id=122 item click actions, normal view. 1. add 3-blip-videos feed 2. download the Joo Joo 3. verify varios item click scenerios """ reg = mirolib.AppRegions() time.sleep(5) url = "http://pculture.org/feeds_test/3blipvideos.xml" feed = "ThreeBlip" title1 = "The Joo" title2 = "York" title3 = "Accessing" mirolib.delete_feed(self,reg,feed) prefs.set_autodownload(self,reg,setting="Off") time.sleep(2) prefs.set_default_view(self,reg,setting="Standard") #add feed and download joo joo item mirolib.add_feed(self,reg,url,feed) mirolib.tab_search(self,reg,title1) if reg.m.exists("button_download.png",10): click(reg.m.getLastMatch()) mirolib.click_podcast(self,reg,feed) mirolib.tab_search(self,reg,title2,confirm_present=True) #double-click starts download doubleClick(title2) if mirolib.confirm_download_started(self,reg,title=title2) == "in_progress": mirolib.log_result("122","normal view double-click starts download") else: self.fail("normal view double-click starts download, failed") #double-click pauses download mirolib.click_podcast(self,reg,feed) doubleClick(title2) if exists("item-renderer-download-resume.png"): mirolib.log_result("122","normal view double-click pauses download") else: self.fail("normal view double-click pause download, failed") #double-click resumes download doubleClick(title2) if exists("item-renderer-download-pause.png"): mirolib.log_result("122","normal view double-click resume download") else: self.fail("normal view double-click resume download, failed") #double-click starts playback mirolib.wait_for_item_in_tab(self,reg,tab="Videos",item=title1) mirolib.click_podcast(self,reg,feed) mirolib.tab_search(self,reg,title1) doubleClick(title1) if exists(Pattern("playback_bar_video.png")): mirolib.log_result("122","normal view double-click starts playback") else: self.fail("normal view double-click start playback, failed") mirolib.verify_video_playback(self,reg) #single click thumb starts download mirolib.tab_search(self,reg,title3) if reg.m.exists("thumb-default-video.png"): print "using default thumb" click(reg.m.getLastMatch()) else: print "can't find thumb, best guess" reg.m.find(title1) click(reg.m.getLastMatch().left(50)) if mirolib.confirm_download_started(self,reg,title=title3) == "in_progress": mirolib.log_result("122","normal view click starts download") else: self.fail("normal view double-click starts download, failed") #single click thumb starts playback mirolib.click_podcast(self,reg,feed) mirolib.tab_search(self,reg,title1) if reg.m.exists("thumb-default-video.png"): print "using default thumb" click(reg.m.getLastMatch()) elif reg.m.exists("thumb-joojoo.png"): print "found joo joo thumb" click(reg.m.getLastMatch()) else: print "can't find thumb, best guess" reg.m.find(title1) click(reg.m.getLastMatch().left(50)) if exists("playback_bar_video.png"): mirolib.log_result("122","normal view double-click starts playback") else: self.fail("normal view double-click start playback, failed") mirolib.verify_video_playback(self,reg) #cleanup mirolib.delete_feed(self,reg,feed)
def _delete_item(self): title = "detective" mirolib.wait_for_item_in_tab(self,reg,"Misc","detective") mirolib.delete_items(self,reg,title,"Misc") mirolib.log_result("92","delete item shortcut verified") time.sleep(5)
for x in vconvertList: mirolib.convert_file(self,reg,x) time.sleep(15) mirolib.click_sidebar_tab(self,reg,"Converting") mirolib.wait_conversions_complete(self,reg,item_title,str(x)) # 5. Verify playback mirolib.click_sidebar_tab(self,reg,"Videos") aplaybackList = ("Droid", "iPhone", "MP4", "Ogg Theora", "Playstation") for x in aplaybackList: mirolib.tab_search(self,reg,"Converted to "+str(x)) if reg.m.exists("item_play_unplayed.png"): doubleClick(reg.m.getLastMatch()) find(Pattern("playback_bar_video.png")) mirolib.shortcut("d") waitVanish(Pattern("playback_bar_video.png"),20) mirolib.log_result("102","test_620 stop video playback verified.") time.sleep(2) type(Key.DELETE) mirolib.remove_confirm(self,reg,"remove") time.sleep(3) else: self.fail("converted item not found") except FindFailed, debugging: self.verificationErrors.append(debugging) finally: while reg.m.exists("Converted to",3): click(reg.m.getLastMatch()) type(Key.DELETE) mirolib.remove_confirm(self,reg,"remove") # 6. Cleanup mirolib.delete_items(self,reg,item_title,"Videos")
def test_441(self): """http://litmus.pculture.org/show_test.cgi?id=441 delete podcast item outside of miro 1. add TwoStupid feed 2. download the Flip Faceitem 3. restart miro 4. delete the item 5. restart miro 6. verify item still deleted """ reg = mirolib.AppRegions() remember = False try: prefs.set_preference_checkbox(self,reg,tab="General",option="When starting",setting="on") remember = True except: remember = False type(Key.ESC) #close the dialog if it didn't work time.sleep(5) url = "http://pculture.org/feeds_test/2stupidvideos.xml" feed = "TwoStupid" title = "Flip" # item title updates when download completes #add feed and download flip face item mirolib.add_feed(self,reg,url,feed) mirolib.toggle_normal(reg) mirolib.tab_search(self,reg,title) if reg.m.exists("button_download.png",10): click(reg.m.getLastMatch()) mirolib.wait_for_item_in_tab(self,reg,tab="Videos",item=title) mirolib.click_podcast(self,reg,feed) mirolib.tab_search(self,reg,title) reg.m.click(title) filepath = mirolib.store_item_path(self,reg) if os.path.exists(filepath): print "able to verify on os level" found_file = True mirolib.quit_miro(self,reg) mirolib.restart_miro() if remember == True and reg.m.exists("title",15): #check the remember last tab setting mirolib.log_result("698","test_441") else: mirolib.click_podcast(self,reg,feed) mirolib.tab_search(self,reg,title) reg.m.click(title) type(Key.DELETE) if found_file == True: if os.path.exists(filepath): self.fail("file not deleted from filesystem") else: mirolib.quit_miro(self,reg) mirolib.restart_miro() mirolib.click_podcast(self,reg,feed) mirolib.tab_search(self,reg,term) if not reg.m.exists(Pattern("button_download.png")): self.fail("no download button, file not deleted") else: reg.m.click(Pattern("button_download.png")) if mirolib.confirm_download_started(self,reg,title) != "in_progress": self.fail("item not properely deleted") #cleanup mirolib.delete_feed(self,reg,feed)
time.sleep(2) mirolib.delete_current_selection(self,reg) time.sleep(2) self.assertFalse(p.exists("SUPERPLAYS",3)) mirolib.log_result("92","delte playlist folder shortcut verified") try: _delete_feed(self) _delete_site(self) _delete_item(self) _delete_playlist(self) _delete_playlist_folder(self) _delete_feed_folder(self) except FindFailed, debugging: self.verificationErrors.append(debugging) finally: mirolib.quit_miro(self) mirolib.log_result("96","test_92") #verifies quit shortcut test # Post the output directly to Litmus if __name__ == "__main__": import LitmusTestRunner print len(sys.argv) if len(sys.argv) > 1: LitmusTestRunner.LitmusRunner(sys.argv,config.testlitmus).litmus_test_run() else: LitmusTestRunner.LitmusRunner(Miro_Suite,config.testlitmus).litmus_test_run()