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