Merge lp:~renatofilho/mediaplayer-app/add-gst-libav into lp:mediaplayer-app

Proposed by Renato Araujo Oliveira Filho
Status: Rejected
Rejected by: Renato Araujo Oliveira Filho
Proposed branch: lp:~renatofilho/mediaplayer-app/add-gst-libav
Merge into: lp:mediaplayer-app
Diff against target: 307 lines (+78/-68)
6 files modified
debian/control (+2/-1)
src/qml/player.qml (+1/-0)
tests/autopilot/mediaplayer_app/emulators/main_window.py (+35/-2)
tests/autopilot/mediaplayer_app/tests/__init__.py (+2/-5)
tests/autopilot/mediaplayer_app/tests/test_player.py (+9/-21)
tests/autopilot/mediaplayer_app/tests/test_player_with_video.py (+29/-39)
To merge this branch: bzr merge lp:~renatofilho/mediaplayer-app/add-gst-libav
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Needs Fixing
Ubuntu Phablet Team Pending
Review via email: mp+193604@code.launchpad.net

Commit message

Added gstreamer1.0-libav as dep for i386 and amd64 arch.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
141. By Renato Araujo Oliveira Filho

Changed autopilot package arch.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Continuous integration, rev:141
http://jenkins.qa.ubuntu.com/job/mediaplayer-app-ci/149/
Executed test runs:
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-trusty/291
    FAILURE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-trusty-touch/281/console
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mediaplayer-app-trusty-amd64-ci/5
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mediaplayer-app-trusty-armhf-ci/5
        deb: http://jenkins.qa.ubuntu.com/job/mediaplayer-app-trusty-armhf-ci/5/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mediaplayer-app-trusty-i386-ci/5
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-trusty/275
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-trusty-amd64/291
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-trusty-amd64/291/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-trusty-armhf/281
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-trusty-armhf/281/artifact/work/output/*zip*/output.zip
    FAILURE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/2898/console
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/2949
    SUCCESS: http://10.97.0.26:8080/job/touch-flash-device/842
    SUCCESS: http://10.97.0.26:8080/job/touch-flash-device/843

Click here to trigger a rebuild:
http://10.97.0.26:8080/job/mediaplayer-app-ci/149/rebuild

review: Needs Fixing (continuous-integration)

Unmerged revisions

141. By Renato Araujo Oliveira Filho

Changed autopilot package arch.

140. By Renato Araujo Oliveira Filho

