describe 'playlists' before //fake db calls! firstSong = {"_id":153,"_kind":"db.store.audioobject:1","_rev":153,"album":"Decade (Disc 1)","artist":"Neil Young","genre":"Rock","title":"Cinnamon Girl","trackNumber":10,"uri":"/media/internal/music/Decade/10 Cinnamon Girl.mp3"}; Service = function(){} Service.prototype = { list : [ {"_id":152,"_kind":"audiofile:1","_rev":152,"album":"Decade (Disc 1)","artist":"Neil Young","genre":"Rock","title":"Sugar Mountain","trackNumber":6,"uri":"/media/internal/music/Decade/06 Sugar Mountain.mp3"}, {"_id":153,"_kind":"audiofile:1","_rev":153,"album":"Decade (Disc 1)","artist":"Neil Young","genre":"Rock","title":"Cinnamon Girl","trackNumber":10,"uri":"/media/internal/music/Decade/10 Cinnamon Girl.mp3"}, {"_id":154,"_kind":"audiofile:1","_rev":154,"album":"Decade (Disc 1)","artist":"Neil Young","genre":"Rock","title":"Expecting To Fly","trackNumber":5,"uri":"/media/internal/music/Decade/05 Expecting To Fly.mp3"}, {"_id":155,"_kind":"audiofile:1","_rev":155,"album":"Decade (Disc 1)","artist":"Neil Young","genre":"Rock","title":"The Old Laughing Lady","trackNumber":9,"uri":"/media/internal/music/Decade/09 The Old Laughing Lady.mp3"}, {"_id":156,"_kind":"audiofile:1","_rev":156,"album":"Decade (Disc 1)","artist":"Neil Young","genre":"Rock","title":"Helpless","trackNumber":16,"uri":"/media/internal/music/Decade/16 Helpless.mp3"}, {"_id":157,"_kind":"audiofile:1","_rev":157,"album":"Decade (Disc 1)","artist":"Neil Young","genre":"Podcast","title":"Down To The Wire","trackNumber":1,"uri":"/media/internal/music/Decade/01 Down To The Wire.mp3", "bookmark": "555"} ], //this inherently tests paging within the playlist //if tons of stuff starts failing, try checking the paging listPagedSongIds:function(query, callback, nextPage){ if(!nextPage){ callback({"returnValue":true,"results":this.list.slice(0,3), next:"fakepage"}); } else { callback({"returnValue":true,"results":this.list.slice(3)}); } }, fetchSongs: function(ids, callback){ sublist = []; ids.each(function(item){ for(var i=0; i