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
5import os
6import unittest
7
8from telemetry import value
9from telemetry.page import page_set
10from telemetry.value import skip
11
12
13class TestBase(unittest.TestCase):
14  def setUp(self):
15    self.page_set = page_set.PageSet(file_path=os.path.dirname(__file__))
16    self.page_set.AddPageWithDefaultRunNavigate("http://www.bar.com/")
17
18  @property
19  def pages(self):
20    return self.page_set.pages
21
22class ValueTest(TestBase):
23  def testBuildbotAndRepresentativeValue(self):
24    v = skip.SkipValue(self.pages[0], 'page skipped for testing reason')
25    self.assertIsNone(v.GetBuildbotValue())
26    self.assertIsNone(v.GetBuildbotDataType(
27        value.COMPUTED_PER_PAGE_SUMMARY_OUTPUT_CONTEXT))
28    self.assertIsNone(v.GetChartAndTraceNameForPerPageResult())
29    self.assertIsNone(v.GetRepresentativeNumber())
30    self.assertIsNone(v.GetRepresentativeString())
31
32  def testAsDict(self):
33    v = skip.SkipValue(self.pages[0], 'page skipped for testing reason')
34    d = v.AsDictWithoutBaseClassEntries()
35    self.assertEquals(d['reason'], 'page skipped for testing reason')
36
37  def testFromDict(self):
38    d = {
39      'type': 'skip',
40      'name': 'skip',
41      'units': '',
42      'reason': 'page skipped for testing reason'
43    }
44    v = value.Value.FromDict(d, {})
45    self.assertTrue(isinstance(v, skip.SkipValue))
46    self.assertEquals(v.reason, 'page skipped for testing reason')
47