Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / value / list_of_scalar_values_unittest.py
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.
4 import os
5 import unittest
6
7 from telemetry import value
8 from telemetry.page import page_set
9 from telemetry.value import list_of_scalar_values
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 ValueTest(TestBase):
23   def testListSamePageMergingWithSamePageConcatenatePolicy(self):
24     page0 = self.pages[0]
25     v0 = list_of_scalar_values.ListOfScalarValues(
26         page0, 'x', 'unit',
27         [1,2], same_page_merge_policy=value.CONCATENATE)
28     v1 = list_of_scalar_values.ListOfScalarValues(
29         page0, 'x', 'unit',
30         [3,4], same_page_merge_policy=value.CONCATENATE)
31     self.assertTrue(v1.IsMergableWith(v0))
32
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)
41
42   def testListSamePageMergingWithPickFirstPolicy(self):
43     page0 = self.pages[0]
44     v0 = list_of_scalar_values.ListOfScalarValues(
45         page0, 'x', 'unit',
46         [1,2], same_page_merge_policy=value.PICK_FIRST)
47     v1 = list_of_scalar_values.ListOfScalarValues(
48         page0, 'x', 'unit',
49         [3,4], same_page_merge_policy=value.PICK_FIRST)
50     self.assertTrue(v1.IsMergableWith(v0))
51
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)
60
61   def testListDifferentPageMerging(self):
62     page0 = self.pages[0]
63     v0 = list_of_scalar_values.ListOfScalarValues(
64         page0, 'x', 'unit',
65         [1, 2], same_page_merge_policy=value.PICK_FIRST)
66     v1 = list_of_scalar_values.ListOfScalarValues(
67         page0, 'x', 'unit',
68         [3, 4], same_page_merge_policy=value.PICK_FIRST)
69     self.assertTrue(v1.IsMergableWith(v0))
70
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)