forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -23,18 +23,27 @@
|
|||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
def __getWelcomeScreenButtonHelper__(buttonLabel, widgetWithQFrames):
|
def __childrenOfType__(parentObject, typeName):
|
||||||
frames = [child for child in object.children(widgetWithQFrames) if className(child) == 'QWidget']
|
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:
|
for frame in frames:
|
||||||
label = getChildByClass(frame, 'QLabel')
|
childCount = 1 # incorrect but okay for framed sidebar buttons
|
||||||
if str(label.text) == buttonLabel:
|
if isUrlButton:
|
||||||
return frame, label
|
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
|
return None, None
|
||||||
|
|
||||||
def getWelcomeScreenSideBarButton(buttonLabel):
|
def getWelcomeScreenSideBarButton(buttonLabel, isUrlButton = False):
|
||||||
sideBar = waitForObject("{type='Welcome::Internal::SideBar' unnamed='1' "
|
sideBar = waitForObject("{type='Welcome::Internal::SideBar' unnamed='1' "
|
||||||
"window=':Qt Creator_Core::Internal::MainWindow'}")
|
"window=':Qt Creator_Core::Internal::MainWindow'}")
|
||||||
return __getWelcomeScreenButtonHelper__(buttonLabel, sideBar)
|
return __getWelcomeScreenButtonHelper__(buttonLabel, sideBar, isUrlButton)
|
||||||
|
|
||||||
def getWelcomeScreenMainButton(buttonLabel):
|
def getWelcomeScreenMainButton(buttonLabel):
|
||||||
stackedWidget = waitForObject("{type='QStackedWidget' name='WelcomeScreenStackedWidget' "
|
stackedWidget = waitForObject("{type='QStackedWidget' name='WelcomeScreenStackedWidget' "
|
||||||
@@ -52,7 +61,7 @@ def getWelcomeTreeView(treeViewLabel):
|
|||||||
|
|
||||||
def findExampleOrTutorial(tableView, regex, verbose=False):
|
def findExampleOrTutorial(tableView, regex, verbose=False):
|
||||||
model = tableView.model()
|
model = tableView.model()
|
||||||
children = [ch for ch in object.children(tableView) if className(ch) == 'QModelIndex']
|
children = __childrenOfType__(tableView, 'QModelIndex')
|
||||||
for child in children:
|
for child in children:
|
||||||
if re.match(regex, str(child.text)):
|
if re.match(regex, str(child.text)):
|
||||||
if verbose:
|
if verbose:
|
||||||
|
@@ -109,11 +109,10 @@ def main():
|
|||||||
'User Guide':'qthelp://org.qt-project.qtcreator/doc/index.html'
|
'User Guide':'qthelp://org.qt-project.qtcreator/doc/index.html'
|
||||||
}
|
}
|
||||||
for text, url in textUrls.items():
|
for text, url in textUrls.items():
|
||||||
test.verify(checkIfObjectExists("{type='QLabel' text='%s' unnamed='1' visible='1' "
|
button, label = getWelcomeScreenSideBarButton(text, True)
|
||||||
"window=':Qt Creator_Core::Internal::MainWindow'}"
|
if test.verify(all((button, label)),
|
||||||
% text),
|
"Verifying whether link button (%s) exists." % text):
|
||||||
"Verifying whether link button (%s) exists." % text)
|
test.compare(str(button.toolTip), url, "Verifying URL for %s" % text)
|
||||||
# TODO find way to verify URLs (or tweak source code of Welcome page to become able)
|
|
||||||
wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(getStarted)
|
wsButtonFrame, wsButtonLabel = getWelcomeScreenSideBarButton(getStarted)
|
||||||
if wsButtonLabel is not None:
|
if wsButtonLabel is not None:
|
||||||
mouseClick(wsButtonLabel)
|
mouseClick(wsButtonLabel)
|
||||||
|
Reference in New Issue
Block a user