on xenial help sign in
improve testing
6a80c0dMichael Zanetti
Dash/Music/MusicPreview.qml+4−6
@@ -58,8 +58,6 @@ GenericPreview {
58 id: audioPlayer
58 id: audioPlayer
59 objectName: "audioPlayer"
59 objectName: "audioPlayer"
60 property real percent: audioPlayer.position * 100 / audioPlayer.duration
60 property real percent: audioPlayer.position * 100 / audioPlayer.duration
61− property string uri
62− source: uri
63
61
64 Component.onDestruction: {
62 Component.onDestruction: {
65 audioPlayer.stop();
63 audioPlayer.stop();
@@ -109,14 +107,14 @@ GenericPreview {
109
107
110 Connections {
108 Connections {
111 target: audioPlayer
109 target: audioPlayer
112− onUriChanged: trackItem.isPlayingItem = false;
110+ onSourceChanged: trackItem.isPlayingItem = false;
113 }
111 }
114
112
115 function play() {
113 function play() {
116 audioPlayer.stop();
114 audioPlayer.stop();
117− // Make sure we change the uri, even if two items point to the same uri location
115+ // Make sure we change the source, even if two items point to the same uri location
118− audioPlayer.uri = "";
116+ audioPlayer.source = "";
119− audioPlayer.uri = model.uri;
117+ audioPlayer.source = model.uri;
120 isPlayingItem = true;
118 isPlayingItem = true;
121 audioPlayer.play();
119 audioPlayer.play();
122 }
120 }
tests/qmltests/Dash/Music/data/testsound.ogg → tests/qmltests/Dash/Music/data/testsound1.oggrenamed

Binary file not shown.

tests/qmltests/Dash/Music/data/testsound2.oggnew file

Binary file not shown.

tests/qmltests/Dash/Music/data/testsound3.oggnew file

Binary file not shown.

tests/qmltests/Dash/Music/tst_MusicPreview.qml+25−7
@@ -56,9 +56,10 @@ Rectangle {
56 }
56 }
57 ListModel {
57 ListModel {
58 id: tracksModel3
58 id: tracksModel3
59− ListElement { uri: "../../tests/qmltests/Dash/Music/data/testsound.ogg"; trackNo: 1; title: "Some track name"; length: "0:30"}
59+ ListElement { uri: "../../tests/qmltests/Dash/Music/data/testsound1.ogg"; trackNo: 1; title: "Some track name"; length: "0:30"}
60− ListElement { uri: "../../tests/qmltests/Dash/Music/data/testsound.ogg"; trackNo: 2; title: "Some other track name"; length: "1:23"}
60+ ListElement { uri: "../../tests/qmltests/Dash/Music/data/testsound1.ogg"; trackNo: 2; title: "Some track name"; length: "0:30"}
61+ ListElement { uri: "../../tests/qmltests/Dash/Music/data/testsound2.ogg"; trackNo: 3; title: "Some other track name"; length: "1:23"}
61− ListElement { uri: "../../tests/qmltests/Dash/Music/data/testsound.ogg"; trackNo: 3; title: "And another one"; length: "123:45"}
62+ ListElement { uri: "../../tests/qmltests/Dash/Music/data/testsound3.ogg"; trackNo: 4; title: "And another one"; length: "123:45"}
62 }
63 }
63
64
64 UT.UnityTestCase {
65 UT.UnityTestCase {
@@ -96,6 +97,13 @@ Rectangle {
96 }
97 }
97 }
98 }
98
99
100+ function checkPlayerUri(index) {
101+ var modelFilename = musicPreview.previewData.tracks.get(index).uri.replace(/^.*[\\\/]/, '');
102+ var playerFilename = findInvisibleChild(musicPreview, "audioPlayer").source.toString().replace(/^.*[\\\/]/, '');
103+
104+ compare(modelFilename, playerFilename, "Player source is not set correctly.");
105+ }
106+
99 function test_playback() {
107 function test_playback() {
100 musicPreview.previewData.tracks = tracksModel3;
108 musicPreview.previewData.tracks = tracksModel3;
101 waitForRendering(musicPreview);
109 waitForRendering(musicPreview);
@@ -123,7 +131,7 @@ Rectangle {
123 mouseClick(track0PlayButton, track0PlayButton.width / 2, track0PlayButton.height / 2);
131 mouseClick(track0PlayButton, track0PlayButton.width / 2, track0PlayButton.height / 2);
124
132
125 tryCompare(audioPlayer, "playbackState", Audio.PlayingState);
133 tryCompare(audioPlayer, "playbackState", Audio.PlayingState);
126− compare(audioPlayer.uri, musicPreview.previewData.tracks.get(0).uri)
134+ checkPlayerUri(0);
127
135
128 tryCompare(track0ProgressBar, "visible", true);
136 tryCompare(track0ProgressBar, "visible", true);
129 tryCompare(track1ProgressBar, "visible", false);
137 tryCompare(track1ProgressBar, "visible", false);
@@ -132,24 +140,34 @@ Rectangle {
132 // Clicking the button again should pause it. The progress bar should stay visible
140 // Clicking the button again should pause it. The progress bar should stay visible
133 mouseClick(track0PlayButton, track0PlayButton.width / 2, track0PlayButton.height / 2);
141 mouseClick(track0PlayButton, track0PlayButton.width / 2, track0PlayButton.height / 2);
134 tryCompare(audioPlayer, "playbackState", Audio.PausedState);
142 tryCompare(audioPlayer, "playbackState", Audio.PausedState);
135− compare(audioPlayer.uri, musicPreview.previewData.tracks.get(0).uri)
143+ checkPlayerUri(0);
136 tryCompare(track0ProgressBar, "visible", true);
144 tryCompare(track0ProgressBar, "visible", true);
137
145
138 // Continue playback
146 // Continue playback
139 mouseClick(track0PlayButton, track0PlayButton.width / 2, track0PlayButton.height / 2);
147 mouseClick(track0PlayButton, track0PlayButton.width / 2, track0PlayButton.height / 2);
140 tryCompare(audioPlayer, "playbackState", Audio.PlayingState);
148 tryCompare(audioPlayer, "playbackState", Audio.PlayingState);
141− compare(audioPlayer.uri, musicPreview.previewData.tracks.get(0).uri)
149+ checkPlayerUri(0);
142
150
143 // Playing track 1 should make progress bar 1 visible and hide progress bar 0 again
151 // Playing track 1 should make progress bar 1 visible and hide progress bar 0 again
144 mouseClick(track1PlayButton, track1PlayButton.width / 2, track1PlayButton.height / 2);
152 mouseClick(track1PlayButton, track1PlayButton.width / 2, track1PlayButton.height / 2);
145
153
146 tryCompare(audioPlayer, "playbackState", Audio.PlayingState);
154 tryCompare(audioPlayer, "playbackState", Audio.PlayingState);
147− compare(audioPlayer.uri, musicPreview.previewData.tracks.get(1).uri)
155+ checkPlayerUri(1);
148
156
149 tryCompare(track0ProgressBar, "visible", false);
157 tryCompare(track0ProgressBar, "visible", false);
150 tryCompare(track1ProgressBar, "visible", true);
158 tryCompare(track1ProgressBar, "visible", true);
151 tryCompare(track2ProgressBar, "visible", false);
159 tryCompare(track2ProgressBar, "visible", false);
152
160
161+ // Playing track 2 should make progress bar 1 visible and hide progress bar 0 again
162+ mouseClick(track2PlayButton, track2PlayButton.width / 2, track2PlayButton.height / 2);
163+
164+ tryCompare(audioPlayer, "playbackState", Audio.PlayingState);
165+ checkPlayerUri(2);
166+
167+ tryCompare(track0ProgressBar, "visible", false);
168+ tryCompare(track1ProgressBar, "visible", false);
169+ tryCompare(track2ProgressBar, "visible", true);
170+
153 // Switching away from this preview should make all players shut up!
171 // Switching away from this preview should make all players shut up!
154 musicPreview.isCurrent = false
172 musicPreview.isCurrent = false
155 tryCompare(audioPlayer, "playbackState", Audio.StoppedState);
173 tryCompare(audioPlayer, "playbackState", Audio.StoppedState);