# 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@chromium.org'
NAME = 'network_VPNConnect.openvpn_cert_verify'
PURPOSE = 'Verify shill correctly verifies an OpenVPN server'
SUITE = 'network_nightly'
CRITERIA = """
This test fails if the DUT cannot successfully verify the remote VPN
server using the "verify-hash" and "verify-x509-name" parameters.  It
also tests using the "extra-certs" parameter.  The server runs at the
other end of a virtual Ethernet interface.
"""
TIME = 'SHORT'
TEST_CATEGORY = 'Functional'
TEST_CLASS = 'network'
TEST_TYPE = 'client'

DOC = """
  Tests that we can complete OpenVPN authentication with a server where
  the client performs subject name and hash verification.  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.

"""

vpn_types = [ '%s_%s' % (NAME.split('.')[1], subtest)
              for subtest in ('', 'cn_only', 'incorrect_subject',
                              'incorrect_hash', 'incorrect_cn') ]
job.run_test('network_VPNConnect', vpn_types=vpn_types, tag=NAME.split('.')[1])
