Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / value / list_of_string_values_unittest.py
1 # Copyright 2014 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_string_values
10
11
12 class TestBase(unittest.TestCase):
13   def setUp(self):
14     self.page_set = page_set.PageSet(file_path=os.path.dirname(__file__))
15     self.page_set.AddPageWithDefaultRunNavigate("http://www.bar.com/")
16     self.page_set.AddPageWithDefaultRunNavigate("http://www.baz.com/")
17     self.page_set.AddPageWithDefaultRunNavigate("http://www.foo.com/")
18
19   @property
20   def pages(self):
21     return self.page_set.pages
22
23 class ListOfStringValuesTest(TestBase):
24   def testListSamePageMergingWithSamePageConcatenatePolicy(self):
25     page0 = self.pages[0]
26     v0 = list_of_string_values.ListOfStringValues(
27         page0, 'x', 'label',
28         ['L1','L2'], same_page_merge_policy=value.CONCATENATE)
29     v1 = list_of_string_values.ListOfStringValues(
30         page0, 'x', 'label',
31         ['L3','L4'], same_page_merge_policy=value.CONCATENATE)
32     self.assertTrue(v1.IsMergableWith(v0))
33
34     vM = (list_of_string_values.ListOfStringValues.
35           MergeLikeValuesFromSamePage([v0, v1]))
36     self.assertEquals(page0, vM.page)
37     self.assertEquals('x', vM.name)
38     self.assertEquals('label', vM.units)
39     self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy)
40     self.assertEquals(True, vM.important)
41     self.assertEquals(['L1', 'L2', 'L3', 'L4'], vM.values)
42
43   def testListSamePageMergingWithPickFirstPolicy(self):
44     page0 = self.pages[0]
45     v0 = list_of_string_values.ListOfStringValues(
46         page0, 'x', 'label',
47         ['L1','L2'], same_page_merge_policy=value.PICK_FIRST)
48     v1 = list_of_string_values.ListOfStringValues(
49         page0, 'x', 'label',
50         ['L3','L4'], same_page_merge_policy=value.PICK_FIRST)
51     self.assertTrue(v1.IsMergableWith(v0))
52
53     vM = (list_of_string_values.ListOfStringValues.
54           MergeLikeValuesFromSamePage([v0, v1]))
55     self.assertEquals(page0, vM.page)
56     self.assertEquals('x', vM.name)
57     self.assertEquals('label', vM.units)
58     self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy)
59     self.assertEquals(True, vM.important)
60     self.assertEquals(['L1', 'L2'], vM.values)
61
62   def testListDifferentPageMerging(self):
63     page0 = self.pages[0]
64     v0 = list_of_string_values.ListOfStringValues(
65         page0, 'x', 'label',
66         ['L1', 'L2'], same_page_merge_policy=value.PICK_FIRST)
67     v1 = list_of_string_values.ListOfStringValues(
68         page0, 'x', 'label',
69         ['L3', 'L4'], same_page_merge_policy=value.PICK_FIRST)
70     self.assertTrue(v1.IsMergableWith(v0))
71
72     vM = (list_of_string_values.ListOfStringValues.
73           MergeLikeValuesFromDifferentPages([v0, v1]))
74     self.assertEquals(None, vM.page)
75     self.assertEquals('x', vM.name)
76     self.assertEquals('label', vM.units)
77     self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy)
78     self.assertEquals(True, vM.important)
79     self.assertEquals(['L1', 'L2', 'L3', 'L4'], vM.values)
80
81   def testAsDict(self):
82     v = list_of_string_values.ListOfStringValues(
83         None, 'x', 'unit', ['foo', 'bar'],
84         same_page_merge_policy=value.PICK_FIRST, important=False)
85     d = v.AsDictWithoutBaseClassEntries()
86
87     self.assertEquals(d, {
88           'values': ['foo', 'bar']
89         })
90
91   def testFromDict(self):
92     d = {
93       'type': 'list_of_string_values',
94       'name': 'x',
95       'units': 'unit',
96       'values': ['foo', 'bar']
97     }
98     v = value.Value.FromDict(d, {})
99
100     self.assertTrue(isinstance(v, list_of_string_values.ListOfStringValues))
101     self.assertEquals(v.values, ['foo', 'bar'])