# Copyright (c) 2013 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. import os from autotest_lib.client.bin import test, utils from autotest_lib.client.common_lib import error from autotest_lib.client.common_lib.cros import chrome class desktopui_CameraApp(test.test): """Tests if the Camera App works correctly.""" version = 1 preserve_srcdir = True def setup(self): """Fetches and builds the ToT Camera App.""" os.chdir(self.srcdir) utils.make('clean') utils.make('all') def run_once(self): """Runs the integration test.""" # Create the browser instance. camera_path = os.path.join(os.path.dirname(__file__), 'src/camera/build/camera') browser = chrome.Chrome(extension_paths=[camera_path]) # Start the Camera app. extension = browser.get_extension(camera_path) extension.ExecuteJavaScript('camera.bg.createForTesting();') # Wait until the Camera app acquires the stream. js_is_capturing = ( 'camera.bg.appWindow && ' 'camera.bg.appWindow.contentWindow.camera && ' 'camera.bg.appWindow.contentWindow.camera.Camera && ' 'camera.bg.appWindow.contentWindow.camera.Camera.getInstance().' 'cameraView.capturing') # Verify if the camera initializes correctly in up to 30 seconds. utils.poll_for_condition( condition=lambda: extension.EvaluateJavaScript(js_is_capturing), exception=error.TestError('Camera initialization timed out.'), sleep_interval=1, timeout=30)