/ tests / tst_filterrole.qml
tst_filterrole.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 { name: "1"; age: 18 }
11          ListElement { name: "2"; age: 22 }
12          ListElement { name: "3"; age: 45 }
13          ListElement { name: "4"; age: 10 }
14      }
15  
16      SortFilterProxyModel {
17          id: testModel
18          sourceModel: listModel
19  
20          proxyRoles: FilterRole {
21              name: "isOldEnough"
22              RangeFilter {
23                  id: ageFilter
24                  roleName: "age"
25                  minimumInclusive: true
26                  minimumValue: 18
27              }
28          }
29      }
30      TestCase {
31          name: "FilterRole"
32  
33          function test_filterRole() {
34              compare(testModel.get(0, "isOldEnough"), true);
35              compare(testModel.get(1, "isOldEnough"), true);
36              compare(testModel.get(2, "isOldEnough"), true);
37              compare(testModel.get(3, "isOldEnough"), false);
38  
39              ageFilter.minimumValue = 21;
40  
41              compare(testModel.get(0, "isOldEnough"), false);
42              compare(testModel.get(1, "isOldEnough"), true);
43              compare(testModel.get(2, "isOldEnough"), true);
44              compare(testModel.get(3, "isOldEnough"), false);
45          }
46      }
47  }