diff options
author | Christian Stenger <christian.stenger@qt.io> | 2017-10-17 08:54:55 +0200 |
---|---|---|
committer | Christian Stenger <christian.stenger@qt.io> | 2017-12-05 11:08:09 +0000 |
commit | 2c93654e58b8c9c125e9ab08176acd8cd9009dd8 (patch) | |
tree | 789c5ecfc464a5bd73df33beedfa419831360c5a | |
parent | 2559ad48a8409f797b0a6a0617b7dd1b5f7caeb2 (diff) |
Squish: Improve testing of Welcome page
Verification of URLs used for "link labels" on the Welcome page
is now possible again.
Change-Id: Id48ab40201a9c2a60dc3c991052f45bee93707bc
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
-rw-r--r-- | tests/system/shared/welcome.py | 25 | ||||
-rwxr-xr-x | tests/system/suite_WELP/tst_WELP01/test.py | 9 |
2 files changed, 21 insertions, 13 deletions
diff --git a/tests/system/shared/welcome.py b/tests/system/shared/welcome.py index 0d6d446f6b..73ee0a486e 100644 --- a/tests/system/shared/welcome.py +++ b/tests/system/shared/welcome.py @@ -23,18 +23,27 @@ # ############################################################################ -def __getWelcomeScreenButtonHelper__(buttonLabel, widgetWithQFrames): - frames = [child for child in object.children(widgetWithQFrames) if className(child) == 'QWidget'] +def __childrenOfType__(parentObject, typeName): + return [child for child in object.children(parentObject) if className(child) == typeName] + +def __getWelcomeScreenButtonHelper__(buttonLabel, widgetWithQFrames, isUrlButton = False): + frames = __childrenOfType__(widgetWithQFrames, 'QWidget') for frame in frames: - label = getChildByClass(frame, 'QLabel') - if str(label.text) == buttonLabel: - return frame, label + childCount = 1 # incorrect but okay for framed sidebar buttons + if isUrlButton: + childCount = len(__childrenOfType__(frame, 'QLabel')) + for occurrence in range(1, childCount + 1): + label = getChildByClass(frame, 'QLabel', occurrence) + if label is None: + continue + if str(label.text) == buttonLabel: + return frame, label return None, None -def getWelcomeScreenSideBarButton(buttonLabel): +def getWelcomeScreenSideBarButton(buttonLabel, isUrlButton = False): sideBar = waitForObject("{type='Welcome::Internal::SideBar' unnamed='1' " "window=':Qt Creator_Core::Internal::MainWindow'}") - return __getWelcomeScreenButtonHelper__(buttonLabel, sideBar) + return __getWelcomeScreenButtonHelper__(buttonLabel, sideBar, isUrlButton) def getWelcomeScreenMainButton(buttonLabel): stackedWidget = waitForObject("{type='QStackedWidget' name='WelcomeScreenStackedWidget' " @@ -52,7 +61,7 @@ def getWelcomeTreeView(treeViewLabel): def findExampleOrTutorial(tableView, regex, verbose=False): model = tableView.model() - children = [ch for ch in object.children(tableView) if className(ch) == 'QModelIndex'] + children = __childrenOfType__(tableView, 'QModelIndex') for child in children: if re.match(regex, str(child.text)): if verbose: diff --git a/tests/system/suite_WELP/tst_WELP01/test.py b/tests/system/suite_WELP/tst_WELP01/test.py index f13a29bcce..0db5329cb7 100755 --- a/tests/system/suite_WELP/tst_WELP01/test.py +++ b/tests/system/suite_WELP/tst_WELP01/test.py @@ -109,11 +109,10 @@ def main(): 'User Guide':'qthelp://org.qt-project.qtcreator/doc/index.html' } for text, url in textUrls.items(): - test.verify(checkIfObjectExists("{type='QLabel' text='%s' unnamed='1' visible='1' " - "window=':Qt Creator_Core::Internal::MainWindow'}" - % text), - "Verifying whether link button (%s) exists." % text) - # TODO find way to verify URLs (or tweak source code of Welcome page to become able) + button, label = getWelcomeScreenSideBarButton(text, True) + if test.verify(all((button, label)), + "Verifying whether link button (%s) exists." % text): + test.compare(str(button.toolTip), url, "Verifying URL for %s" % text) wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(getStarted) if wsButtonLabel is not None: mouseClick(wsButtonLabel) |