forked from qt-creator/qt-creator
Squish: Let ensureChecked() handle tristate checkboxes
Change-Id: Iecb18400512ec6525757b442cf3b984d22302009 Reviewed-by: Christian Stenger <christian.stenger@digia.com>
This commit is contained in:
@@ -52,19 +52,28 @@ def verifyChecked(objectName):
|
|||||||
return object
|
return object
|
||||||
|
|
||||||
def ensureChecked(objectName, shouldBeChecked = True, timeout=20000):
|
def ensureChecked(objectName, shouldBeChecked = True, timeout=20000):
|
||||||
object = waitForObject(objectName, timeout)
|
|
||||||
# synchronize to avoid false positives
|
|
||||||
waitFor('object.checked == shouldBeChecked', 1000)
|
|
||||||
if object.checked ^ shouldBeChecked:
|
|
||||||
clickButton(object)
|
|
||||||
if shouldBeChecked:
|
if shouldBeChecked:
|
||||||
|
targetState = Qt.Checked
|
||||||
state = "checked"
|
state = "checked"
|
||||||
else:
|
else:
|
||||||
|
targetState = Qt.Unchecked
|
||||||
state = "unchecked"
|
state = "unchecked"
|
||||||
|
widget = waitForObject(objectName, timeout)
|
||||||
|
try:
|
||||||
|
# needed for transition Qt::PartiallyChecked -> Qt::Checked -> Qt::Unchecked
|
||||||
|
clicked = 0
|
||||||
|
while not waitFor('widget.checkState() == targetState', 1000) and clicked < 2:
|
||||||
|
clickButton(widget)
|
||||||
|
clicked += 1
|
||||||
|
test.verify(waitFor("widget.checkState() == targetState", 1000))
|
||||||
|
except:
|
||||||
|
# widgets not derived from QCheckbox don't have checkState()
|
||||||
|
if not waitFor('widget.checked == shouldBeChecked', 1000):
|
||||||
|
clickButton(widget)
|
||||||
|
test.verify(waitFor("widget.checked == shouldBeChecked", 1000))
|
||||||
test.log("New state for QCheckBox: %s" % state,
|
test.log("New state for QCheckBox: %s" % state,
|
||||||
str(objectName))
|
str(objectName))
|
||||||
test.verify(waitFor("object.checked == shouldBeChecked", 1000))
|
return widget
|
||||||
return object
|
|
||||||
|
|
||||||
# verify that an object is in an expected enable state. Returns the object.
|
# verify that an object is in an expected enable state. Returns the object.
|
||||||
# param objectSpec specifies the object to check. It can either be a string determining an object
|
# param objectSpec specifies the object to check. It can either be a string determining an object
|
||||||
|
Reference in New Issue
Block a user