71 lines
2.9 KiB
Python
Executable file
71 lines
2.9 KiB
Python
Executable file
#!/usr/bin/python3
|
|
# Run this with --help to see available options for tracing and debugging
|
|
# See https://github.com/cockpit-project/cockpit/blob/main/test/common/testlib.py
|
|
# "class Browser" and "class MachineCase" for the available API.
|
|
|
|
import os
|
|
import sys
|
|
|
|
# import Cockpit's machinery for test VMs and its browser test API
|
|
TEST_DIR = os.path.dirname(__file__)
|
|
sys.path.append(os.path.join(TEST_DIR, "common"))
|
|
sys.path.append(os.path.join(os.path.dirname(TEST_DIR), "bots/machine"))
|
|
import testlib
|
|
|
|
# Nondestructive tests all run in the same running VM. This allows them to run in Packit, Fedora, and RHEL dist-git gating
|
|
# They must not permanently change any file or configuration on the system in a way that influences other tests.
|
|
@testlib.nondestructive
|
|
class TestApplication(testlib.MachineCase):
|
|
def testBasic(self):
|
|
b = self.browser
|
|
m = self.machine
|
|
|
|
self.login_and_go("/starter-kit")
|
|
# verify expected heading
|
|
b.wait_text(".pf-c-card__title", "Starter Kit")
|
|
|
|
# verify expected host name
|
|
hostname = m.execute("cat /etc/hostname").strip()
|
|
b.wait_in_text(".pf-c-alert__title", "Running on " + hostname)
|
|
|
|
# change current hostname
|
|
self.write_file("/etc/hostname", "new-" + hostname)
|
|
# verify new hostname name
|
|
b.wait_in_text(".pf-c-alert__title", "Running on new-" + hostname)
|
|
|
|
# change language to German
|
|
# the menu and dialog changed several times
|
|
b.switch_to_top()
|
|
cockpit_version = float(m.execute("cockpit-bridge --version | sed -n '/Version:/ s/^.*: //p'").strip())
|
|
if cockpit_version >= 258:
|
|
b.click("#toggle-menu")
|
|
b.click(".display-language-menu")
|
|
b.wait_popup('display-language-modal')
|
|
else:
|
|
b.click("#navbar-dropdown")
|
|
b.click(".display-language-menu a")
|
|
b.wait_popup('display-language')
|
|
if cockpit_version >= 242:
|
|
b.click("#display-language-modal [data-value='de-de'] button")
|
|
b.click("#display-language-modal button.pf-m-primary")
|
|
elif cockpit_version >= 233:
|
|
b.set_val("#display-language-modal select", "de-de")
|
|
b.click("#display-language-modal button.pf-m-primary")
|
|
else:
|
|
b.set_val("#display-language select", "de-de")
|
|
b.click("#display-language-select-button")
|
|
b.expect_load()
|
|
# HACK: work around language switching in Chrome not working in current session (Cockpit issue #8160)
|
|
b.reload(ignore_cache=True)
|
|
b.wait_visible("#content")
|
|
# menu label (from manifest) should be translated
|
|
b.wait_text("#host-apps a[href='/starter-kit']", "Bausatz")
|
|
|
|
b.go("/starter-kit")
|
|
b.enter_page("/starter-kit")
|
|
# page label (from js) should be translated
|
|
b.wait_in_text(".pf-c-alert__title", "Läuft auf")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
testlib.test_main()
|