Add session object so that we have one class that control logged in session

Review URL: http://codereview.chromium.org/1363002
diff --git a/client/bin/site_ui_test.py b/client/bin/site_ui_test.py
new file mode 100644
index 0000000..a73bd46
--- /dev/null
+++ b/client/bin/site_ui_test.py
@@ -0,0 +1,41 @@
+# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+from autotest_lib.client.bin import site_login, test as bin_test
+from autotest_lib.client.common_lib import error
+  
+
+class UITest(bin_test.test):
+    """
+    Tests that require the user to be logged in should subclass this test
+    This script by default logs in using the default remote account, however,
+    tests can override this by setting script="your_script" in the control
+    file running the test
+    """
+    version = 1
+    
+    
+    def setup(self):
+        site_login.setup_autox(self)
+        
+          
+    def initialize(self, script='autox_script.json'):
+        # Clean up past state and assume logged out before logging in.              
+        if site_login.logged_in():
+            if not site_login.attempt_logout(timeout=10):
+                raise error.TestFail('Could not logout from previous session')
+            if not site_login.wait_for_browser():
+                raise error.TestFail("Login manager did not restart")
+
+        # Test account information embedded into json file.
+        if not site_login.attempt_login(self, script):
+            raise error.TestFail('Login failed at the beginning of new session')        
+
+          
+    """
+    Logs out when object is deleted
+    """  
+    def cleanup(self):
+        if not site_login.attempt_logout():
+            raise error.TestFail('Could not logout at end of session')
\ No newline at end of file