diff --git a/tests/system/shared/editor_utils.py b/tests/system/shared/editor_utils.py index 76bc7eff6927561e6cf439551cb96457c96e6983..cf7ff7a08b3dbbfa098f8030301950f4ed7abe35 100644 --- a/tests/system/shared/editor_utils.py +++ b/tests/system/shared/editor_utils.py @@ -6,28 +6,36 @@ import re; # line can be a regex - but if so, remember to set isRegex to True # the function returns True if this went fine, False on error def placeCursorToLine(editor, line, isRegex=False): - cursor = editor.textCursor() + def getEditor(): + return waitForObject(editor) + + isDarwin = platform.system() == 'Darwin' + if not isinstance(editor, (str, unicode)): + editor = objectMap.realName(editor) oldPosition = 0 - cursor.setPosition(oldPosition) - editor.setTextCursor(cursor) + if isDarwin: + type(getEditor(), "<Home>") + else: + type(getEditor(), "<Ctrl+Home>") found = False if isRegex: regex = re.compile(line) while not found: - currentLine = str(lineUnderCursor(editor)).strip() + currentLine = str(lineUnderCursor(getEditor())).strip() found = isRegex and regex.match(currentLine) or not isRegex and currentLine == line if not found: - type(editor, "<Down>") - newPosition = editor.textCursor().position() + type(getEditor(), "<Down>") + newPosition = getEditor().textCursor().position() if oldPosition == newPosition: break oldPosition = newPosition if not found: test.fatal("Couldn't find line matching\n\n%s\n\nLeaving test..." % line) return False - cursor = editor.textCursor() - cursor.movePosition(QTextCursor.EndOfLine, QTextCursor.MoveAnchor) - editor.setTextCursor(cursor) + if isDarwin: + type(getEditor(), "<Ctrl+Right>") + else: + type(getEditor(), "<End>") return True # this function returns True if a QMenu is