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.
7 from telemetry import value
8 from telemetry.page import page_set
9 from telemetry.value import list_of_scalar_values
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 ValueTest(TestBase):
23 def testListSamePageMergingWithSamePageConcatenatePolicy(self):
25 v0 = list_of_scalar_values.ListOfScalarValues(
27 [1,2], same_page_merge_policy=value.CONCATENATE)
28 v1 = list_of_scalar_values.ListOfScalarValues(
30 [3,4], same_page_merge_policy=value.CONCATENATE)
31 self.assertTrue(v1.IsMergableWith(v0))
33 vM = (list_of_scalar_values.ListOfScalarValues.
34 MergeLikeValuesFromSamePage([v0, v1]))
35 self.assertEquals(page0, vM.page)
36 self.assertEquals('x', vM.name)
37 self.assertEquals('unit', vM.units)
38 self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy)
39 self.assertEquals(True, vM.important)
40 self.assertEquals([1, 2, 3, 4], vM.values)
42 def testListSamePageMergingWithPickFirstPolicy(self):
44 v0 = list_of_scalar_values.ListOfScalarValues(
46 [1,2], same_page_merge_policy=value.PICK_FIRST)
47 v1 = list_of_scalar_values.ListOfScalarValues(
49 [3,4], same_page_merge_policy=value.PICK_FIRST)
50 self.assertTrue(v1.IsMergableWith(v0))
52 vM = (list_of_scalar_values.ListOfScalarValues.
53 MergeLikeValuesFromSamePage([v0, v1]))
54 self.assertEquals(page0, vM.page)
55 self.assertEquals('x', vM.name)
56 self.assertEquals('unit', vM.units)
57 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy)
58 self.assertEquals(True, vM.important)
59 self.assertEquals([1, 2], vM.values)
61 def testListDifferentPageMerging(self):
63 v0 = list_of_scalar_values.ListOfScalarValues(
65 [1, 2], same_page_merge_policy=value.PICK_FIRST)
66 v1 = list_of_scalar_values.ListOfScalarValues(
68 [3, 4], same_page_merge_policy=value.PICK_FIRST)
69 self.assertTrue(v1.IsMergableWith(v0))
71 vM = (list_of_scalar_values.ListOfScalarValues.
72 MergeLikeValuesFromDifferentPages([v0, v1]))
73 self.assertEquals(None, vM.page)
74 self.assertEquals('x', vM.name)
75 self.assertEquals('unit', vM.units)
76 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy)
77 self.assertEquals(True, vM.important)
78 self.assertEquals([1, 2, 3, 4], vM.values)