# Copyright 2017 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.

AUTHOR = "achuith@chromium.org"
NAME = "telemetry_UnitTestsServer"
PURPOSE = "Run the Telemetry unit tests as a logged-in user."
ATTRIBUTES = "suite:telemetry_unit_server"
TIME = "LONG"
TEST_CATEGORY = "Functional"
TEST_CLASS = "desktopui"
TEST_TYPE = "server"

DOC = """
Verifies that all Telemetry unit tests pass when run as a logged-in user.
"""

def run_client(machine):
    host = hosts.create_host(machine)
    host.log_kernel()
    job.run_test('telemetry_UnitTestsServer',  host=host,
                 use_packaging=use_packaging,
                 copy_boto_file=True,
                 browser_type='system', tag='user', unit_tests=[''],
                 perf_tests=[])


job.parallel_simple(run_client, machines)
