| OLD | NEW | 
|    1 # Copyright 2013 The Chromium Authors. All rights reserved. |    1 # Copyright 2013 The Chromium Authors. All rights reserved. | 
|    2 # Use of this source code is governed by a BSD-style license that can be |    2 # Use of this source code is governed by a BSD-style license that can be | 
|    3 # found in the LICENSE file. |    3 # found in the LICENSE file. | 
|    4  |    4  | 
|    5 import unittest |    5 import unittest | 
|    6  |    6  | 
|    7 from telemetry.testing import simple_mock |    7 from telemetry.testing import simple_mock | 
|    8  |    8  | 
|    9 from metrics import webrtc_stats |    9 from metrics import webrtc_stats | 
|   10  |   10  | 
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  122     page.url = simple_mock.MockObject() |  122     page.url = simple_mock.MockObject() | 
|  123     results = FakeResults(page) |  123     results = FakeResults(page) | 
|  124     stats_metric.AddResults(tab, results) |  124     stats_metric.AddResults(tab, results) | 
|  125     return results |  125     return results | 
|  126  |  126  | 
|  127   def testExtractsValuesAsTimeSeries(self): |  127   def testExtractsValuesAsTimeSeries(self): | 
|  128     results = self._RunMetricOnJson(SAMPLE_JSON) |  128     results = self._RunMetricOnJson(SAMPLE_JSON) | 
|  129  |  129  | 
|  130     self.assertTrue(results.received_values, |  130     self.assertTrue(results.received_values, | 
|  131                     'Expected values for googDecodeMs and others, got none.') |  131                     'Expected values for googDecodeMs and others, got none.') | 
|  132  |  132     self.assertEqual(results.received_values[1].name, | 
|  133     # This also ensures we're clever enough to tell video packetsSent from audio |  133                      'peer_connection_0_audio_goog_rtt') | 
|  134     # packetsSent. |  134     self.assertEqual(results.received_values[1].values, | 
|  135     self.assertEqual(results.received_values[3].values, |  135                      [20.0, 17.0]) | 
|  136                      [4.0, 16.0]) |  136     self.assertEqual(results.received_values[7].name, | 
|  137     self.assertEqual(results.received_values[5].values, |  137                      'peer_connection_1_video_goog_rtt') | 
|  138                      [1.0, 8.0]) |  138     self.assertEqual(results.received_values[7].values, | 
 |  139                      [100.0, 101.0]) | 
|  139  |  140  | 
|  140   def testExtractsInterestingMetricsOnly(self): |  141   def testExtractsInterestingMetricsOnly(self): | 
|  141     results = self._RunMetricOnJson(SAMPLE_JSON) |  142     results = self._RunMetricOnJson(SAMPLE_JSON) | 
|  142  |  143  | 
|  143     self.assertTrue(len(results.received_values) > 0) |  144     self.assertTrue(len(results.received_values) > 0) | 
|  144     self.assertIn('peer_connection_0', results.received_values[0].name, |  145     self.assertIn('peer_connection_0', results.received_values[0].name, | 
|  145                   'The result should be a ListOfScalarValues instance with ' |  146                   'The result should be a ListOfScalarValues instance with ' | 
|  146                   'a name <peer connection id>_<statistic>.') |  147                   'a name <peer connection id>_<statistic>.') | 
|  147     all_names = [value.name for value in results.received_values] |  148     all_names = [value.name for value in results.received_values] | 
|  148     self.assertIn('peer_connection_0_video_packets_sent', all_names) |  149     self.assertIn('peer_connection_0_audio_goog_rtt', all_names) | 
|  149     self.assertNotIn('peer_connection_1_video_packets_sent', all_names, |  150     self.assertNotIn('peer_connection_1_audio_goog_rtt', all_names, | 
|  150                      'Peer connection 1 does not have a video packets sent in ' |  151                      'Peer connection 1 does not have a goog-rtt in ' | 
|  151                      'the JSON above, unlike peer connection 0 which does.') |  152                      'the JSON above, unlike peer connection 0 which does.') | 
|  152     self.assertIn('peer_connection_0_video_goog_rtt', all_names) |  153     self.assertIn('peer_connection_0_video_goog_rtt', all_names) | 
|  153     self.assertIn('peer_connection_1_video_goog_rtt', all_names) |  154     self.assertIn('peer_connection_1_video_goog_rtt', all_names) | 
|  154     # The audio_audio is intentional since the code distinguishes audio reports |  155     # The audio_audio is intentional since the code distinguishes audio reports | 
|  155     # from video reports (even though audio_input_level is quite obvious). |  156     # from video reports (even though audio_input_level is quite obvious). | 
|  156     self.assertNotIn('peer_connection_0_audio_audio_input_level', all_names, |  157     self.assertNotIn('peer_connection_0_audio_audio_input_level', all_names, | 
|  157                      'Input level is in the JSON for both connections but ' |  158                      'Input level is in the JSON for both connections but ' | 
|  158                      'should not be reported since it is not interesting.') |  159                      'should not be reported since it is not interesting.') | 
|  159     self.assertNotIn('peer_connection_1_audio_audio_input_level', all_names) |  160     self.assertNotIn('peer_connection_1_audio_audio_input_level', all_names) | 
|  160  |  161  | 
|  161   def testReturnsIfJsonIsEmpty(self): |  162   def testReturnsIfJsonIsEmpty(self): | 
|  162     results = self._RunMetricOnJson('[]') |  163     results = self._RunMetricOnJson('[]') | 
|  163     self.assertFalse(results.received_values) |  164     self.assertFalse(results.received_values) | 
| OLD | NEW |