| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 cStringIO | 5 import cStringIO |
| 6 import json | 6 import json |
| 7 import os | 7 import os |
| 8 import tempfile | 8 import tempfile |
| 9 import unittest | 9 import unittest |
| 10 import zipfile | 10 import zipfile |
| 11 | 11 |
| 12 from telemetry.timeline import trace_data | 12 from telemetry.timeline import trace_data |
| 13 | 13 |
| 14 class TraceDataTest(unittest.TestCase): | 14 class TraceDataTest(unittest.TestCase): |
| 15 def testSerialize(self): | 15 def testSerialize(self): |
| 16 ri = trace_data.TraceData({'traceEvents': [1, 2, 3]}) | 16 ri = trace_data.TraceData({'traceEvents': [1, 2, 3]}) |
| 17 f = cStringIO.StringIO() | 17 f = cStringIO.StringIO() |
| 18 ri.Serialize(f) | 18 ri.Serialize(f) |
| 19 d = f.getvalue() | 19 d = f.getvalue() |
| 20 | 20 |
| 21 self.assertIn('traceEvents', d) | 21 self.assertIn('traceEvents', d) |
| 22 self.assertIn('[1, 2, 3]', d) | 22 self.assertIn('[1, 2, 3]', d) |
| 23 | 23 |
| 24 json.loads(d) | 24 json.loads(d) |
| 25 | 25 |
| 26 def testSerializeZip(self): | 26 def testSerializeZip(self): |
| 27 data = trace_data.TraceData({'traceEvents': [1, 2, 3], | 27 data = trace_data.TraceData({'traceEvents': [1, 2, 3], |
| 28 'battor': ['battor_data']}) | 28 'powerTraceAsString': 'battor_data'}) |
| 29 tf = tempfile.NamedTemporaryFile(delete=False) | 29 tf = tempfile.NamedTemporaryFile(delete=False) |
| 30 temp_name = tf.name | 30 temp_name = tf.name |
| 31 tf.close() | 31 tf.close() |
| 32 try: | 32 try: |
| 33 data.Serialize(temp_name, gzip_result=True) | 33 data.Serialize(temp_name, gzip_result=True) |
| 34 self.assertTrue(zipfile.is_zipfile(temp_name)) | 34 self.assertTrue(zipfile.is_zipfile(temp_name)) |
| 35 z = zipfile.ZipFile(temp_name, 'r') | 35 z = zipfile.ZipFile(temp_name, 'r') |
| 36 | 36 |
| 37 self.assertIn('battor', z.namelist()) | 37 self.assertIn('powerTraceAsString', z.namelist()) |
| 38 self.assertIn('traceEvents', z.namelist()) | 38 self.assertIn('traceEvents', z.namelist()) |
| 39 z.close() | 39 z.close() |
| 40 finally: | 40 finally: |
| 41 os.remove(temp_name) | 41 os.remove(temp_name) |
| 42 | 42 |
| 43 def testValidateWithNonPrimativeRaises(self): | 43 def testValidateWithNonPrimativeRaises(self): |
| 44 with self.assertRaises(trace_data.NonSerializableTraceData): | 44 with self.assertRaises(trace_data.NonSerializableTraceData): |
| 45 trace_data.TraceData({'hello': TraceDataTest}) | 45 trace_data.TraceData({'hello': TraceDataTest}) |
| 46 | 46 |
| 47 def testValidateWithCircularReferenceRaises(self): | 47 def testValidateWithCircularReferenceRaises(self): |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 def testCorrectlyMalformedStringForm2(self): | 83 def testCorrectlyMalformedStringForm2(self): |
| 84 d = trace_data.TraceData("""[ | 84 d = trace_data.TraceData("""[ |
| 85 {"ph": "B"},""") | 85 {"ph": "B"},""") |
| 86 self.assertTrue(d.HasEventsFor(trace_data.CHROME_TRACE_PART)) | 86 self.assertTrue(d.HasEventsFor(trace_data.CHROME_TRACE_PART)) |
| 87 | 87 |
| 88 class TraceDataBuilderTest(unittest.TestCase): | 88 class TraceDataBuilderTest(unittest.TestCase): |
| 89 def testBasicChrome(self): | 89 def testBasicChrome(self): |
| 90 builder = trace_data.TraceDataBuilder() | 90 builder = trace_data.TraceDataBuilder() |
| 91 builder.AddEventsTo(trace_data.CHROME_TRACE_PART, [1, 2, 3]) | 91 builder.AddEventsTo(trace_data.CHROME_TRACE_PART, [1, 2, 3]) |
| 92 builder.AddEventsTo(trace_data.TAB_ID_PART, ['tab-7']) | 92 builder.AddEventsTo(trace_data.TAB_ID_PART, ['tab-7']) |
| 93 builder.AddEventsTo(trace_data.BATTOR_TRACE_PART, ['battor data here']) | 93 builder.AddEventsTo( |
| 94 trace_data.BATTOR_TRACE_PART, 'battor data here', as_string=True) |
| 94 | 95 |
| 95 d = builder.AsData() | 96 d = builder.AsData() |
| 96 self.assertTrue(d.HasEventsFor(trace_data.CHROME_TRACE_PART)) | 97 self.assertTrue(d.HasEventsFor(trace_data.CHROME_TRACE_PART)) |
| 97 self.assertTrue(d.HasEventsFor(trace_data.TAB_ID_PART)) | 98 self.assertTrue(d.HasEventsFor(trace_data.TAB_ID_PART)) |
| 98 self.assertTrue(d.HasEventsFor(trace_data.BATTOR_TRACE_PART)) | 99 self.assertTrue(d.HasEventsFor(trace_data.BATTOR_TRACE_PART)) |
| 99 | 100 |
| 100 self.assertRaises(Exception, builder.AsData) | 101 self.assertRaises(Exception, builder.AsData) |
| 102 |
| 103 def testAsStringWithList(self): |
| 104 builder = trace_data.TraceDataBuilder() |
| 105 with self.assertRaises(AssertionError): |
| 106 builder.AddEventsTo(trace_data.BATTOR_TRACE_PART, |
| 107 ['battor data here'], as_string=True) |
| 108 |
| 109 def testNotAsStringWithString(self): |
| 110 builder = trace_data.TraceDataBuilder() |
| 111 with self.assertRaises(AssertionError): |
| 112 builder.AddEventsTo(trace_data.CHROME_TRACE_PART, 'data here') |
| OLD | NEW |