Home | History | Annotate | Download | only in value
      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', 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)
     62