[Test] // https://bugzilla.gnome.org/show_bug.cgi?id=722731
public void TestThatInvalidTracksShouldNotBecomeCurrentTrack()
{
var a_valid_track = "A_boy.ogg";
var a_valid_uri = new SafeUri(Paths.Combine(TestsDir, "data", a_valid_track));
var a_track_that_doesnt_exit = "this_does_not_exist_in_the_data_folder.ogg";
var an_invalid_track = new SafeUri(Paths.Combine(TestsDir, "data", a_track_that_doesnt_exit));
TrackInfo current_track = null;
WaitUntil(PlayerEvent.Error, () => {
service.Open(a_valid_uri);
current_track = service.CurrentTrack;
Assert.IsNotNull(current_track);
Assert.IsTrue(current_track.Uri.AbsolutePath.EndsWith(a_valid_track));
service.SetNextTrack(an_invalid_track);
service.Play();
});
WaitUntil(PlayerEvent.StartOfStream, () => {
service.Open(a_valid_uri);
service.Play();
});
current_track = service.CurrentTrack;
Assert.IsNotNull(current_track);
var actual_filename = System.IO.Path.GetFileName(SafeUri.UriToFilename(current_track.Uri));
Assert.AreEqual(a_valid_track, actual_filename);
}