# This work is licensed under the GNU GPLv2 or later. # See the COPYING file in the top-level directory. from . import lib ####################################### # UI tests for the preferences dialog # ####################################### def testPrefsAll(app): app.root.find("Edit", "menu").click() app.root.find("Preferences", "menu item").click() win = app.find_window("Preferences") generaltab = win.find("general-tab") pollingtab = win.find("polling-tab") newvmtab = win.find("newvm-tab") consoletab = win.find("console-tab") feedbacktab = win.find("feedback-tab") feedbacktab.check_not_onscreen() tab = generaltab tab.check_onscreen() tab.find_fuzzy("Enable system tray", "check").click() tab.find_fuzzy("Enable XML").click() tab.find_fuzzy("libguestfs VM").click() win.find("Polling", "page tab").click() tab = pollingtab tab.check_onscreen() tab.find("Poll CPU", "check box").click() tab.find("Poll Disk", "check box").click() tab.find("Poll Memory", "check box").click() tab.find("Poll Network", "check box").click() period = tab.find_fuzzy("cpu-poll", "spin button") period.click() period.set_text("5") win.find("New VM", "page tab").click() tab = newvmtab tab.check_onscreen() tab.combo_select("CPU default:", "host-passthrough") tab.combo_select("Storage format:", "Raw") tab.combo_select("Graphics type", "VNC") tab.combo_select("x86 Firmware", "UEFI") win.find("Console", "page tab").click() tab = consoletab tab.check_onscreen() tab.combo_select("SPICE USB", "Manual redirect") tab.combo_select("Resize guest", "On") tab.combo_select("Graphical console scaling", "Never") tab.find("Console autoconnect", "check box").click() tab.find("Change...", "push button").click() keyframe = app.find_window("Configure grab") # On certain environments pressing "Alt_L" and # clicking a window starts window drag operation. # Work around by pushing both Control and Alt. app.rawinput.holdKey("Control_L") app.rawinput.holdKey("Alt_L") app.rawinput.holdKey("Z") # Test releasekey handler app.rawinput.releaseKey("Z") app.rawinput.holdKey("Z") try: keyframe.find_fuzzy("OK", "push button").click() finally: app.rawinput.releaseKey("Z") app.rawinput.releaseKey("Alt_L") app.rawinput.releaseKey("Control_L") win.find("Feedback", "page tab").click() tab = feedbacktab tab.check_onscreen() tab.find("Force Poweroff", "check box").click() tab.find("Poweroff/Reboot", "check box").click() tab.find("Pause", "check box").click() tab.find("Device removal", "check box").click() tab.find("Unapplied changes", "check box").click() tab.find("Deleting storage", "check box").click() win.find("General", "page tab").click() win.find_fuzzy("Enable system tray", "check").click() win.find_fuzzy("Close", "push button").click() lib.utils.check(lambda: win.visible is False) def testPrefsXMLEditor(app): managerwin = app.topwin detailswin = app.manager_open_details("test-clone-simple") finish = detailswin.find("config-apply") xmleditor = detailswin.find("XML editor") detailswin.find("XML", "page tab").click() warnlabel = detailswin.find_fuzzy("XML editing is disabled") lib.utils.check(lambda: warnlabel.visible) origtext = xmleditor.text xmleditor.typeText("1234abcd") lib.utils.check(lambda: xmleditor.text == origtext) managerwin.grab_focus() managerwin.find("Edit", "menu").click() managerwin.find("Preferences", "menu item").click() prefswin = app.find_window("Preferences") prefswin.find_fuzzy("Enable XML").click() prefswin.find_fuzzy("Close", "push button").click() lib.utils.check(lambda: prefswin.visible is False) managerwin.window_close() detailswin.grab_focus() newtext = xmleditor.text.replace(">", ">FOOTITLE", 1) xmleditor.set_text(newtext) finish.click() detailswin.find("Details", "page tab").click() lib.utils.check(lambda: detailswin.find("Title:", "text").text == "FOOTITLE") def testPrefsKeyfile(app): """ Preload some keyfile settings and verify they work as expected """ app.open(use_uri=False, keyfile="defaultconn.ini") managerwin = app.topwin # test:///default should be connected managerwin.find("test default", "table cell") managerwin.find("foo - Not Connected", "table cell")