Index: tools/telemetry/telemetry/value/chart_json_unittest.py |
diff --git a/tools/telemetry/telemetry/value/chart_json_unittest.py b/tools/telemetry/telemetry/value/chart_json_unittest.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b557ad2437f29e8e9445e6b3d7a54e462b8d1317 |
--- /dev/null |
+++ b/tools/telemetry/telemetry/value/chart_json_unittest.py |
@@ -0,0 +1,128 @@ |
+# 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 unittest |
+import json |
+ |
+from telemetry import benchmark |
+from telemetry.results import page_test_results |
+from telemetry.page import page_set |
+from telemetry.value import chart_json |
+from telemetry.value import scalar |
+from telemetry.value import list_of_scalar_values |
+ |
+ |
+def _MakePageSet(): |
+ ps = page_set.PageSet(file_path=os.path.dirname(__file__)) |
+ ps.AddPageWithDefaultRunNavigate('http://www.foo.com/') |
+ ps.AddPageWithDefaultRunNavigate('http://www.bar.com/') |
+ return ps |
+ |
+class ChartJsonTest(unittest.TestCase): |
+ def setUp(self): |
+ self._page_set = _MakePageSet() |
+ self._metadata = benchmark.BenchmarkMetadata('test_name') |
+ |
+ def testAsChartDictSerializable(self): |
+ results = page_test_results.PageTestResults() |
+ |
+ results.WillRunPage(self._page_set[0]) |
+ v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3) |
+ results.AddValue(v0) |
+ results.DidRunPage(self._page_set[0]) |
+ page_specific_values = results.all_page_specific_values |
+ summary_values = results.all_summary_values |
+ |
+ d = chart_json.ResultsAsChartDict(page_specific_values, summary_values, |
+ self._metadata) |
+ json.dumps(d) |
+ |
+ def testAsChartDictBaseKeys(self): |
+ results = page_test_results.PageTestResults() |
+ |
+ page_specific_values = results.all_page_specific_values |
+ summary_values = results.all_summary_values |
+ |
+ d = chart_json.ResultsAsChartDict(page_specific_values, summary_values, |
+ self._metadata) |
+ |
+ self.assertEquals(d['format_version'], '0.1') |
+ self.assertEquals(d['test_name'], 'test_name') |
+ |
+ def testAsChartDictPageSpecificValuesSamePage(self): |
+ results = page_test_results.PageTestResults() |
+ |
+ results.WillRunPage(self._page_set[0]) |
+ v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3) |
nednguyen
2014/08/13 02:17:03
Please don't use the results.current_page pattern
eakuefner
2014/08/15 22:47:32
Done.
|
+ results.AddValue(v0) |
+ results.DidRunPage(self._page_set[0]) |
+ |
+ results.WillRunPage(self._page_set[0]) |
+ v1 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 4) |
+ results.AddValue(v1) |
+ results.DidRunPage(self._page_set[0]) |
+ page_specific_values = results.all_page_specific_values |
+ summary_values = results.all_summary_values |
+ |
+ d = chart_json.ResultsAsChartDict(page_specific_values, summary_values, |
+ self._metadata) |
+ |
+ self.assertTrue('foo' in d['charts']) |
+ self.assertTrue('http://www.foo.com/' in d['charts']['foo']['traces']) |
+ |
+ def testAsChartDictPageSpecificValuesAndComputedSummary(self): |
+ results = page_test_results.PageTestResults() |
+ |
+ results.WillRunPage(self._page_set[0]) |
+ v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3) |
+ results.AddValue(v0) |
+ results.DidRunPage(self._page_set[0]) |
+ |
+ results.WillRunPage(self._page_set[1]) |
+ v1 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 4) |
+ results.AddValue(v1) |
+ results.DidRunPage(self._page_set[1]) |
+ page_specific_values = results.all_page_specific_values |
+ summary_values = results.all_summary_values |
+ |
+ d = chart_json.ResultsAsChartDict(page_specific_values, summary_values, |
+ self._metadata) |
+ |
+ self.assertTrue('foo' in d['charts']) |
+ self.assertTrue('http://www.foo.com/' in d['charts']['foo']['traces']) |
+ self.assertTrue('http://www.bar.com/' in d['charts']['foo']['traces']) |
+ self.assertTrue('overall' in d['charts']['foo']['traces']) |
+ |
+ def testAsChartDictSummaryValueWithTraceName(self): |
+ results = page_test_results.PageTestResults() |
+ |
+ results.WillRunPage(self._page_set[0]) |
+ results.DidRunPage(self._page_set[0]) |
+ v0 = list_of_scalar_values.ListOfScalarValues(None, 'foo.bar', 'seconds', |
+ [3, 4]) |
+ results.AddSummaryValue(v0) |
+ page_specific_values = results.all_page_specific_values |
+ summary_values = results.all_summary_values |
+ |
+ d = chart_json.ResultsAsChartDict(page_specific_values, summary_values, |
+ self._metadata) |
+ |
+ self.assertTrue('bar' in d['charts']['foo']['traces']) |
+ |
+ def testAsChartDictSummaryValueWithoutTraceName(self): |
+ results = page_test_results.PageTestResults() |
+ |
+ results.WillRunPage(self._page_set[0]) |
+ results.DidRunPage(self._page_set[0]) |
+ v0 = list_of_scalar_values.ListOfScalarValues(None, 'foo', 'seconds', |
+ [3, 4]) |
+ results.AddSummaryValue(v0) |
+ page_specific_values = results.all_page_specific_values |
+ summary_values = results.all_summary_values |
+ |
+ d = chart_json.ResultsAsChartDict(page_specific_values, summary_values, |
+ self._metadata) |
+ |
+ self.assertTrue('overall' in d['charts']['foo']['traces']) |
chrishenry - DO NOT USE
2014/08/13 05:12:02
I don't see any tests that test the actual values
eakuefner
2014/08/15 22:47:32
Added a smoke test to deal with this.
|