Warning, /frameworks/kirigami/autotests/tst_routerwindow.qml is written in an unsupported language. File is not indexed.

0001 import QtQuick 2.12
0002 import QtQuick.Controls 2.12 as QQC2
0003 import org.kde.kirigami 2.12 as Kirigami
0004 import QtTest 1.0
0005 
0006 TestCase {
0007     name: "RouterWindowTests"
0008     property alias router: root.router
0009     when: windowShown
0010 
0011     function test_a_init() {
0012         compare(router.currentRoutes().length, 1)
0013     }
0014     function test_b_navigate() {
0015         router.navigateToRoute(["home", "login"])
0016         compare(router.currentRoutes().length, 2)
0017     }
0018     function test_c_data() {
0019         router.navigateToRoute(["home", {"route": "login", "data": "red"}])
0020         compare(router.routeActive(["home", {"route": "login", "data": "red"}]), true)
0021         compare(router.routeActive(["home", {"route": "login", "data": "blue"}]), false)
0022     }
0023     function test_d_cache_works() {
0024         router.navigateToRoute(["home", {"route": "login", "data": "red"}, {"route": "login", "data": "blue"}])
0025         compare(router.currentRoutes().length, 3)
0026     }
0027     function test_e_push() {
0028         router.pushRoute("home")
0029         compare(router.currentRoutes().length, 4)
0030     }
0031     function test_f_pop() {
0032         router.popRoute()
0033         compare(router.currentRoutes().length, 3)
0034     }
0035     function test_g_bring_to_view() {
0036         router.bringToView("home")
0037         compare(root.pageStack.currentIndex, 0)
0038         router.bringToView({"route": "login", "data": "red"})
0039         compare(root.pageStack.currentIndex, 1)
0040         router.bringToView({"route": "login", "data": "blue"})
0041         compare(root.pageStack.currentIndex, 2)
0042     }
0043     function test_h_routeactive() {
0044         compare(router.routeActive(["home"]), true)
0045         compare(router.routeActive(["home", "login"]), true)
0046         compare(router.routeActive(["home", {"route": "login", "data": "red"}]), true)
0047         compare(router.routeActive(["home", {"route": "login", "data": "blue"}]), false)
0048     }
0049     function test_i_initial_route() {
0050         router.initialRoute = "login"
0051         compare(router.routeActive(["login"]), false)
0052         compare(router.currentRoutes().length, 3)
0053     }
0054     function test_j_navigation_two() {
0055         router.navigateToRoute(["home", {"route": "login", "data": "red"}, {"route": "login", "data": "blue"}])
0056         compare(router.currentRoutes().length, 3)
0057         router.navigateToRoute(["home"])
0058         compare(router.currentRoutes().length, 1)
0059         compare(router.pageStack.count, 1)
0060     }
0061 
0062     Kirigami.RouterWindow {
0063         id: root
0064         initialRoute: "home"
0065         Kirigami.PageRoute {
0066             name: "home"
0067             cache: false
0068             Component {
0069                 Kirigami.Page {
0070                     Column {
0071                         Kirigami.Heading {
0072                             text: "Welcome"
0073                         }
0074                         QQC2.Button {
0075                             text: "Red Login"
0076                             onClicked: Kirigami.PageRouter.navigateToRoute(["home", {"route": "login", "data": "red"}])
0077                         }
0078                         QQC2.Button {
0079                             text: "Blue Login"
0080                             onClicked: Kirigami.PageRouter.navigateToRoute(["home", {"route": "login", "data": "blue"}])
0081                         }
0082                     }
0083                 }
0084             }
0085         }
0086         Kirigami.PageRoute {
0087             name: "login"
0088             cache: true
0089             Component {
0090                 Kirigami.Page {
0091                     Column {
0092                         Kirigami.Heading {
0093                             text: "Login"
0094                         }
0095                         Rectangle {
0096                             height: 50
0097                             width: 50
0098                             color: Kirigami.PageRouter.data
0099                         }
0100                         QQC2.Button {
0101                             text: "Back to Home"
0102                             onClicked: Kirigami.PageRouter.navigateToRoute("home")
0103                         }
0104                     }
0105                 }
0106             }
0107         }
0108     }
0109 }