ubuntu-touch-coreapps-reviewers team mailing list archive
-
ubuntu-touch-coreapps-reviewers team
-
Mailing list archive
-
Message #00836
[Merge] lp:~darran-kelinske/music-app/lp_bug_1428454 into lp:music-app
drizzle has proposed merging lp:~darran-kelinske/music-app/lp_bug_1428454 into lp:music-app.
Requested reviews:
Music App Developers (music-app-dev)
Related bugs:
Bug #1428454 in Ubuntu Music App: "Autopilot Testcase Needed: Delete a playlist"
https://bugs.launchpad.net/music-app/+bug/1428454
For more details, see:
https://code.launchpad.net/~darran-kelinske/music-app/lp_bug_1428454/+merge/253566
Added a test case for deleting a playlist
--
Your team Music App Developers is requested to review the proposed merge of lp:~darran-kelinske/music-app/lp_bug_1428454 into lp:music-app.
=== modified file 'MusicPlaylists.qml'
--- MusicPlaylists.qml 2015-01-21 00:10:33 +0000
+++ MusicPlaylists.qml 2015-03-19 19:38:54 +0000
@@ -93,6 +93,7 @@
delegate: Card {
id: playlistCard
coverSources: Playlists.getPlaylistCovers(model.name)
+ objectName: "playlistCardItem" + index
primaryText: model.name
secondaryText: i18n.tr("%1 song", "%1 songs", model.count).arg(model.count)
=== modified file 'common/SongsPage.qml'
--- common/SongsPage.qml 2015-01-30 01:23:39 +0000
+++ common/SongsPage.qml 2015-03-19 19:38:54 +0000
@@ -593,6 +593,7 @@
id: removePlaylistDialog
Dialog {
id: dialogRemovePlaylist
+ objectName: "dialogRemovePlaylist"
// TRANSLATORS: this is a title of a dialog with a prompt to delete a playlist
title: i18n.tr("Permanently delete playlist?")
text: "("+i18n.tr("This cannot be undone")+")"
@@ -602,6 +603,7 @@
Button {
text: i18n.tr("Remove")
color: styleMusic.dialog.confirmRemoveButtonColor
+ objectName: "removePlaylistDialogRemoveButton"
onClicked: {
// removing playlist
Playlists.removePlaylist(dialogRemovePlaylist.oldPlaylistName)
=== modified file 'tests/autopilot/music_app/__init__.py'
--- tests/autopilot/music_app/__init__.py 2015-01-19 17:13:12 +0000
+++ tests/autopilot/music_app/__init__.py 2015-03-19 19:38:54 +0000
@@ -75,6 +75,10 @@
return self.main_view.wait_select_single(
Dialog, objectName="dialogNewPlaylist")
+ def get_delete_playlist_dialog(self):
+ return self.main_view.wait_select_single(
+ Dialog, objectName="dialogRemovePlaylist")
+
def get_now_playing_page(self):
return self.app.wait_select_single(MusicNowPlaying,
objectName="nowPlayingPage")
@@ -208,6 +212,23 @@
return self.wait_select_single(
"CardView", objectName="playlistsCardView").count
+ def click_new_playlist_action(self):
+ self.main_view.get_header().click_action_button("newPlaylistButton")
+
+ @click_object
+ def click_playlist(self, i):
+ return self.get_playlist(i)
+
+ def get_playlist(self, i):
+ return (self.wait_select_single("Card",
+ objectName="playlistCardItem" + str(i)))
+
+ def click_delete_playlist_action(self):
+ self.main_view.get_header().click_action_button("deletePlaylist")
+
+
+
+
class MusicaddtoPlaylist(MusicPage):
""" Autopilot helper for add to playlist page """
@@ -400,6 +421,9 @@
self.swipping.wait_for(False)
+
+
+
class Dialog(UbuntuUIToolkitCustomProxyObjectBase):
@click_object
@@ -411,6 +435,11 @@
self.wait_select_single(
"TextField", objectName="playlistNameTextField").write(text)
+ @click_object
+ def click_remove_playlist_dialog_remove_button(self):
+ return self.wait_select_single(
+ "Button", objectName="removePlaylistDialogRemoveButton")
+
class MainView(MainView):
"""Autopilot custom proxy object for the MainView."""
=== modified file 'tests/autopilot/music_app/tests/test_music.py'
--- tests/autopilot/music_app/tests/test_music.py 2015-01-19 17:13:12 +0000
+++ tests/autopilot/music_app/tests/test_music.py 2015-03-19 19:38:54 +0000
@@ -449,13 +449,13 @@
track.click_add_to_playlist_action() # add track to queue
- add_to_playlist_page = self.app.get_add_to_playlist_page()
+ add_to_playlists_page = self.app.get_add_to_playlists_page()
# get initial list view playlist count
- playlist_count = add_to_playlist_page.get_count()
+ playlist_count = add_to_playlists_page.get_count()
# click on New playlist button in header
- add_to_playlist_page.click_new_playlist_action()
+ add_to_playlists_page.click_new_playlist_action()
# get dialog
new_dialog = self.app.get_new_playlist_dialog()
@@ -467,17 +467,17 @@
new_dialog.click_new_playlist_dialog_create_button()
# verify playlist has been sucessfully created
- self.assertThat(add_to_playlist_page.get_count(),
+ self.assertThat(add_to_playlists_page.get_count(),
Eventually(Equals(playlist_count + 1)))
- self.assertThat(add_to_playlist_page.get_playlist(0).name,
+ self.assertThat(add_to_playlists_page.get_playlist(0).name,
Equals("myPlaylist"))
# select playlist to add song to
- add_to_playlist_page.click_playlist(0)
+ add_to_playlists_page.click_playlist(0)
# wait for add to playlist page to close
- add_to_playlist_page.visible.wait_for(False)
+ add_to_playlists_page.visible.wait_for(False)
# open playlists page
playlists_page = self.app.get_playlists_page()
@@ -485,6 +485,62 @@
# verify song has been added to playlist
self.assertThat(playlists_page.get_count(), Equals(1))
+
+
+ def test_select_and_delete_playlist(self):
+ """tests deleting a playlist by creating a playlist,
+ selecting it, and then deleting it. """
+
+ # switch to playlist page
+ playlists_page = self.app.get_playlists_page()
+
+ # get initial list view playlist count
+ playlist_count = playlists_page.get_count()
+
+ # click on New playlist button in header
+ playlists_page.click_new_playlist_action()
+
+ # get dialog
+ new_dialog = self.app.get_new_playlist_dialog()
+
+ # input playlist name
+ new_dialog.type_new_playlist_dialog_name("testDeletePlaylist")
+
+ # click on the create Button
+ new_dialog.click_new_playlist_dialog_create_button()
+
+ # verify playlist has been sucessfully created
+ self.assertThat(playlists_page.get_count(),
+ Eventually(Equals(playlist_count + 1)))
+
+ self.assertThat(playlists_page.get_playlist(0).primaryText,
+ Equals("testDeletePlaylist"))
+
+ # select the playlist that was just created
+ playlists_page.click_playlist(0)
+
+ # click the delete icon
+ playlists_page.click_delete_playlist_action()
+
+ # get dialog
+ delete_dialog = self.app.get_delete_playlist_dialog()
+
+ # click on the remove Button
+ delete_dialog.click_remove_playlist_dialog_remove_button()
+
+ playlists_page = self.app.get_playlists_page()
+
+ # verify that the playlist has been removed
+ self.assertThat(playlists_page.get_count(), Equals(playlist_count))
+
+
+
+
+
+
+
+
+
def test_artists_tab_album(self):
"""tests navigating to the Artists tab and playing an album"""
Follow ups