c54ca26306e77cc5378dbf47f5535f7e78657a20
[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.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
27 class ValueTest(TestBase):
28   def testListSamePageMergingWithSamePageConcatenatePolicy(self):
29     page0 = self.pages[0]
30     v0 = list_of_scalar_values.ListOfScalarValues(
31         page0, 'x', 'unit',
32         [1,2], same_page_merge_policy=value.CONCATENATE)
33     v1 = list_of_scalar_values.ListOfScalarValues(
34         page0, 'x', 'unit',
35         [3,4], same_page_merge_policy=value.CONCATENATE)
36     self.assertTrue(v1.IsMergableWith(v0))
37
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)
46
47   def testListSamePageMergingWithPickFirstPolicy(self):
48     page0 = self.pages[0]
49     v0 = list_of_scalar_values.ListOfScalarValues(
50         page0, 'x', 'unit',
51         [1,2], same_page_merge_policy=value.PICK_FIRST)
52     v1 = list_of_scalar_values.ListOfScalarValues(
53         page0, 'x', 'unit',
54         [3,4], same_page_merge_policy=value.PICK_FIRST)
55     self.assertTrue(v1.IsMergableWith(v0))
56
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)
65
66   def testListDifferentPageMerging(self):
67     page0 = self.pages[0]
68     v0 = list_of_scalar_values.ListOfScalarValues(
69         page0, 'x', 'unit',
70         [1, 2], same_page_merge_policy=value.PICK_FIRST)
71     v1 = list_of_scalar_values.ListOfScalarValues(
72         page0, 'x', 'unit',
73         [3, 4], same_page_merge_policy=value.PICK_FIRST)
74     self.assertTrue(v1.IsMergableWith(v0))
75
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)