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

AUTHOR = 'pstew, wiley, quiche'
NAME = 'network_VPNConnect.openvpn_user_pass'
ATTRIBUTES = "suite:bvt-perbuild, suite:network_nightly"
TIME = 'SHORT'
TEST_TYPE = 'client'

DOC = """
  Tests that we can complete OpenVPN authentication with a server that
  performs username/password authentication.  This is a client-only test
  which verifies function of the OpenVPN client.  Since the server it is
  testing against is itself, this test is best suited for verifying that
  the connection manager is correctly passing parameters to the underlying
  VPN client to have it properly connect.

  This test fails if the DUT cannot authenticate to a locally running
  OpenVPN server runing at the other end of a virtual Ethernet interface.
  This server performs username / password authentication.

"""

job.run_test('network_VPNConnect',
             vpn_types=[ 'openvpn_user_pass' ],
             tag=NAME.split('.')[1])
