Squish: Fix triggering "Recent ..." menu items

These items nowadays have a leading number and colon.

Change-Id: Ib274a7bc601cd06cf7b226f43b011c2b105cc12b
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
This commit is contained in:
Christian Stenger
2016-08-16 09:30:26 +02:00
parent bfd0827811
commit 5f5d23c389
2 changed files with 22 additions and 3 deletions
+21 -2
View File
@@ -198,11 +198,30 @@ def invokeMenuItem(menu, item, *subItems):
itemObject = waitForObjectItem(objectMap.realName(menuObject), item)
waitFor("itemObject.enabled", 2000)
activateItem(itemObject)
numberedPrefix = "&?\\d+: "
for subItem in subItems:
sub = itemObject.menu()
waitFor("sub.visible", 1000)
itemObject = waitForObjectItem(sub, subItem)
activateItem(itemObject)
# we might have numbered sub items (e.g. "Recent Files") - these have this special prefix
if subItem.startswith(numberedPrefix):
actions = sub.actions()
triggered = False
for i in range(actions.count()):
current = actions.at(i)
nonPrefix = subItem[len(numberedPrefix):]
matcher = re.match("(%s)(.*)" % numberedPrefix, str(current.text))
if matcher and matcher.group(2) == nonPrefix:
itemObject = current
activateItem(itemObject)
triggered = True
break
if not triggered:
test.fail("Could not trigger '%s' - item missing or code wrong?" % subItem,
"Function arguments: '%s', '%s', %s" % (menu, item, str(subItems)))
break # we failed to trigger - no need to process subItems further
else:
itemObject = waitForObjectItem(sub, subItem)
activateItem(itemObject)
def logApplicationOutput():
# make sure application output is shown