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.
7 from telemetry import value
8 from telemetry.page import page_set
9 from telemetry.value import string
11 class TestBase(unittest.TestCase):
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/")
20 return self.page_set.pages
22 class StringValueTest(TestBase):
23 def testBuildbotValueType(self):
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())
32 v = string.StringValue(page0, 'x', 'label', 'L1', important=False)
35 v.GetBuildbotDataType(value.COMPUTED_PER_PAGE_SUMMARY_OUTPUT_CONTEXT))
37 def testStringSamePageMerging(self):
39 v0 = string.StringValue(page0, 'x', 'label', 'L1')
40 v1 = string.StringValue(page0, 'x', 'label', 'L2')
41 self.assertTrue(v1.IsMergableWith(v0))
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)
50 def testStringDifferentSiteMerging(self):
53 v0 = string.StringValue(page0, 'x', 'label', 'L1')
54 v1 = string.StringValue(page1, 'x', 'label', 'L2')
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)