2016-10-25 19:12:40 +00:00
|
|
|
import os
|
|
|
|
from unittest import TestCase
|
|
|
|
from lutris.util.wineregistry import WineRegistry
|
|
|
|
|
|
|
|
FIXTURES_PATH = os.path.join(os.path.dirname(__file__), 'fixtures')
|
|
|
|
|
|
|
|
|
|
|
|
class TestWineRegistry(TestCase):
|
|
|
|
def setUp(self):
|
2016-10-25 21:38:29 +00:00
|
|
|
self.registry_path = os.path.join(FIXTURES_PATH, 'user.reg')
|
|
|
|
self.registry = WineRegistry(self.registry_path)
|
2016-10-25 19:12:40 +00:00
|
|
|
|
|
|
|
def test_can_load_registry(self):
|
|
|
|
self.assertTrue(len(self.registry.keys) > 10)
|
2016-10-25 21:13:36 +00:00
|
|
|
self.assertEqual(self.registry.version, 2)
|
|
|
|
self.assertEqual(self.registry.arch, 'win64')
|
2016-10-25 19:12:40 +00:00
|
|
|
|
|
|
|
def test_can_query_registry(self):
|
|
|
|
value = self.registry.query('Control Panel/Keyboard', 'KeyboardSpeed')
|
|
|
|
self.assertEqual(value, '31')
|
|
|
|
|
|
|
|
def test_can_get_timestamp_as_int(self):
|
2016-10-25 21:18:03 +00:00
|
|
|
key = self.registry.keys.get('Control Panel/Keyboard')
|
2016-10-25 19:12:40 +00:00
|
|
|
self.assertEqual(key.timestamp, 1477412318)
|
2016-10-25 19:38:01 +00:00
|
|
|
|
|
|
|
def test_can_get_timestamp_as_float(self):
|
2016-10-25 21:18:03 +00:00
|
|
|
key = self.registry.keys.get('Control Panel/Sound')
|
2016-10-25 19:38:01 +00:00
|
|
|
self.assertEqual(key.timestamp, 1475423303.7943190)
|
2016-10-25 19:54:47 +00:00
|
|
|
|
|
|
|
def test_can_get_meta(self):
|
2016-10-25 21:18:03 +00:00
|
|
|
key = self.registry.keys.get('Control Panel/Sound')
|
2016-10-25 19:54:47 +00:00
|
|
|
self.assertEqual(key.get_meta('time'), '1d21cc468677196')
|
2016-10-25 20:00:53 +00:00
|
|
|
|
|
|
|
def test_can_get_string_value(self):
|
2016-10-25 21:18:03 +00:00
|
|
|
key = self.registry.keys.get('Control Panel/Desktop')
|
2016-10-25 20:52:45 +00:00
|
|
|
self.assertEqual(key.get_subkey('DragFullWindows'), '0')
|
2016-10-25 20:00:53 +00:00
|
|
|
|
|
|
|
def test_can_get_dword_value(self):
|
2016-10-25 21:18:03 +00:00
|
|
|
key = self.registry.keys.get('Control Panel/Desktop')
|
2016-10-25 20:52:45 +00:00
|
|
|
self.assertEqual(key.get_subkey('CaretWidth'), 1)
|
2016-10-25 20:46:53 +00:00
|
|
|
|
|
|
|
def test_can_render_key(self):
|
|
|
|
expected = (
|
|
|
|
'[Software\\\\Wine\\\\Fonts] 1477412318\n'
|
|
|
|
'#time=1d22edb71813e3c\n'
|
|
|
|
'"Codepages"="1252,437"\n'
|
|
|
|
'"LogPixels"=dword:00000000\n'
|
|
|
|
)
|
2016-10-25 21:18:03 +00:00
|
|
|
key = self.registry.keys.get('Software/Wine/Fonts')
|
2016-10-25 20:46:53 +00:00
|
|
|
self.assertEqual(key.render(), expected)
|
2016-10-25 21:38:29 +00:00
|
|
|
|
|
|
|
def test_render_user_reg(self):
|
|
|
|
content = self.registry.render()
|
|
|
|
with open(self.registry_path, 'r') as registry_file:
|
|
|
|
original_content = registry_file.read()
|
|
|
|
self.assertEqual(content, original_content)
|
|
|
|
|
|
|
|
def test_can_render_system_reg(self):
|
|
|
|
registry_path = os.path.join(FIXTURES_PATH, 'system.reg')
|
|
|
|
with open(registry_path, 'r') as registry_file:
|
|
|
|
original_content = registry_file.read()
|
|
|
|
system_reg = WineRegistry(registry_path)
|
|
|
|
content = system_reg.render()
|
|
|
|
self.assertEqual(content, original_content)
|