| Index: client/site_tests/login_OwnershipApi/login_OwnershipApi.py | 
| diff --git a/client/site_tests/login_OwnershipApi/login_OwnershipApi.py b/client/site_tests/login_OwnershipApi/login_OwnershipApi.py | 
| index 044fb9020f0b8daaf6c91ded17d5cb2605100d41..efe80f0b76697aa2512824ffb208d11c24b1b9b4 100644 | 
| --- a/client/site_tests/login_OwnershipApi/login_OwnershipApi.py | 
| +++ b/client/site_tests/login_OwnershipApi/login_OwnershipApi.py | 
| @@ -7,21 +7,20 @@ import dbus.glib | 
| import gobject | 
| import logging | 
| import os | 
| -import sys | 
| import tempfile | 
|  | 
| from autotest_lib.client.bin import test, utils | 
| from autotest_lib.client.common_lib import autotemp, error | 
| from autotest_lib.client.cros import constants, cros_ui, cryptohome, login | 
| -from autotest_lib.client.cros import ownership | 
| +from autotest_lib.client.cros import cros_ownership_test, ownership | 
|  | 
|  | 
| -class login_OwnershipApi(test.test): | 
| +class login_OwnershipApi(cros_ownership_test.OwnershipTest): | 
| version = 1 | 
|  | 
| _testuser = 'cryptohometest@chromium.org' | 
| _testpass = 'testme' | 
| -    _poldata = 'hooberbloob' | 
| +    _poldata = 'policydata' | 
|  | 
| _tempdir = None | 
|  | 
| @@ -30,17 +29,8 @@ class login_OwnershipApi(test.test): | 
| utils.make('OUT_DIR=.') | 
|  | 
|  | 
| -    def __unlink(self, filename): | 
| -        try: | 
| -            os.unlink(filename) | 
| -        except (IOError, OSError) as error: | 
| -            logging.info(error) | 
| - | 
| def initialize(self): | 
| -        self.__unlink(constants.OWNER_KEY_FILE) | 
| -        self.__unlink(constants.SIGNED_PREFERENCES_FILE) | 
| -        self.__unlink(constants.SIGNED_POLICY_FILE) | 
| -        login.refresh_login_screen() | 
| +        super(login_OwnershipApi, self).initialize() | 
| cryptohome.remove_vault(self._testuser) | 
| cryptohome.mount_vault(self._testuser, self._testpass, create=True) | 
| self._tempdir = autotemp.tempdir(unique_id=self.__class__.__name__) | 
| @@ -50,7 +40,6 @@ class login_OwnershipApi(test.test): | 
| constants.KEYGEN, | 
| tmpname)) | 
| os.unlink(tmpname) | 
| -        super(login_OwnershipApi, self).initialize() | 
|  | 
|  | 
| def __generate_temp_filename(self): | 
| @@ -60,47 +49,18 @@ class login_OwnershipApi(test.test): | 
| return basename | 
|  | 
|  | 
| -    def __log_and_stop(self, ret_code): | 
| -        logging.info("exited %s" % ret_code) | 
| -        self._loop.quit() | 
| - | 
| - | 
| -    def __log_err_and_stop(self, e): | 
| -        logging.debug(e) | 
| -        self._loop.quit() | 
| - | 
| - | 
| def run_once(self): | 
| -        keyfile = ownership.generate_and_register_owner_keypair(self._testuser, | 
| -                                                                self._testpass) | 
| -        # Pull in protobuf definitions. | 
| -        sys.path.append(self.srcdir) | 
| -        from device_management_backend_pb2 import PolicyFetchResponse | 
| - | 
| -        # open DBus connection to session_manager | 
| -        bus = dbus.SystemBus() | 
| -        proxy = bus.get_object('org.chromium.SessionManager', | 
| -                               '/org/chromium/SessionManager') | 
| -        sm = dbus.Interface(proxy, 'org.chromium.SessionManagerInterface') | 
| - | 
| -        policy_proto = PolicyFetchResponse() | 
| -        policy_proto.policy_data = self._poldata | 
| -        policy_proto.policy_data_signature = ownership.sign(keyfile, | 
| -                                                            self._poldata) | 
| -        sm.StorePolicy(dbus.ByteArray(policy_proto.SerializeToString()), | 
| -                       byte_arrays=True, | 
| -                       reply_handler=self.__log_and_stop, | 
| -                       error_handler=self.__log_err_and_stop) | 
| - | 
| -        self._loop = gobject.MainLoop() | 
| -        self._loop.run() | 
| - | 
| -        retrieved_policy = sm.RetrievePolicy(byte_arrays=True) | 
| -        if retrieved_policy != policy_proto.SerializeToString(): | 
| -            raise error.TestFail('Policy should not be %s' % retrieved_policy) | 
| +        (pkey, pubkey) = ownership.generate_and_register_keypair(self._testuser, | 
| +                                                                 self._testpass) | 
| +        sm = self.connect_to_session_manager() | 
| +        if not sm.StartSession(self._testuser, ''): | 
| +            raise error.TestFail('Could not start session for owner') | 
| +        self.push_policy(self.generate_policy(pkey, pubkey, self._poldata), sm) | 
| +        if not sm.StopSession(''): | 
| +            raise error.TestFail('Could not stop session for owner') | 
|  | 
|  | 
| def cleanup(self): | 
| cryptohome.unmount_vault() | 
| -        self._tempdir.clean() | 
| +        if self._tempdir: self._tempdir.clean() | 
| super(login_OwnershipApi, self).cleanup() | 
|  |