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.
4import os
5import unittest
6
7from telemetry import value
8from telemetry.page import page_set
9
10class TestBase(unittest.TestCase):
11  def setUp(self):
12    self.page_set =  page_set.PageSet(file_path=os.path.dirname(__file__))
13    self.page_set.AddPageWithDefaultRunNavigate("http://www.bar.com/")
14    self.page_set.AddPageWithDefaultRunNavigate("http://www.baz.com/")
15    self.page_set.AddPageWithDefaultRunNavigate("http://www.foo.com/")
16
17  @property
18  def pages(self):
19    return self.page_set.pages
20
21class ValueTest(TestBase):
22  def testCompat(self):
23    page0 = self.pages[0]
24    page1 = self.pages[0]
25
26    a = value.Value(page0, 'x', 'unit', important=False)
27    b = value.Value(page1, 'x', 'unit', important=False)
28    self.assertTrue(b.IsMergableWith(a))
29
30  def testIncompat(self):
31    page0 = self.pages[0]
32
33    a = value.Value(page0, 'x', 'unit', important=False)
34    b = value.Value(page0, 'x', 'incompatUnit', important=False)
35    self.assertFalse(b.IsMergableWith(a))
36
37    a = value.Value(page0, 'x', 'unit', important=False)
38    b = value.Value(page0, 'x', 'unit', important=True)
39    self.assertFalse(b.IsMergableWith(a))
40
41    a = value.Value(page0, 'x', 'unit', important=False)
42    b = value.ScalarValue(page0, 'x', 'unit', 3, important=True)
43    self.assertFalse(b.IsMergableWith(a))
44