Home | History | Annotate | Download | only in platform_CryptohomeMount
      1 # Copyright (c) 2012 The Chromium OS 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 
      5 from autotest_lib.client.bin import test
      6 from autotest_lib.client.common_lib import error
      7 from autotest_lib.client.cros import cryptohome
      8 
      9 class platform_CryptohomeMount(test.test):
     10     """Validates basic cryptohome creation and mounting."""
     11     version = 1
     12 
     13 
     14     def run_once(self):
     15         test_user = 'this_is_a_local_test_account (at] chromium.org';
     16         test_password = 'this_is_a_test_password';
     17         # Get the hash for the test user account
     18         user_hash = cryptohome.get_user_hash(test_user)
     19         proxy = cryptohome.CryptohomeProxy()
     20 
     21         # Remove the test user account
     22         proxy.remove(test_user)
     23 
     24         # Mount the test user account
     25         if not proxy.mount(test_user, test_password, create=True):
     26           raise error.TestFail('Failed to create and mount the test user')
     27 
     28         # Unmount the directory
     29         if not proxy.unmount(test_user):
     30           raise error.TestFail('Failed to unmount test user')
     31 
     32         # Ensure that the user directory is not mounted
     33         if proxy.is_mounted(test_user):
     34           raise error.TestFail('Cryptohome mounted after unmount!')
     35 
     36         # Make sure that an incorrect password fails
     37         incorrect_password = 'this_is_an_incorrect_password'
     38         if proxy.mount(test_user, incorrect_password):
     39           raise error.TestFail('Cryptohome mounted with a bad password.')
     40         # Ensure that the user directory is not mounted
     41         if proxy.is_mounted(test_user):
     42           raise error.TestFail('Cryptohome mounted even though mount() failed')
     43 
     44         # Remove the test user account
     45         if not proxy.remove(test_user):
     46           raise error.TestFail('Cryptohome could not clean up vault')
     47