Index: chrome/test/mini_installer/registry_verifier.py |
diff --git a/chrome/test/mini_installer/registry_verifier.py b/chrome/test/mini_installer/registry_verifier.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ceac20dd00868c8e28afe90d00c88b763a9790b2 |
--- /dev/null |
+++ b/chrome/test/mini_installer/registry_verifier.py |
@@ -0,0 +1,64 @@ |
+# Copyright 2013 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 _winreg |
+ |
+import settings |
+ |
+ |
+def VerifyRegistryEntries(entries): |
+ """Verifies that the current registry matches the specified criteria.""" |
+ for key, entry in entries.iteritems(): |
+ # TODO(sukolsak): Use unittest framework instead of prints. |
+ if VerifyRegistryEntry(key, entry): |
+ print 'Passed' |
+ else: |
+ print 'Failed' |
+ |
+ |
+def RootKeyConstant(key): |
+ if key == 'HKEY_CLASSES_ROOT': |
+ return _winreg.HKEY_CLASSES_ROOT |
+ if key == 'HKEY_CURRENT_USER': |
+ return _winreg.HKEY_CURRENT_USER |
+ if key == 'HKEY_LOCAL_MACHINE': |
+ return _winreg.HKEY_LOCAL_MACHINE |
+ if key == 'HKEY_USERS': |
+ return _winreg.HKEY_USERS |
+ # TODO(sukolsak): Use unittest framework instead of exceptions. |
+ raise Exception('Unknown registry key') |
+ |
+ |
+def VerifyRegistryEntry(key, entry): |
+ """Verifies that a registry entry exists or doesn't exist and has |
+ the specified value. |
+ |
+ Args: |
+ key: Name of the registry key. |
+ entry: A dictionary with the following keys and values: |
+ 'expected' a boolean indicating whether the registry entry exists. |
+ 'value' (optional) a string representing the value of the registry entry. |
+ |
+ Returns: |
+ A boolean indicating whether the registry entry matches the criteria. |
+ """ |
+ expected = entry['expected'] |
+ # TODO(sukolsak): Debug prints to be removed later. |
+ print settings.PRINT_VERIFIER_PREFIX + key, |
+ if expected: |
+ print 'exists...', |
+ else: |
+ print "doesn't exist...", |
+ root_key, sub_key = key.split('\\', 1) |
+ try: |
+ reg_key = _winreg.OpenKey(RootKeyConstant(root_key), |
+ sub_key, 0, _winreg.KEY_READ) |
+ except WindowsError: |
+ return not expected |
+ if not expected: |
+ return False |
+ if 'value' in entry: |
+ # TODO(sukolsak): implement value |
+ pass |
+ return True |