/ tests / tst_regexprole.qml
tst_regexprole.qml
 1  import QtQuick 2.0
 2  import QtQml 2.2
 3  import QtTest 1.1
 4  import SortFilterProxyModel 0.2
 5  import QtQml 2.2
 6  
 7  Item {
 8      ListModel {
 9          id: listModel
10          ListElement { dummyRole: false; compoundRole: "0 - zero"; unusedRole: "" }
11          ListElement { dummyRole: false; compoundRole: "1 - one"; unusedRole: "" }
12          ListElement { dummyRole: false; compoundRole: "2 - two"; unusedRole: "" }
13          ListElement { dummyRole: false; compoundRole: "3 - three"; unusedRole: "" }
14          ListElement { dummyRole: false; compoundRole: "four"; unusedRole: "" }
15      }
16  
17      SortFilterProxyModel {
18          id: testModel
19          sourceModel: listModel
20  
21          proxyRoles: [
22              RegExpRole {
23                  id: regExpRole
24                  roleName: "compoundRole"
25                  pattern: "(?<id>\\d+) - (?<name>.+)"
26              },
27              RegExpRole {
28                  id: caseSensitiveRole
29                  roleName: "compoundRole"
30                  pattern: "\\d+ - (?<nameCS>[A-Z]+)"
31                  caseSensitivity: Qt.CaseSensitive
32              },
33              RegExpRole {
34                  id: caseInsensitiveRole
35                  roleName: "compoundRole"
36                  pattern: "\\d+ - (?<nameCIS>[A-Z]+)"
37                  caseSensitivity: Qt.CaseInsensitive
38              }
39          ]
40      }
41  
42              TestCase {
43                  name: "RegExpRole"
44  
45                  function test_regExpRole() {
46                      compare(testModel.get(0, "id"), "0");
47                      compare(testModel.get(1, "id"), "1");
48                      compare(testModel.get(0, "name"), "zero");
49                      compare(testModel.get(4, "id"), undefined);
50                      compare(testModel.get(0, "nameCS"), undefined);
51                      compare(testModel.get(0, "nameCIS"), "zero");
52                  }
53              }
54      }