Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(137)

Side by Side Diff: chrome/test/functional/webrtc_call.py

Issue 10834229: Fixed race condition in test. Fixed spurious wait requests on shutdown. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review updates Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/test/data/webrtc/message_handling.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import os 6 import os
7 import subprocess 7 import subprocess
8 8
9 import pyauto_functional 9 import pyauto_functional
10 import pyauto 10 import pyauto
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 'peerconnection_server binary next to the chrome binary.') 49 'peerconnection_server binary next to the chrome binary.')
50 50
51 self._server_process = subprocess.Popen(binary_path) 51 self._server_process = subprocess.Popen(binary_path)
52 52
53 def tearDown(self): 53 def tearDown(self):
54 self._server_process.kill() 54 self._server_process.kill()
55 55
56 pyauto.PyUITest.tearDown(self) 56 pyauto.PyUITest.tearDown(self)
57 self.assertEquals('', self.CheckErrorsAndCrashes()) 57 self.assertEquals('', self.CheckErrorsAndCrashes())
58 58
59 def _SimpleWebRtcCall(self, test_page): 59 def _SimpleWebrtcCall(self, test_page):
60 """Tests we can call and hang up with WebRTC. 60 """Tests we can call and hang up with WebRTC.
61 61
62 This test exercises pretty much the whole happy-case for the WebRTC 62 This test exercises pretty much the whole happy-case for the WebRTC
63 JavaScript API. Currently, it exercises a normal call setup using the API 63 JavaScript API. Currently, it exercises a normal call setup using the API
64 defined at http://dev.w3.org/2011/webrtc/editor/webrtc.html. The API is 64 defined at http://dev.w3.org/2011/webrtc/editor/webrtc.html. The API is
65 still evolving. 65 still evolving.
66 66
67 The test will load the supplied HTML file, which in turn will load different 67 The test will load the supplied HTML file, which in turn will load different
68 javascript files depending on which version of the signaling protocol 68 javascript files depending on which version of the signaling protocol
69 we are running. 69 we are running.
(...skipping 18 matching lines...) Expand all
88 self._Connect('user_2', tab_index=1) 88 self._Connect('user_2', tab_index=1)
89 89
90 self._EstablishCall(from_tab_with_index=0) 90 self._EstablishCall(from_tab_with_index=0)
91 91
92 self._StartDetectingVideo(tab_index=0, video_element='remote_view') 92 self._StartDetectingVideo(tab_index=0, video_element='remote_view')
93 93
94 self._WaitForVideoToPlay() 94 self._WaitForVideoToPlay()
95 95
96 # The hang-up will automatically propagate to the second tab. 96 # The hang-up will automatically propagate to the second tab.
97 self._HangUp(from_tab_with_index=0) 97 self._HangUp(from_tab_with_index=0)
98 self._VerifyHungUp(tab_index=1) 98 self._WaitUntilHangUpVerified(tab_index=1)
99 99
100 self._Disconnect(tab_index=0) 100 self._Disconnect(tab_index=0)
101 self._Disconnect(tab_index=1) 101 self._Disconnect(tab_index=1)
102 102
103 # Ensure we didn't miss any errors. 103 # Ensure we didn't miss any errors.
104 self.AssertNoFailures(tab_index=0) 104 self.AssertNoFailures(tab_index=0)
105 self.AssertNoFailures(tab_index=1) 105 self.AssertNoFailures(tab_index=1)
106 106
107 def testSimpleWebRtcJsepCall(self): 107 def testSimpleWebrtcJsepCall(self):
108 self._SimpleWebRtcCall('webrtc_jsep_test.html') 108 self._SimpleWebrtcCall('webrtc_jsep_test.html')
109 109
110 def testLocalPreview(self): 110 def testLocalPreview(self):
111 """Brings up a local preview and ensures video is playing. 111 """Brings up a local preview and ensures video is playing.
112 112
113 This test will launch a window with a single tab and run a getUserMedia call 113 This test will launch a window with a single tab and run a getUserMedia call
114 which will give us access to the webcam and microphone. Then the javascript 114 which will give us access to the webcam and microphone. Then the javascript
115 code will hook up the webcam data to the local_view video tag. We will 115 code will hook up the webcam data to the local_view video tag. We will
116 detect video in that tag using the video detector, and if we see video 116 detect video in that tag using the video detector, and if we see video
117 moving the test passes. 117 moving the test passes.
118 """ 118 """
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 'call()', tab_index=from_tab_with_index)) 152 'call()', tab_index=from_tab_with_index))
153 self.AssertNoFailures(from_tab_with_index) 153 self.AssertNoFailures(from_tab_with_index)
154 154
155 # Double-check the call reached the other side. 155 # Double-check the call reached the other side.
156 self.assertEquals('yes', self.ExecuteJavascript( 156 self.assertEquals('yes', self.ExecuteJavascript(
157 'is_call_active()', tab_index=from_tab_with_index)) 157 'is_call_active()', tab_index=from_tab_with_index))
158 158
159 def _HangUp(self, from_tab_with_index): 159 def _HangUp(self, from_tab_with_index):
160 self.assertEquals('ok-call-hung-up', self.ExecuteJavascript( 160 self.assertEquals('ok-call-hung-up', self.ExecuteJavascript(
161 'hangUp()', tab_index=from_tab_with_index)) 161 'hangUp()', tab_index=from_tab_with_index))
162 self._VerifyHungUp(from_tab_with_index) 162 self._WaitUntilHangUpVerified(tab_index=from_tab_with_index)
163 self.AssertNoFailures(from_tab_with_index) 163 self.AssertNoFailures(tab_index=from_tab_with_index)
164 164
165 def _VerifyHungUp(self, tab_index): 165 def _WaitUntilHangUpVerified(self, tab_index):
166 self.assertEquals('no', self.ExecuteJavascript( 166 hung_up = self.WaitUntil(
167 'is_call_active()', tab_index=tab_index)) 167 function=lambda: self.ExecuteJavascript('is_call_active()',
168 tab_index=tab_index),
169 expect_retval='no')
170 self.assertTrue(hung_up,
171 msg='Timed out while waiting for hang-up to be confirmed.')
168 172
169 def _Disconnect(self, tab_index): 173 def _Disconnect(self, tab_index):
170 self.assertEquals('ok-disconnected', self.ExecuteJavascript( 174 self.assertEquals('ok-disconnected', self.ExecuteJavascript(
171 'disconnect()', tab_index=tab_index)) 175 'disconnect()', tab_index=tab_index))
172 176
173 def _StartDetectingVideo(self, tab_index, video_element): 177 def _StartDetectingVideo(self, tab_index, video_element):
174 self.assertEquals('ok-started', self.ExecuteJavascript( 178 self.assertEquals('ok-started', self.ExecuteJavascript(
175 'startDetection("%s", "frame_buffer", 320, 240)' % video_element, 179 'startDetection("%s", "frame_buffer", 320, 240)' % video_element,
176 tab_index=tab_index)); 180 tab_index=tab_index));
177 181
178 def _WaitForVideoToPlay(self): 182 def _WaitForVideoToPlay(self):
179 video_playing = self.WaitUntil( 183 video_playing = self.WaitUntil(
180 function=lambda: self.ExecuteJavascript('isVideoPlaying()'), 184 function=lambda: self.ExecuteJavascript('isVideoPlaying()'),
181 expect_retval='video-playing') 185 expect_retval='video-playing')
182 self.assertTrue(video_playing, 186 self.assertTrue(video_playing,
183 msg='Timed out while trying to detect video.') 187 msg='Timed out while trying to detect video.')
184 188
185 189
186 if __name__ == '__main__': 190 if __name__ == '__main__':
187 pyauto_functional.Main() 191 pyauto_functional.Main()
OLDNEW
« no previous file with comments | « chrome/test/data/webrtc/message_handling.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698