blob: a2dacc1059e0da54d80efb77ffe3906c84b79d6e [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
import unittest
from telemetry import value
from telemetry.page import page_set
from telemetry.value import list_of_string_values
class TestBase(unittest.TestCase):
def setUp(self):
self.page_set = page_set.PageSet(file_path=os.path.dirname(__file__))
self.page_set.AddPageWithDefaultRunNavigate("http://www.bar.com/")
self.page_set.AddPageWithDefaultRunNavigate("http://www.baz.com/")
self.page_set.AddPageWithDefaultRunNavigate("http://www.foo.com/")
@property
def pages(self):
return self.page_set.pages
class ListOfStringValuesTest(TestBase):
def testListSamePageMergingWithSamePageConcatenatePolicy(self):
page0 = self.pages[0]
v0 = list_of_string_values.ListOfStringValues(
page0, 'x', 'label',
['L1','L2'], same_page_merge_policy=value.CONCATENATE)
v1 = list_of_string_values.ListOfStringValues(
page0, 'x', 'label',
['L3','L4'], same_page_merge_policy=value.CONCATENATE)
self.assertTrue(v1.IsMergableWith(v0))
vM = (list_of_string_values.ListOfStringValues.
MergeLikeValuesFromSamePage([v0, v1]))
self.assertEquals(page0, vM.page)
self.assertEquals('x', vM.name)
self.assertEquals('label', vM.units)
self.assertEquals(value.CONCATENATE, vM.same_page_merge_policy)
self.assertEquals(True, vM.important)
self.assertEquals(['L1', 'L2', 'L3', 'L4'], vM.values)
def testListSamePageMergingWithPickFirstPolicy(self):
page0 = self.pages[0]
v0 = list_of_string_values.ListOfStringValues(
page0, 'x', 'label',
['L1','L2'], same_page_merge_policy=value.PICK_FIRST)
v1 = list_of_string_values.ListOfStringValues(
page0, 'x', 'label',
['L3','L4'], same_page_merge_policy=value.PICK_FIRST)
self.assertTrue(v1.IsMergableWith(v0))
vM = (list_of_string_values.ListOfStringValues.
MergeLikeValuesFromSamePage([v0, v1]))
self.assertEquals(page0, vM.page)
self.assertEquals('x', vM.name)
self.assertEquals('label', vM.units)
self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy)
self.assertEquals(True, vM.important)
self.assertEquals(['L1', 'L2'], vM.values)
def testListDifferentPageMerging(self):
page0 = self.pages[0]
v0 = list_of_string_values.ListOfStringValues(
page0, 'x', 'label',
['L1', 'L2'], same_page_merge_policy=value.PICK_FIRST)
v1 = list_of_string_values.ListOfStringValues(
page0, 'x', 'label',
['L3', 'L4'], same_page_merge_policy=value.PICK_FIRST)
self.assertTrue(v1.IsMergableWith(v0))
vM = (list_of_string_values.ListOfStringValues.
MergeLikeValuesFromDifferentPages([v0, v1]))
self.assertEquals(None, vM.page)
self.assertEquals('x', vM.name)
self.assertEquals('label', vM.units)
self.assertEquals(value.PICK_FIRST, vM.same_page_merge_policy)
self.assertEquals(True, vM.important)
self.assertEquals(['L1', 'L2', 'L3', 'L4'], vM.values)