Index: tools/telemetry/telemetry/value/trace_unittest.py |
diff --git a/tools/telemetry/telemetry/value/trace_unittest.py b/tools/telemetry/telemetry/value/trace_unittest.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..70d8dc9e6029f55901084d4390b74f15e8602789 |
--- /dev/null |
+++ b/tools/telemetry/telemetry/value/trace_unittest.py |
@@ -0,0 +1,58 @@ |
+# Copyright 2014 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+import os |
+import shutil |
+import unittest |
+ |
+from telemetry.page import page_set |
+from telemetry.timeline import timeline_data |
+from telemetry.value import trace |
+ |
+class TestBase(unittest.TestCase): |
+ def setUp(self): |
+ self.page_set = page_set.PageSet(file_path=os.path.dirname(__file__)) |
+ self.page_set.AddPageWithDefaultRunNavigate("http://www.bar.com/") |
+ self.page_set.AddPageWithDefaultRunNavigate("http://www.baz.com/") |
+ self.page_set.AddPageWithDefaultRunNavigate("http://www.foo.com/") |
+ |
+ @property |
+ def pages(self): |
+ return self.page_set.pages |
+ |
+class TimelineDataForTest(timeline_data.TimelineData): |
+ def __init__(self): |
+ super(TimelineDataForTest, self).__init__() |
+ self._event_data = 'foo' |
+ |
+ def Serialize(self, f): |
+ f.write(self._event_data) |
+ f.flush() |
+ os.fsync(f) |
+ |
+ def EventData(self): |
+ return self._event_data |
+ |
+ |
+class ValueTest(TestBase): |
+ def testCreateAndCopyAndRead(self): |
+ # Windows does not support opening a tempfile twice so we make a copy. |
+ v = trace.TraceValue(None, 'bar', TimelineDataForTest()) |
+ path = v.GetAssociatedFileHandle().GetRelPath('.') |
+ |
+ shutil.copy(path, 'test_create_and_copy_000') |
+ f = open('test_create_and_copy_000') |
+ s = f.read() |
+ f.close() |
+ os.remove('test_create_and_copy_000') |
+ |
+ self.assertEqual(s, 'foo') |
+ |
+ def testAsDict(self): |
+ v = trace.TraceValue(None, 'bar', TimelineDataForTest()) |
+ fh_id = v.GetAssociatedFileHandle().id |
+ |
+ d = v.AsDict() |
+ |
+ self.assertEqual(d['file_id'], fh_id) |