Added gstreamer1.0-libav as dep for i386 and amd64 arch.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/control'
--- debian/control 2013-10-14 21:48:26 +0000
+++ debian/control 2013-11-01 15:09:37 +0000
@@ -37,10 +37,11 @@
37 A QML Media player service used by Ubuntu shell to play video sources.37 A QML Media player service used by Ubuntu shell to play video sources.
3838
39Package: mediaplayer-app-autopilot39Package: mediaplayer-app-autopilot
40Architecture: all40Architecture: any
41Depends: ${misc:Depends},41Depends: ${misc:Depends},
42 ${shlibs:Depends},42 ${shlibs:Depends},
43 libautopilot-qt,43 libautopilot-qt,
44 gstreamer1.0-libav[i386 amd64],
44 libqt5test5,45 libqt5test5,
45 libqt5widgets5,46 libqt5widgets5,
46 mediaplayer-app (>= ${source:Version}),47 mediaplayer-app (>= ${source:Version}),
4748
=== modified file 'src/qml/player.qml'
--- src/qml/player.qml 2013-10-15 22:50:12 +0000
+++ src/qml/player.qml 2013-11-01 15:09:37 +0000
@@ -60,6 +60,7 @@
6060
61 Popups.Dialog {61 Popups.Dialog {
62 id: dialogue62 id: dialogue
63 objectName: "noMediaDialog"
6364
64 title: i18n.tr("Error")65 title: i18n.tr("Error")
65 text: i18n.tr("No video selected to play. Connect your phone to your computer to transfer videos to the phone. Then select video from Videos lens.")66 text: i18n.tr("No video selected to play. Connect your phone to your computer to transfer videos to the phone. Then select video from Videos lens.")
6667
=== modified file 'tests/autopilot/mediaplayer_app/emulators/main_window.py'
--- tests/autopilot/mediaplayer_app/emulators/main_window.py 2013-05-27 11:23:52 +0000
+++ tests/autopilot/mediaplayer_app/emulators/main_window.py 2013-11-01 15:09:37 +0000
@@ -16,5 +16,38 @@
16 """Get the main QML view"""16 """Get the main QML view"""
17 return self.app.select_single("QQuickView")17 return self.app.select_single("QQuickView")
1818
19 def get_object(self, typeName, name):19 def get_controls(self):
20 return self.app.select_single(typeName, objectName=name)20 return self.app.select_single("Controls", objectName="controls")
21
22 def get_video_area(self):
23 return self.app.select_single("VideoPlayer", objectName="player")
24
25 def get_toolbar(self):
26 return self.app.select_single("GenericToolbar", objectName="toolbar")
27
28 def get_playback_button(self):
29 return self.app.select_single("IconButton", objectName="Controls.PlayBackButton")
30
31 def get_player(self):
32 return self.app.select_single("VideoPlayer", objectName="player")
33
34 def get_scene_selector(self):
35 return self.app.select_single("SceneSelector", objectName="Controls.SceneSelector")
36
37 def get_slider(self):
38 return self.app.select_single("Slider", objectName="TimeLine.Slider")
39
40 def get_timeline(self):
41 return self.app.select_single("TimeLine", objectName="TimeLine")
42
43 def get_scene_0(self):
44 return self.app.select_single("SceneFrame", objectName="SceneSelector.Scene0")
45
46 def get_scene_2(self):
47 return self.app.select_single("SceneFrame", objectName="SceneSelector.Scene2")
48
49 def get_time_label(self):
50 return self.app.select_single("Label", objectName="TimeLine.TimeLabel")
51
52 def get_no_video_dialog(self):
53 return self.app.select_single("Dialog", objectName="noMediaDialog")
2154
=== modified file 'tests/autopilot/mediaplayer_app/tests/__init__.py'
--- tests/autopilot/mediaplayer_app/tests/__init__.py 2013-05-27 11:23:52 +0000
+++ tests/autopilot/mediaplayer_app/tests/__init__.py 2013-11-01 15:09:37 +0000
@@ -7,7 +7,6 @@
77
8"""mediaplayer-app autopilot tests."""8"""mediaplayer-app autopilot tests."""
99
10from os import remove
11import os.path10import os.path
12import os11import os
1312
@@ -26,11 +25,9 @@
26 """25 """
2726
28 if model() == 'Desktop':27 if model() == 'Desktop':
29 scenarios = [28 scenarios = [('with mouse', dict(input_device_class=Mouse))]
30 ('with mouse', dict(input_device_class=Mouse))]
31 else:29 else:
32 scenarios = [30 scenarios = [('with touch', dict(input_device_class=Touch))]
33 ('with touch', dict(input_device_class=Touch))]
3431
35 def setUp(self):32 def setUp(self):
36 self.pointing_device = Pointer(self.input_device_class.create())33 self.pointing_device = Pointer(self.input_device_class.create())
3734
=== modified file 'tests/autopilot/mediaplayer_app/tests/test_player.py'
--- tests/autopilot/mediaplayer_app/tests/test_player.py 2013-05-27 11:23:52 +0000
+++ tests/autopilot/mediaplayer_app/tests/test_player.py 2013-11-01 15:09:37 +0000
@@ -14,11 +14,6 @@
1414
15from mediaplayer_app.tests import MediaplayerAppTestCase15from mediaplayer_app.tests import MediaplayerAppTestCase
1616
17import unittest
18import time
19import os
20from os import path
21
2217
23class TestPlayer(MediaplayerAppTestCase):18class TestPlayer(MediaplayerAppTestCase):
24 """Tests the main media player features"""19 """Tests the main media player features"""
@@ -34,19 +29,12 @@
34 def tearDown(self):29 def tearDown(self):
35 super(TestPlayer, self).tearDown()30 super(TestPlayer, self).tearDown()
3631
37 """ Test if the toolbar appears with mouse click over the video area """32 def test_no_video_dialog_visible(self):
38 def test_controls_visibility(self):33 """ Makes sure 'No Video' dialog appears if the meidaplayer is opened
39 controls = self.main_window.get_object("Controls", "controls")34 without a video file argument.
4035
41 """ The toolbar is invisible by default """36 """
42 self.assertProperty(controls, visible=False)37
4338 dialog = self.main_window.get_no_video_dialog()
44 """ Toolbar must apper when clicked in the video area """39 self.assertThat(dialog.visible, Eventually(Equals(True)))
45 video_area = self.main_window.get_object("VideoPlayer", "player")40
46 self.pointing_device.move_to_object(video_area)
47 self.pointing_device.click()
48 self.assertProperty(controls, visible=True)
49
50 """ Toolbar must disappear when clicked in the video area again """
51 self.pointing_device.click()
52 self.assertProperty(controls, visible=True)
5341
=== modified file 'tests/autopilot/mediaplayer_app/tests/test_player_with_video.py'
--- tests/autopilot/mediaplayer_app/tests/test_player_with_video.py 2013-09-25 21:19:34 +0000
+++ tests/autopilot/mediaplayer_app/tests/test_player_with_video.py 2013-11-01 15:09:37 +0000
@@ -30,64 +30,60 @@
30 self.assertThat(30 self.assertThat(
31 self.main_window.get_qml_view().visible, Eventually(Equals(True)))31 self.main_window.get_qml_view().visible, Eventually(Equals(True)))
32 # wait video player start32 # wait video player start
33 player = self.main_window.get_object("VideoPlayer", "player")33 player = self.main_window.get_player()
34 self.assertThat(player.playing, Eventually(Equals(True)))34 self.assertThat(player.playing, Eventually(Equals(True)))
3535
36 def tearDown(self):36 def tearDown(self):
37 super(TestPlayerWithVideo, self).tearDown()37 super(TestPlayerWithVideo, self).tearDown()
3838
39 def show_controls(self):39 def show_controls(self):
40 video_area = self.main_window.get_object("VideoPlayer", "player")40 video_area = self.main_window.get_video_area()
41 self.pointing_device.move_to_object(video_area)41 self.pointing_device.click_object(video_area)
42 self.pointing_device.click()42 toolbar = self.main_window.get_toolbar()
43 toolbar = self.main_window.get_object("GenericToolbar", "toolbar")
44 self.assertThat(toolbar.ready, Eventually(Equals(True)))43 self.assertThat(toolbar.ready, Eventually(Equals(True)))
4544
46 def pause_video(self):45 def pause_video(self):
47 playback_buttom = self.main_window.get_object("IconButton", "Controls.PlayBackButton")46 playback_button = self.main_window.get_playback_button()
48 self.pointing_device.move_to_object(playback_buttom)47 self.pointing_device.click_object(playback_button)
49 self.pointing_device.click()
5048
51 def test_playback_buttom_states(self):49 def test_playback_button_states(self):
52 self.show_controls()50 self.show_controls()
5351
54 playback_buttom = self.main_window.get_object("IconButton", "Controls.PlayBackButton")52 playback_button = self.main_window.get_playback_button()
55 player = self.main_window.get_object("VideoPlayer", "player")53 player = self.main_window.get_player()
5654
57 """ Default state after load the video is playing and with pause55 """ Default state after load the video is playing and with pause
58 icon.56 icon.
59 """57 """
60 self.assertProperty(player, playing=True, paused=False)58 self.assertProperty(player, playing=True, paused=False)
61 self.assertProperty(playback_buttom, icon="pause")59 self.assertProperty(playback_button, icon="pause")
6260
63 self.pointing_device.move_to_object(playback_buttom)61 self.pointing_device.click_object(playback_button)
64 self.pointing_device.click()
6562
66 """ First click must pause the video, change playing state and show63 """ First click must pause the video, change playing state and show
67 play icon. """64 play icon. """
68 self.assertProperty(player, playing=False, paused=True)65 self.assertProperty(player, playing=False, paused=True)
69 self.assertProperty(playback_buttom, icon="play")66 self.assertProperty(playback_button, icon="play")
7067
71 self.pointing_device.click()68 self.pointing_device.click()
7269
73 """ Second click should change the state to playing again """70 """ Second click should change the state to playing again """
74 self.assertProperty(player, playing=True, paused=False)71 self.assertProperty(player, playing=True, paused=False)
75 self.assertProperty(playback_buttom, icon="pause")72 self.assertProperty(playback_button, icon="pause")
7673
77 @skip("New backend work needed. bug 1231147")74 @skip("New backend work needed. bug 1231147")
78 def test_scene_selector_visibility(self):75 def test_scene_selector_visibility(self):
79 self.show_controls()76 self.show_controls()
80 self.pause_video()77 self.pause_video()
8178
82 scene_selector = self.main_window.get_object("SceneSelector", "Controls.SceneSelector")79 scene_selector = self.main_window.get_scene_selector()
83 slider = self.main_window.get_object("Slider", "TimeLine.Slider")80 slider = self.main_window.get_slider()
8481
85 """ Default state is hide """82 """ Default state is hide """
86 self.assertProperty(scene_selector, visible=False)83 self.assertProperty(scene_selector, visible=False)
8784
88 """ Scene selector must apper when clicking int the slider handler """85 """ Scene selector must apper when clicking int the slider handler """
89 self.pointing_device.move_to_object(slider)86 self.pointing_device.click_object(slider)
90 self.pointing_device.click()
91 self.assertProperty(scene_selector, visible=True)87 self.assertProperty(scene_selector, visible=True)
9288
93 """ click again must dismiss the scene selector """89 """ click again must dismiss the scene selector """
@@ -99,17 +95,16 @@
99 self.show_controls()95 self.show_controls()
100 self.pause_video()96 self.pause_video()
10197
102 slider = self.main_window.get_object("Slider", "TimeLine.Slider")98 slider = self.main_window.get_slider()
103 time_line = self.main_window.get_object("TimeLine", "TimeLine")99 time_line = self.main_window.get_timeline()
104 selector = self.main_window.get_object("SceneSelector", "Controls.SceneSelector")100 selector = self.main_window.get_scene_selector()
105 self.assertThat(selector.count, Eventually(GreaterThan(3)))101 self.assertThat(selector.count, Eventually(GreaterThan(3)))
106102
107 """ Show scene selector """103 """ Show scene selector """
108 self.pointing_device.move_to_object(slider)104 self.pointing_device.click_object(slider)
109 self.pointing_device.click()
110105
111 """ Make sure that the scenes are in correct place """106 """ Make sure that the scenes are in correct place """
112 scene_0 = self.main_window.get_object("SceneFrame", "SceneSelector.Scene0")107 scene_0 = self.main_window.get_scene_0()
113 selectorRect = selector.globalRect108 selectorRect = selector.globalRect
114 self.pointing_device.drag(109 self.pointing_device.drag(
115 selectorRect[0], selectorRect[1] + selectorRect[3] / 2,110 selectorRect[0], selectorRect[1] + selectorRect[3] / 2,
@@ -118,10 +113,9 @@
118 self.assertThat(scene_0.x, Eventually(Equals(0)))113 self.assertThat(scene_0.x, Eventually(Equals(0)))
119114
120 """ Click in the second scene """115 """ Click in the second scene """
121 scene_2 = self.main_window.get_object("SceneFrame", "SceneSelector.Scene2")116 scene_2 = self.main_window.get_scene_2()
122 self.assertThat(scene_2.ready, Eventually(Equals(True)))117 self.assertThat(scene_2.ready, Eventually(Equals(True)))
123 self.pointing_device.move_to_object(scene_2)118 self.pointing_device.click_object(scene_2)
124 self.pointing_device.click()
125 self.assertThat(selector.currentIndex, Eventually(Equals(2)))119 self.assertThat(selector.currentIndex, Eventually(Equals(2)))
126 self.assertProperty(time_line, value=1.107)120 self.assertProperty(time_line, value=1.107)
127121
@@ -130,35 +124,31 @@
130 self.show_controls()124 self.show_controls()
131 self.pause_video()125 self.pause_video()
132126
133 time_line = self.main_window.get_object("Slider", "TimeLine.Slider")127 time_line = self.main_window.get_slider()
134 time_label = self.main_window.get_object("Label", "TimeLine.TimeLabel")128 time_label = self.main_window.get_time_label()
135 scene_selector = self.main_window.get_object("SceneSelector", "Controls.SceneSelector")
136129
137 """ Seek to the midle of the movie """130 """ Seek to the midle of the movie """
138 self.pointing_device.click_object(time_line)131 self.pointing_device.click_object(time_line)
139 self.assertThat(scene_selector.opacity, Eventually(Equals(1)))
140132
141 """ Time label must show the current video time (diff from zero or empty) """133 """ Time label must show the current video time (diff from zero or empty) """
142 self.assertNotEqual(time_label.text, "00:00:00")134 self.assertNotEqual(time_label.text, "00:00:00")
143 self.assertNotEqual(time_label.text, "")135 self.assertNotEqual(time_label.text, "")
144136
145 """ Click in the label to change the state """137 """ Click in the label to change the state """
146 self.pointing_device.move_to_object(time_label)138 self.pointing_device.click_object(time_label)
147 self.pointing_device.click()
148139
149 """ After the click the label must show the remaning time (with '-' signal) """140 """ After the click the label must show the remaning time (with '-' signal) """
150 self.assertEqual(time_label.text[0:1], "-")141 self.assertEqual(time_label.text[0:1], "-")
151142
152 @skipIf(model() == 'Nexus 4' or model() == 'Galaxy Nexus', 'Screen width not enough for seekbar')143 @skipIf(model() == 'Nexus 4' or model() == 'Galaxy Nexus', 'Screen width not enough for seekbar')
153 def test_show_controls_at_end(self):144 def test_show_controls_at_end(self):
154 time_line = self.main_window.get_object("Slider", "TimeLine.Slider")
155145
156 """ wait for video ends and control appears"""146 """ wait for video ends and control appears"""
157 time_label = self.main_window.get_object("Label", "TimeLine.TimeLabel")147 time_label = self.main_window.get_time_label()
158148
159 """ avoid the test fails due the timeout """149 """ avoid the test fails due the timeout """
160 self.assertThat(time_label.text, Eventually(Equals("00:00:25"), timeout=35))150 self.assertThat(time_label.text, Eventually(Equals("00:00:25"), timeout=35))
161 151
162 controls = self.main_window.get_object("Controls", "controls")152 controls = self.main_window.get_controls()
163 self.assertProperty(controls, visible=False)153 self.assertProperty(controls, visible=False)
164 self.assertThat(controls.visible, Eventually(Equals(True)))154 self.assertThat(controls.visible, Eventually(Equals(True)))

Subscribers

People subscribed via source and target branches