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