diff options
author | Paul Wicking <paulwicking@gmail.com> | 2020-06-05 14:36:01 +0200 |
---|---|---|
committer | Paul Wicking <paulwicking@gmail.com> | 2020-06-05 14:36:01 +0200 |
commit | d112da7427513d497756add95e3ae6300f9ee66b (patch) | |
tree | 2855a81a82f24c66cd8f844258290791d5e51597 /tests/auto/controls/data/tst_stackview.qml | |
parent | c6f91c7457c260c3fc453f6d60c6fcb5ca4d49d0 (diff) | |
parent | 9dc5996de04420710cda81f91c1b4ff34ee064f2 (diff) |
Merge 5.12 into 5.12.9v5.12.9
Change-Id: I378438b043896fb76ce4007da7442f5322a63a06
Diffstat (limited to 'tests/auto/controls/data/tst_stackview.qml')
-rw-r--r-- | tests/auto/controls/data/tst_stackview.qml | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/tests/auto/controls/data/tst_stackview.qml b/tests/auto/controls/data/tst_stackview.qml index c6515f77..d2211034 100644 --- a/tests/auto/controls/data/tst_stackview.qml +++ b/tests/auto/controls/data/tst_stackview.qml @@ -804,7 +804,10 @@ TestCase { var item = control.push(component, StackView.Immediate) verify(item) - item.StackView.onRemoved.connect(function() { control.push(component, StackView.Immediate) } ) + item.StackView.onRemoved.connect(function() { + ignoreWarning(/.*QML StackView: cannot push while already in the process of completing a pop/) + control.push(component, StackView.Immediate) + }) // don't crash (QTBUG-62153) control.pop(StackView.Immediate) @@ -1287,7 +1290,7 @@ TestCase { control.push(container.clearUponDestructionComponent, StackView.Immediate) // Shouldn't crash. - ignoreWarning(new RegExp(".*cannot clear while already in the process of removing elements")) + ignoreWarning(/.*cannot clear while already in the process of completing a clear/) control.clear(StackView.Immediate) } @@ -1301,7 +1304,7 @@ TestCase { // Pop all items except the first, removing the second item we pushed in the process. // Shouldn't crash. - ignoreWarning(new RegExp(".*cannot clear while already in the process of removing elements")) + ignoreWarning(/.*cannot clear while already in the process of completing a pop/) control.pop(null, StackView.Immediate) } @@ -1316,7 +1319,7 @@ TestCase { control.push(container.clearUponDestructionComponent, StackView.Immediate) // Pop the top item, then pop down to the first item in response. - ignoreWarning(new RegExp(".*cannot pop while already in the process of removing elements")) + ignoreWarning(/.*cannot pop while already in the process of completing a pop/) control.pop(StackView.Immediate) } @@ -1329,7 +1332,7 @@ TestCase { control.push(container.clearUponDestructionComponent, StackView.Immediate) // Replace the top item, then clear in response. - ignoreWarning(new RegExp(".*cannot clear while already in the process of removing elements")) + ignoreWarning(/.*cannot clear while already in the process of completing a replace/) control.replace(component, StackView.Immediate) } @@ -1342,7 +1345,30 @@ TestCase { control.push(container.clearUponDestructionComponent, StackView.Immediate) // Replace the top item, then clear in response. - ignoreWarning(new RegExp(".*cannot replace while already in the process of removing elements")) + ignoreWarning(/.*cannot replace while already in the process of completing a clear/) control.clear(StackView.Immediate) } + + // QTBUG-84381 + function test_clearAndPushAfterDepthChange() { + var control = createTemporaryObject(stackView, testCase, { + popEnter: null, popExit: null, pushEnter: null, + pushExit: null, replaceEnter: null, replaceExit: null + }) + verify(control) + + control.depthChanged.connect(function() { + if (control.depth === 2) { + // Shouldn't assert. + ignoreWarning(/.*QML StackView: cannot clear while already in the process of completing a push/) + control.clear() + // Shouldn't crash. + ignoreWarning(/.*QML StackView: cannot push while already in the process of completing a push/) + control.push(component) + } + }) + + control.push(component) + control.push(component) + } } |