on xenial help sign in
improve testing
commit6a80c0d824e438de45571f220a89993d874553ed authorMichael Zanetti <michael.zanetti@canonical.com> dateTue 12 Nov 2013, 19:13 (13 years ago) parent299deb9
5 files changed+29−13
Dash/Music/MusicPreview.qml+4−6 tests/qmltests/Dash/Music/data/testsound.ogg → tests/qmltests/Dash/Music/data/testsound1.ogg tests/qmltests/Dash/Music/data/testsound2.ogg tests/qmltests/Dash/Music/data/testsound3.ogg tests/qmltests/Dash/Music/tst_MusicPreview.qml+25−7
Dash/Music/MusicPreview.qml+4−6
@@ -58,8 +58,6 @@ GenericPreview {
5858 id: audioPlayer
5959 objectName: "audioPlayer"
6060 property real percent: audioPlayer.position * 100 / audioPlayer.duration
61− property string uri
62− source: uri
6361
6462 Component.onDestruction: {
6563 audioPlayer.stop();
@@ -109,14 +107,14 @@ GenericPreview {
109107
110108 Connections {
111109 target: audioPlayer
112− onUriChanged: trackItem.isPlayingItem = false;
110+ onSourceChanged: trackItem.isPlayingItem = false;
113111 }
114112
115113 function play() {
116114 audioPlayer.stop();
117− // Make sure we change the uri, even if two items point to the same uri location
118− audioPlayer.uri = "";
119− audioPlayer.uri = model.uri;
115+ // Make sure we change the source, even if two items point to the same uri location
116+ audioPlayer.source = "";
117+ audioPlayer.source = model.uri;
120118 isPlayingItem = true;
121119 audioPlayer.play();
122120 }
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 {
5656 }
5757 ListModel {
5858 id: tracksModel3
59− ListElement { uri: "../../tests/qmltests/Dash/Music/data/testsound.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"}
61− ListElement { uri: "../../tests/qmltests/Dash/Music/data/testsound.ogg"; trackNo: 3; title: "And another one"; length: "123:45"}
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/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"}
62+ ListElement { uri: "../../tests/qmltests/Dash/Music/data/testsound3.ogg"; trackNo: 4; title: "And another one"; length: "123:45"}
6263 }
6364
6465 UT.UnityTestCase {
@@ -96,6 +97,13 @@ Rectangle {
9697 }
9798 }
9899
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+
99107 function test_playback() {
100108 musicPreview.previewData.tracks = tracksModel3;
101109 waitForRendering(musicPreview);
@@ -123,7 +131,7 @@ Rectangle {
123131 mouseClick(track0PlayButton, track0PlayButton.width / 2, track0PlayButton.height / 2);
124132
125133 tryCompare(audioPlayer, "playbackState", Audio.PlayingState);
126− compare(audioPlayer.uri, musicPreview.previewData.tracks.get(0).uri)
134+ checkPlayerUri(0);
127135
128136 tryCompare(track0ProgressBar, "visible", true);
129137 tryCompare(track1ProgressBar, "visible", false);
@@ -132,24 +140,34 @@ Rectangle {
132140 // Clicking the button again should pause it. The progress bar should stay visible
133141 mouseClick(track0PlayButton, track0PlayButton.width / 2, track0PlayButton.height / 2);
134142 tryCompare(audioPlayer, "playbackState", Audio.PausedState);
135− compare(audioPlayer.uri, musicPreview.previewData.tracks.get(0).uri)
143+ checkPlayerUri(0);
136144 tryCompare(track0ProgressBar, "visible", true);
137145
138146 // Continue playback
139147 mouseClick(track0PlayButton, track0PlayButton.width / 2, track0PlayButton.height / 2);
140148 tryCompare(audioPlayer, "playbackState", Audio.PlayingState);
141− compare(audioPlayer.uri, musicPreview.previewData.tracks.get(0).uri)
149+ checkPlayerUri(0);
142150
143151 // Playing track 1 should make progress bar 1 visible and hide progress bar 0 again
144152 mouseClick(track1PlayButton, track1PlayButton.width / 2, track1PlayButton.height / 2);
145153
146154 tryCompare(audioPlayer, "playbackState", Audio.PlayingState);
147− compare(audioPlayer.uri, musicPreview.previewData.tracks.get(1).uri)
155+ checkPlayerUri(1);
148156
149157 tryCompare(track0ProgressBar, "visible", false);
150158 tryCompare(track1ProgressBar, "visible", true);
151159 tryCompare(track2ProgressBar, "visible", false);
152160
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+
153171 // Switching away from this preview should make all players shut up!
154172 musicPreview.isCurrent = false
155173 tryCompare(audioPlayer, "playbackState", Audio.StoppedState);