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.FromDict({
14 "description": "hello",
15 "archive_path": "foo.wpr",
17 {"url": "http://www.bar.com/"},
18 {"url": "http://www.baz.com/"},
19 {"url": "http://www.foo.com/"}
21 }, os.path.dirname(__file__))
25 return self.page_set.pages
27 class ValueTest(TestBase):
28 def testListSamePageMergingWithSamePageConcatenatePolicy(self):
30 v0 = list_of_scalar_values.ListOfScalarValues(
32 [1,2], same_page_merge_policy=value.CONCATENATE)
33 v1 = list_of_scalar_values.ListOfScalarValues(
35 [3,4], same_page_merge_policy=value.CONCATENATE)
36 self.assertTrue(v1.IsMergableWith(v0))
38 vM = (list_of_scalar_values.ListOfScalarValues.
39 MergeLikeValuesFromSamePage([v0, v1]))
40 self.assertEquals(page0, vM.page)
41 self.assertEquals('x', vM.name)
42 self.assertEquals('unit', vM.units)
43 self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy)
44 self.assertEquals(True, vM.important)
45 self.assertEquals([1, 2, 3, 4], vM.values)
47 def testListSamePageMergingWithPickFirstPolicy(self):
49 v0 = list_of_scalar_values.ListOfScalarValues(
51 [1,2], same_page_merge_policy=value.PICK_FIRST)
52 v1 = list_of_scalar_values.ListOfScalarValues(
54 [3,4], same_page_merge_policy=value.PICK_FIRST)
55 self.assertTrue(v1.IsMergableWith(v0))
57 vM = (list_of_scalar_values.ListOfScalarValues.
58 MergeLikeValuesFromSamePage([v0, v1]))
59 self.assertEquals(page0, vM.page)
60 self.assertEquals('x', vM.name)
61 self.assertEquals('unit', vM.units)
62 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy)
63 self.assertEquals(True, vM.important)
64 self.assertEquals([1, 2], vM.values)
66 def testListDifferentPageMerging(self):
68 v0 = list_of_scalar_values.ListOfScalarValues(
70 [1, 2], same_page_merge_policy=value.PICK_FIRST)
71 v1 = list_of_scalar_values.ListOfScalarValues(
73 [3, 4], same_page_merge_policy=value.PICK_FIRST)
74 self.assertTrue(v1.IsMergableWith(v0))
76 vM = (list_of_scalar_values.ListOfScalarValues.
77 MergeLikeValuesFromDifferentPages([v0, v1]))
78 self.assertEquals(None, vM.page)
79 self.assertEquals('x', vM.name)
80 self.assertEquals('unit', vM.units)
81 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy)
82 self.assertEquals(True, vM.important)
83 self.assertEquals([1, 2, 3, 4], vM.values)