Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / value / string_unittest.py
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
3 # found in the LICENSE file.
4 import os
5 import unittest
6
7 from telemetry import value
8 from telemetry.page import page_set
9 from telemetry.value import string
10
11 class TestBase(unittest.TestCase):
12   def setUp(self):
13     self.page_set = page_set.PageSet(file_path=os.path.dirname(__file__))
14     self.page_set.AddPageWithDefaultRunNavigate("http://www.bar.com/")
15     self.page_set.AddPageWithDefaultRunNavigate("http://www.baz.com/")
16     self.page_set.AddPageWithDefaultRunNavigate("http://www.foo.com/")
17
18   @property
19   def pages(self):
20     return self.page_set.pages
21
22 class StringValueTest(TestBase):
23   def testBuildbotValueType(self):
24     page0 = self.pages[0]
25     v = string.StringValue(page0, 'x', 'label', 'L1', important=True)
26     self.assertEquals('default', v.GetBuildbotDataType(
27         value.COMPUTED_PER_PAGE_SUMMARY_OUTPUT_CONTEXT))
28     self.assertEquals(['L1'], v.GetBuildbotValue())
29     self.assertEquals(('x_by_url', page0.display_name),
30                       v.GetBuildbotMeasurementAndTraceNameForPerPageResult())
31
32     v = string.StringValue(page0, 'x', 'label', 'L1', important=False)
33     self.assertEquals(
34         'unimportant',
35         v.GetBuildbotDataType(value.COMPUTED_PER_PAGE_SUMMARY_OUTPUT_CONTEXT))
36
37   def testStringSamePageMerging(self):
38     page0 = self.pages[0]
39     v0 = string.StringValue(page0, 'x', 'label', 'L1')
40     v1 = string.StringValue(page0, 'x', 'label', 'L2')
41     self.assertTrue(v1.IsMergableWith(v0))
42
43     vM = string.StringValue.MergeLikeValuesFromSamePage([v0, v1])
44     self.assertEquals(page0, vM.page)
45     self.assertEquals('x', vM.name)
46     self.assertEquals('label', vM.units)
47     self.assertEquals(True, vM.important)
48     self.assertEquals(['L1', 'L2'], vM.values)
49
50   def testStringDifferentSiteMerging(self):
51     page0 = self.pages[0]
52     page1 = self.pages[1]
53     v0 = string.StringValue(page0, 'x', 'label', 'L1')
54     v1 = string.StringValue(page1, 'x', 'label', 'L2')
55
56     vM = string.StringValue.MergeLikeValuesFromDifferentPages([v0, v1])
57     self.assertEquals(None, vM.page)
58     self.assertEquals('x', vM.name)
59     self.assertEquals('label', vM.units)
60     self.assertEquals(True, vM.important)
61     self.assertEquals(['L1', 'L2'], vM.values)