list_of_scalar_values_unittest.py revision f2477e01787aa58f445919b809d89e252beef54f
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.list_of_scalar_values import ListOfScalarValues 10 11class TestBase(unittest.TestCase): 12 def setUp(self): 13 self.page_set = page_set.PageSet.FromDict({ 14 "description": "hello", 15 "archive_path": "foo.wpr", 16 "pages": [ 17 {"url": "http://www.bar.com/"}, 18 {"url": "http://www.baz.com/"}, 19 {"url": "http://www.foo.com/"} 20 ] 21 }, os.path.dirname(__file__)) 22 23 @property 24 def pages(self): 25 return self.page_set.pages 26 27class ValueTest(TestBase): 28 def testListSamePageMergingWithSamePageConcatenatePolicy(self): 29 page0 = self.pages[0] 30 v0 = ListOfScalarValues( 31 page0, 'x', 'unit', 32 [1,2], same_page_merge_policy=value.CONCATENATE) 33 v1 = ListOfScalarValues( 34 page0, 'x', 'unit', 35 [3,4], same_page_merge_policy=value.CONCATENATE) 36 self.assertTrue(v1.IsMergableWith(v0)) 37 38 vM = ListOfScalarValues.MergeLikeValuesFromSamePage([v0, v1]) 39 self.assertEquals(page0, vM.page) 40 self.assertEquals('x', vM.name) 41 self.assertEquals('unit', vM.units) 42 self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy) 43 self.assertEquals(True, vM.important) 44 self.assertEquals([1, 2, 3, 4], vM.values) 45 46 def testListSamePageMergingWithPickFirstPolicy(self): 47 page0 = self.pages[0] 48 v0 = ListOfScalarValues( 49 page0, 'x', 'unit', 50 [1,2], same_page_merge_policy=value.PICK_FIRST) 51 v1 = ListOfScalarValues( 52 page0, 'x', 'unit', 53 [3,4], same_page_merge_policy=value.PICK_FIRST) 54 self.assertTrue(v1.IsMergableWith(v0)) 55 56 vM = ListOfScalarValues.MergeLikeValuesFromSamePage([v0, v1]) 57 self.assertEquals(page0, vM.page) 58 self.assertEquals('x', vM.name) 59 self.assertEquals('unit', vM.units) 60 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy) 61 self.assertEquals(True, vM.important) 62 self.assertEquals([1, 2], vM.values) 63 64 def testListDifferentPageMerging(self): 65 page0 = self.pages[0] 66 v0 = ListOfScalarValues( 67 page0, 'x', 'unit', 68 [1, 2], same_page_merge_policy=value.PICK_FIRST) 69 v1 = ListOfScalarValues( 70 page0, 'x', 'unit', 71 [3, 4], same_page_merge_policy=value.PICK_FIRST) 72 self.assertTrue(v1.IsMergableWith(v0)) 73 74 vM = ListOfScalarValues.MergeLikeValuesFromDifferentPages([v0, v1]) 75 self.assertEquals(None, vM.page) 76 self.assertEquals('x', vM.name) 77 self.assertEquals('unit', vM.units) 78 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy) 79 self.assertEquals(True, vM.important) 80 self.assertEquals([1, 2, 3, 4], vM.values) 81