Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / results / json_output_formatter_unittest.py
index 8c5af58..5601d01 100644 (file)
@@ -3,14 +3,18 @@
 # found in the LICENSE file.
 import json
 import os
+import shutil
 import StringIO
 import unittest
+import tempfile
 
 from telemetry import benchmark
 from telemetry.page import page_set
 from telemetry.results import json_output_formatter
 from telemetry.results import page_test_results
 from telemetry.value import scalar
+from telemetry.value import trace
+from telemetry.timeline import tracing_timeline_data
 
 
 def _MakePageSet():
@@ -28,10 +32,15 @@ def _HasValueNamed(values, name):
 class JsonOutputFormatterTest(unittest.TestCase):
   def setUp(self):
     self._output = StringIO.StringIO()
+    self._ouput_dir = tempfile.mkdtemp()
     self._page_set = _MakePageSet()
-    self._formatter = json_output_formatter.JsonOutputFormatter(self._output,
+    self._formatter = json_output_formatter.JsonOutputFormatter(
+        self._output, self._ouput_dir,
         benchmark.BenchmarkMetadata('benchmark_name'))
 
+  def tearDown(self):
+    shutil.rmtree(self._ouput_dir)
+
   def testOutputAndParse(self):
     results = page_test_results.PageTestResults()
 
@@ -48,7 +57,7 @@ class JsonOutputFormatterTest(unittest.TestCase):
   def testAsDictBaseKeys(self):
     results = page_test_results.PageTestResults()
     d = json_output_formatter.ResultsAsDict(results,
-        self._formatter.benchmark_metadata)
+        self._formatter.benchmark_metadata, self._ouput_dir)
 
     self.assertEquals(d['format_version'], '0.2')
     self.assertEquals(d['benchmark_name'], 'benchmark_name')
@@ -61,11 +70,31 @@ class JsonOutputFormatterTest(unittest.TestCase):
     results.DidRunPage(self._page_set[0])
 
     d = json_output_formatter.ResultsAsDict(results,
-        self._formatter.benchmark_metadata)
+        self._formatter.benchmark_metadata, self._ouput_dir)
 
     self.assertTrue(_HasPage(d['pages'], self._page_set[0]))
     self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo'))
 
+  def testAsDictWithTraceValue(self):
+    results = page_test_results.PageTestResults()
+    results.WillRunPage(self._page_set[0])
+    v0 = trace.TraceValue(
+        results.current_page,
+        tracing_timeline_data.TracingTimelineData({'event': 'test'}))
+    results.AddValue(v0)
+    results.DidRunPage(self._page_set[0])
+
+    d = json_output_formatter.ResultsAsDict(results,
+        self._formatter.benchmark_metadata, self._ouput_dir)
+
+    self.assertTrue(_HasPage(d['pages'], self._page_set[0]))
+    self.assertTrue(_HasValueNamed(d['per_page_values'], 'trace'))
+    self.assertEquals(len(d['files']), 1)
+    output_trace_path = d['files'].values()[0]
+    self.assertTrue(output_trace_path.startswith(self._ouput_dir))
+    self.assertTrue(os.path.exists(output_trace_path))
+
+
   def testAsDictWithTwoPages(self):
     results = page_test_results.PageTestResults()
     results.WillRunPage(self._page_set[0])
@@ -79,7 +108,7 @@ class JsonOutputFormatterTest(unittest.TestCase):
     results.DidRunPage(self._page_set[1])
 
     d = json_output_formatter.ResultsAsDict(results,
-        self._formatter.benchmark_metadata)
+        self._formatter.benchmark_metadata, self._ouput_dir)
 
     self.assertTrue(_HasPage(d['pages'], self._page_set[0]))
     self.assertTrue(_HasPage(d['pages'], self._page_set[1]))
@@ -92,7 +121,7 @@ class JsonOutputFormatterTest(unittest.TestCase):
     results.AddSummaryValue(v)
 
     d = json_output_formatter.ResultsAsDict(results,
-        self._formatter.benchmark_metadata)
+        self._formatter.benchmark_metadata, self._ouput_dir)
 
     self.assertFalse(d['pages'])
     self.assertTrue(_HasValueNamed(d['summary_values'], 'baz'))