Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / core / system_info_unittest.py
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.
4 import unittest
5
6 from telemetry.core import gpu_device
7 from telemetry.core import gpu_info
8 from telemetry.core import system_info
9
10
11 class TestSystemInfo(unittest.TestCase):
12   def testConstruction(self):
13     data = {
14       'model_name': 'MacBookPro 10.1',
15       'gpu': {
16         'devices': [
17           { 'vendor_id': 1000, 'device_id': 2000,
18             'vendor_string': 'a', 'device_string': 'b' },
19         ]
20       }
21     }
22     info = system_info.SystemInfo.FromDict(data)
23     self.assertTrue(isinstance(info, system_info.SystemInfo))
24     self.assertTrue(isinstance(info.gpu, gpu_info.GPUInfo))
25     self.assertEquals(info.model_name, 'MacBookPro 10.1')
26     self.assertTrue(len(info.gpu.devices) == 1)
27     self.assertTrue(isinstance(info.gpu.devices[0], gpu_device.GPUDevice))
28     self.assertEquals(info.gpu.devices[0].vendor_id, 1000)
29     self.assertEquals(info.gpu.devices[0].device_id, 2000)
30     self.assertEquals(info.gpu.devices[0].vendor_string, 'a')
31     self.assertEquals(info.gpu.devices[0].device_string, 'b')
32
33   def testEmptyModelName(self):
34     data = {
35       'model_name': '',
36       'gpu': {
37         'devices': [
38           { 'vendor_id': 1000, 'device_id': 2000,
39             'vendor_string': 'a', 'device_string': 'b' },
40         ]
41       }
42     }
43     try:
44       info = system_info.SystemInfo.FromDict(data)
45       self.assertEquals(info.model_name, '')
46     except AssertionError:
47       raise
48     except:
49       self.fail('Should not raise exception for empty model_name string')
50
51   def testMissingAttrsFromDict(self):
52     data = {
53       'model_name': 'MacBookPro 10.1',
54       'devices': [{ 'vendor_id': 1000, 'device_id': 2000,
55                     'vendor_string': 'a', 'device_string': 'b' }]
56     }
57
58     for k in data:
59       data_copy = data.copy()
60       del data_copy[k]
61       try:
62         system_info.SystemInfo.FromDict(data_copy)
63         self.fail('Should raise exception if attribute "%s" is missing' % k)
64       except AssertionError:
65         raise
66       except:
67         pass