xref: /openbmc/qemu/tests/avocado/vnc.py (revision cbb45ff0)
1# Simple functional tests for VNC functionality
2#
3# Copyright (c) 2018 Red Hat, Inc.
4#
5# Author:
6#  Cleber Rosa <crosa@redhat.com>
7#
8# This work is licensed under the terms of the GNU GPL, version 2 or
9# later.  See the COPYING file in the top-level directory.
10
11from avocado_qemu import QemuSystemTest
12
13
14class Vnc(QemuSystemTest):
15    """
16    :avocado: tags=vnc,quick
17    """
18    def test_no_vnc(self):
19        self.vm.add_args('-nodefaults', '-S')
20        self.vm.launch()
21        self.assertFalse(self.vm.qmp('query-vnc')['return']['enabled'])
22
23    def test_no_vnc_change_password(self):
24        self.vm.add_args('-nodefaults', '-S')
25        self.vm.launch()
26        self.assertFalse(self.vm.qmp('query-vnc')['return']['enabled'])
27        set_password_response = self.vm.qmp('change-vnc-password',
28                                            password='new_password')
29        self.assertIn('error', set_password_response)
30        self.assertEqual(set_password_response['error']['class'],
31                         'GenericError')
32        self.assertEqual(set_password_response['error']['desc'],
33                         'Could not set password')
34
35    def test_change_password_requires_a_password(self):
36        self.vm.add_args('-nodefaults', '-S', '-vnc', ':0')
37        self.vm.launch()
38        self.assertTrue(self.vm.qmp('query-vnc')['return']['enabled'])
39        set_password_response = self.vm.qmp('change-vnc-password',
40                                            password='new_password')
41        self.assertIn('error', set_password_response)
42        self.assertEqual(set_password_response['error']['class'],
43                         'GenericError')
44        self.assertEqual(set_password_response['error']['desc'],
45                         'Could not set password')
46
47    def test_change_password(self):
48        self.vm.add_args('-nodefaults', '-S', '-vnc', ':0,password=on')
49        self.vm.launch()
50        self.assertTrue(self.vm.qmp('query-vnc')['return']['enabled'])
51        set_password_response = self.vm.qmp('change-vnc-password',
52                                            password='new_password')
53        self.assertEqual(set_password_response['return'], {})
54