667
667
# create a fake Player
668
668
class FakePlayer(object):
672
671
player = FakePlayer()
675
# inserting database like ImageModels
674
676
for i in xrange(2):
675
677
album_name = PhotoAlbumName(i)
676
678
picture_path = ImageFilePath(album_name, i+1)
677
679
tuples.append((album_name, picture_path))
678
player.playlist.append(ImageModel(picture_path))
680
def simulate_playing(result, index):
681
return self.service._slideshow_player_current_index_changed_cb(player,
680
playlist.append(ImageModel(picture_path))
682
# inserting a non database like ImageModel
683
picture_path = ImageFilePath("a_name", 42)
684
playlist.append(ImageModel(picture_path))
686
def simulate_playing(result, picture, index):
687
return self.service._slideshow_player_current_picture_changed_cb(player,
684
690
def pop_and_check_tuple(result, expected):
685
691
tup, self.service._last_displayed_picture_tuple = \
691
697
dfr = defer.Deferred()
692
698
# simulate the first playing event, last == None, emit
693
dfr.addCallback(simulate_playing, 0)
699
dfr.addCallback(simulate_playing, playlist[0], 0)
694
700
dfr.addCallback(pop_and_check_tuple, tuples[0])
695
701
# simulate another playing event, last == current, don't emit
696
dfr.addCallback(simulate_playing, 0)
702
dfr.addCallback(simulate_playing, playlist[0], 0)
697
703
dfr.addCallback(pop_and_check_tuple, None)
698
704
# change picture, emit event, last != current, emit
699
dfr.addCallback(simulate_playing, 1)
705
dfr.addCallback(simulate_playing, playlist[1], 1)
700
706
dfr.addCallback(pop_and_check_tuple, tuples[1])
707
# change picture to a non database one, last != current but last is not
708
# from the database, don't emit
709
dfr.addCallback(simulate_playing, playlist[2], 2)
710
dfr.addCallback(pop_and_check_tuple, None)
702
712
dfr.callback(None)