Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / page / block_page_measurement_results_unittest.py
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4 import StringIO
5 import os
6 import unittest
7
8 from telemetry.page import block_page_measurement_results
9 from telemetry.page import page_set
10
11 BlockPageMeasurementResults = \
12     block_page_measurement_results.BlockPageMeasurementResults
13
14 def _MakePageSet():
15   ps = page_set.PageSet(file_path=os.path.dirname(__file__))
16   ps.AddPageWithDefaultRunNavigate('http://www.foo.com/')
17   ps.AddPageWithDefaultRunNavigate('http://www.bar.com/')
18   return ps
19
20
21 class NonPrintingBlockPageMeasurementResults(BlockPageMeasurementResults):
22   def __init__(self, *args):
23     super(NonPrintingBlockPageMeasurementResults, self).__init__(*args)
24
25   def _PrintPerfResult(self, *args):
26     pass
27
28 class BlockPageMeasurementResultsTest(unittest.TestCase):
29   def setUp(self):
30     self._output = StringIO.StringIO()
31     self._page_set = _MakePageSet()
32
33   @property
34   def lines(self):
35     lines = StringIO.StringIO(self._output.getvalue()).readlines()
36     return [line.strip() for line in lines]
37
38   @property
39   def data(self):
40     return [line.split(': ', 1) for line in self.lines]
41
42   def test_with_output_after_every_page(self):
43     results = NonPrintingBlockPageMeasurementResults(self._output)
44     results.WillMeasurePage(self._page_set[0])
45     results.Add('foo', 'seconds', 3)
46     results.DidMeasurePage()
47
48     results.WillMeasurePage(self._page_set[1])
49     results.Add('bar', 'seconds', 4)
50     results.DidMeasurePage()
51
52     expected = [
53       ['name', 'http://www.foo.com/'],
54       ['foo (seconds)', '3'],
55       [''],
56       ['name', 'http://www.bar.com/'],
57       ['bar (seconds)', '4'],
58       ['']
59     ]
60     self.assertEquals(self.data, expected)