OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 import os | 4 import os |
5 import unittest | 5 import unittest |
6 | 6 |
7 from telemetry import value | 7 from telemetry import value |
8 from telemetry.page import page_set | 8 from telemetry.page import page_set |
9 from telemetry.value import list_of_string_values | 9 from telemetry.value import list_of_string_values |
| 10 from telemetry.value import none_values |
10 | 11 |
11 | 12 |
12 class TestBase(unittest.TestCase): | 13 class TestBase(unittest.TestCase): |
13 def setUp(self): | 14 def setUp(self): |
14 self.page_set = page_set.PageSet(file_path=os.path.dirname(__file__)) | 15 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.bar.com/") |
16 self.page_set.AddPageWithDefaultRunNavigate("http://www.baz.com/") | 17 self.page_set.AddPageWithDefaultRunNavigate("http://www.baz.com/") |
17 self.page_set.AddPageWithDefaultRunNavigate("http://www.foo.com/") | 18 self.page_set.AddPageWithDefaultRunNavigate("http://www.foo.com/") |
18 | 19 |
19 @property | 20 @property |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 MergeLikeValuesFromSamePage([v0, v1])) | 55 MergeLikeValuesFromSamePage([v0, v1])) |
55 self.assertEquals(page0, vM.page) | 56 self.assertEquals(page0, vM.page) |
56 self.assertEquals('x', vM.name) | 57 self.assertEquals('x', vM.name) |
57 self.assertEquals('label', vM.units) | 58 self.assertEquals('label', vM.units) |
58 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy) | 59 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy) |
59 self.assertEquals(True, vM.important) | 60 self.assertEquals(True, vM.important) |
60 self.assertEquals(['L1', 'L2'], vM.values) | 61 self.assertEquals(['L1', 'L2'], vM.values) |
61 | 62 |
62 def testListDifferentPageMerging(self): | 63 def testListDifferentPageMerging(self): |
63 page0 = self.pages[0] | 64 page0 = self.pages[0] |
| 65 page1 = self.pages[0] |
64 v0 = list_of_string_values.ListOfStringValues( | 66 v0 = list_of_string_values.ListOfStringValues( |
65 page0, 'x', 'label', | 67 page0, 'x', 'label', |
66 ['L1', 'L2'], same_page_merge_policy=value.PICK_FIRST) | 68 ['L1', 'L2'], same_page_merge_policy=value.CONCATENATE) |
67 v1 = list_of_string_values.ListOfStringValues( | 69 v1 = list_of_string_values.ListOfStringValues( |
68 page0, 'x', 'label', | 70 page1, 'x', 'label', |
69 ['L3', 'L4'], same_page_merge_policy=value.PICK_FIRST) | 71 ['L3', 'L4'], same_page_merge_policy=value.CONCATENATE) |
70 self.assertTrue(v1.IsMergableWith(v0)) | 72 self.assertTrue(v1.IsMergableWith(v0)) |
71 | 73 |
72 vM = (list_of_string_values.ListOfStringValues. | 74 vM = (list_of_string_values.ListOfStringValues. |
73 MergeLikeValuesFromDifferentPages([v0, v1])) | 75 MergeLikeValuesFromDifferentPages([v0, v1])) |
74 self.assertEquals(None, vM.page) | 76 self.assertEquals(None, vM.page) |
75 self.assertEquals('x', vM.name) | 77 self.assertEquals('x', vM.name) |
76 self.assertEquals('label', vM.units) | 78 self.assertEquals('label', vM.units) |
77 self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy) | 79 self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy) |
78 self.assertEquals(True, vM.important) | 80 self.assertEquals(True, vM.important) |
79 self.assertEquals(['L1', 'L2', 'L3', 'L4'], vM.values) | 81 self.assertEquals(['L1', 'L2', 'L3', 'L4'], vM.values) |
80 | 82 |
| 83 def testListWithNoneValueMerging(self): |
| 84 page0 = self.pages[0] |
| 85 v0 = list_of_string_values.ListOfStringValues( |
| 86 page0, 'x', 'unit', |
| 87 ['L1', 'L2'], same_page_merge_policy=value.CONCATENATE) |
| 88 v1 = list_of_string_values.ListOfStringValues( |
| 89 page0, 'x', 'unit', |
| 90 None, same_page_merge_policy=value.CONCATENATE, none_value_reason='n') |
| 91 self.assertTrue(v1.IsMergableWith(v0)) |
| 92 |
| 93 vM = (list_of_string_values.ListOfStringValues. |
| 94 MergeLikeValuesFromSamePage([v0, v1])) |
| 95 self.assertEquals(None, vM.values) |
| 96 self.assertEquals(none_values.MERGE_FAILURE_REASON, vM.none_value_reason) |
| 97 |
| 98 def testListWithNoneValueMustHaveNoneReason(self): |
| 99 page0 = self.pages[0] |
| 100 self.assertRaises(none_values.NoneValueMissingReason, |
| 101 lambda: list_of_string_values.ListOfStringValues( |
| 102 page0, 'x', 'unit', None)) |
| 103 |
| 104 def testListWithNoneReasonMustHaveNoneValue(self): |
| 105 page0 = self.pages[0] |
| 106 self.assertRaises(none_values.ValueMustHaveNoneValue, |
| 107 lambda: list_of_string_values.ListOfStringValues( |
| 108 page0, 'x', 'unit', ['L1', 'L2'], |
| 109 none_value_reason='n')) |
| 110 |
81 def testAsDict(self): | 111 def testAsDict(self): |
82 v = list_of_string_values.ListOfStringValues( | 112 v = list_of_string_values.ListOfStringValues( |
83 None, 'x', 'unit', ['foo', 'bar'], | 113 None, 'x', 'unit', ['foo', 'bar'], |
84 same_page_merge_policy=value.PICK_FIRST, important=False) | 114 same_page_merge_policy=value.PICK_FIRST, important=False) |
85 d = v.AsDictWithoutBaseClassEntries() | 115 d = v.AsDictWithoutBaseClassEntries() |
86 | 116 |
87 self.assertEquals(d, { | 117 self.assertEquals(d, { |
88 'values': ['foo', 'bar'] | 118 'values': ['foo', 'bar'] |
89 }) | 119 }) |
90 | 120 |
| 121 def testNoneValueAsDict(self): |
| 122 v = list_of_string_values.ListOfStringValues( |
| 123 None, 'x', 'unit', None, same_page_merge_policy=value.PICK_FIRST, |
| 124 important=False, none_value_reason='n') |
| 125 d = v.AsDictWithoutBaseClassEntries() |
| 126 |
| 127 self.assertEquals(d, { |
| 128 'values': None, |
| 129 'none_value_reason': 'n' |
| 130 }) |
| 131 |
91 def testFromDict(self): | 132 def testFromDict(self): |
92 d = { | 133 d = { |
93 'type': 'list_of_string_values', | 134 'type': 'list_of_string_values', |
94 'name': 'x', | 135 'name': 'x', |
95 'units': 'unit', | 136 'units': 'unit', |
96 'values': ['foo', 'bar'] | 137 'values': ['foo', 'bar'] |
97 } | 138 } |
98 v = value.Value.FromDict(d, {}) | 139 v = value.Value.FromDict(d, {}) |
99 | 140 |
100 self.assertTrue(isinstance(v, list_of_string_values.ListOfStringValues)) | 141 self.assertTrue(isinstance(v, list_of_string_values.ListOfStringValues)) |
101 self.assertEquals(v.values, ['foo', 'bar']) | 142 self.assertEquals(v.values, ['foo', 'bar']) |
| 143 |
| 144 def testFromDictNoneValue(self): |
| 145 d = { |
| 146 'type': 'list_of_string_values', |
| 147 'name': 'x', |
| 148 'units': 'unit', |
| 149 'values': None, |
| 150 'none_value_reason': 'n' |
| 151 } |
| 152 v = value.Value.FromDict(d, {}) |
| 153 |
| 154 self.assertTrue(isinstance(v, list_of_string_values.ListOfStringValues)) |
| 155 self.assertEquals(v.values, None) |
| 156 self.assertEquals(v.none_value_reason, 'n') |
OLD | NEW |