Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / value / list_of_scalar_values_unittest.py
index ead32b0..d7895a1 100644 (file)
@@ -7,6 +7,7 @@ import unittest
 from telemetry import value
 from telemetry.page import page_set
 from telemetry.value import list_of_scalar_values
+from telemetry.value import none_values
 
 
 class TestBase(unittest.TestCase):
@@ -61,12 +62,13 @@ class ValueTest(TestBase):
 
   def testListDifferentPageMerging(self):
     page0 = self.pages[0]
+    page1 = self.pages[1]
     v0 = list_of_scalar_values.ListOfScalarValues(
         page0, 'x', 'unit',
-        [1, 2], same_page_merge_policy=value.PICK_FIRST)
+        [1, 2], same_page_merge_policy=value.CONCATENATE)
     v1 = list_of_scalar_values.ListOfScalarValues(
-        page0, 'x', 'unit',
-        [3, 4], same_page_merge_policy=value.PICK_FIRST)
+        page1, 'x', 'unit',
+        [3, 4], same_page_merge_policy=value.CONCATENATE)
     self.assertTrue(v1.IsMergableWith(v0))
 
     vM = (list_of_scalar_values.ListOfScalarValues.
@@ -74,10 +76,39 @@ class ValueTest(TestBase):
     self.assertEquals(None, vM.page)
     self.assertEquals('x', vM.name)
     self.assertEquals('unit', vM.units)
-    self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy)
+    self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy)
     self.assertEquals(True, vM.important)
     self.assertEquals([1, 2, 3, 4], vM.values)
 
+  def testListWithNoneValueMerging(self):
+    page0 = self.pages[0]
+    v0 = list_of_scalar_values.ListOfScalarValues(
+        page0, 'x', 'unit',
+        [1, 2], same_page_merge_policy=value.CONCATENATE)
+    v1 = list_of_scalar_values.ListOfScalarValues(
+        page0, 'x', 'unit',
+        None, same_page_merge_policy=value.CONCATENATE, none_value_reason='n')
+    self.assertTrue(v1.IsMergableWith(v0))
+
+    vM = (list_of_scalar_values.ListOfScalarValues.
+          MergeLikeValuesFromSamePage([v0, v1]))
+    self.assertEquals(None, vM.values)
+    self.assertEquals(none_values.MERGE_FAILURE_REASON,
+                      vM.none_value_reason)
+
+  def testListWithNoneValueMustHaveNoneReason(self):
+    page0 = self.pages[0]
+    self.assertRaises(none_values.NoneValueMissingReason,
+                      lambda: list_of_scalar_values.ListOfScalarValues(
+                          page0, 'x', 'unit', None))
+
+  def testListWithNoneReasonMustHaveNoneValue(self):
+    page0 = self.pages[0]
+    self.assertRaises(none_values.ValueMustHaveNoneValue,
+                      lambda: list_of_scalar_values.ListOfScalarValues(
+                          page0, 'x', 'unit', [1, 2],
+                          none_value_reason='n'))
+
   def testAsDict(self):
     v = list_of_scalar_values.ListOfScalarValues(
         None, 'x', 'unit', [1, 2],
@@ -88,6 +119,17 @@ class ValueTest(TestBase):
           'values': [1, 2]
         })
 
+  def testNoneValueAsDict(self):
+    v = list_of_scalar_values.ListOfScalarValues(
+        None, 'x', 'unit', None, same_page_merge_policy=value.PICK_FIRST,
+        important=False, none_value_reason='n')
+    d = v.AsDictWithoutBaseClassEntries()
+
+    self.assertEquals(d, {
+          'values': None,
+          'none_value_reason': 'n'
+        })
+
   def testFromDictInts(self):
     d = {
       'type': 'list_of_scalar_values',
@@ -111,3 +153,17 @@ class ValueTest(TestBase):
 
     self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues))
     self.assertEquals(v.values, [1.3, 2.7])
+
+  def testFromDictNoneValue(self):
+    d = {
+      'type': 'list_of_scalar_values',
+      'name': 'x',
+      'units': 'unit',
+      'values': None,
+      'none_value_reason': 'n'
+    }
+    v = value.Value.FromDict(d, {})
+
+    self.assertTrue(isinstance(v, list_of_scalar_values.ListOfScalarValues))
+    self.assertEquals(v.values, None)
+    self.assertEquals(v.none_value_reason, 'n')