1# Copyright 2013 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. 4import os 5import unittest 6 7from telemetry import value 8from telemetry.page import page_set 9from telemetry.value import scalar 10 11class 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 22class ValueTest(TestBase): 23 def testBuildbotValueType(self): 24 page0 = self.pages[0] 25 v = scalar.ScalarValue(page0, 'x', 'unit', 3, important=True) 26 self.assertEquals('default', v.GetBuildbotDataType( 27 value.COMPUTED_PER_PAGE_SUMMARY_OUTPUT_CONTEXT)) 28 self.assertEquals([3], v.GetBuildbotValue()) 29 self.assertEquals(('x', page0.display_name), 30 v.GetBuildbotMeasurementAndTraceNameForPerPageResult()) 31 32 v = scalar.ScalarValue(page0, 'x', 'unit', 3, important=False) 33 self.assertEquals( 34 'unimportant', 35 v.GetBuildbotDataType(value.COMPUTED_PER_PAGE_SUMMARY_OUTPUT_CONTEXT)) 36 37 def testScalarSamePageMerging(self): 38 page0 = self.pages[0] 39 v0 = scalar.ScalarValue(page0, 'x', 'unit', 1) 40 v1 = scalar.ScalarValue(page0, 'x', 'unit', 2) 41 self.assertTrue(v1.IsMergableWith(v0)) 42 43 vM = scalar.ScalarValue.MergeLikeValuesFromSamePage([v0, v1]) 44 self.assertEquals(page0, vM.page) 45 self.assertEquals('x', vM.name) 46 self.assertEquals('unit', vM.units) 47 self.assertEquals(True, vM.important) 48 self.assertEquals([1, 2], vM.values) 49 50 def testScalarDifferentSiteMerging(self): 51 page0 = self.pages[0] 52 page1 = self.pages[1] 53 v0 = scalar.ScalarValue(page0, 'x', 'unit', 1) 54 v1 = scalar.ScalarValue(page1, 'x', 'unit', 2) 55 56 vM = scalar.ScalarValue.MergeLikeValuesFromDifferentPages([v0, v1]) 57 self.assertEquals(None, vM.page) 58 self.assertEquals('x', vM.name) 59 self.assertEquals('unit', vM.units) 60 self.assertEquals(True, vM.important) 61 self.assertEquals([1, 2], vM.values) 62