915 QVERIFY(idf == idf3); // again, should be a blank id list filter. |
921 QVERIFY(idf == idf3); // again, should be a blank id list filter. |
916 idf = idf3; |
922 idf = idf3; |
917 idf.setIds(ids); // force a detach |
923 idf.setIds(ids); // force a detach |
918 } |
924 } |
919 |
925 |
|
926 void tst_QContactFilter::canonicalizedFilter() |
|
927 { |
|
928 QFETCH(QContactFilter, in); |
|
929 QFETCH(QContactFilter, expected); |
|
930 |
|
931 QContactFilter out = QContactManagerEngine::canonicalizedFilter(in); |
|
932 QCOMPARE(out, expected); |
|
933 } |
|
934 |
|
935 void tst_QContactFilter::canonicalizedFilter_data() |
|
936 { |
|
937 QTest::addColumn<QContactFilter>("in"); |
|
938 QTest::addColumn<QContactFilter>("expected"); |
|
939 |
|
940 QContactFilter detailFilter1 = QContactName::match("1"); |
|
941 QContactFilter detailFilter2 = QContactName::match("2"); |
|
942 QContactInvalidFilter invalidFilter; |
|
943 QContactFilter defaultFilter; |
|
944 |
|
945 { |
|
946 QTest::newRow("Normal detail filter") |
|
947 << static_cast<QContactFilter>(detailFilter1) |
|
948 << static_cast<QContactFilter>(detailFilter1); |
|
949 } |
|
950 |
|
951 { |
|
952 QContactIntersectionFilter qcif; |
|
953 qcif << detailFilter1; |
|
954 qcif << detailFilter2; |
|
955 QTest::newRow("Normal intersection filter") |
|
956 << static_cast<QContactFilter>(qcif) |
|
957 << static_cast<QContactFilter>(qcif); |
|
958 } |
|
959 |
|
960 { |
|
961 QContactUnionFilter qcuf; |
|
962 qcuf << detailFilter1; |
|
963 qcuf << detailFilter2; |
|
964 QTest::newRow("Normal intersection filter") |
|
965 << static_cast<QContactFilter>(qcuf) |
|
966 << static_cast<QContactFilter>(qcuf); |
|
967 } |
|
968 |
|
969 { |
|
970 QContactIntersectionFilter qcif; |
|
971 QTest::newRow("Empty intersection") |
|
972 << static_cast<QContactFilter>(qcif) |
|
973 << static_cast<QContactFilter>(defaultFilter); |
|
974 } |
|
975 |
|
976 { |
|
977 QContactUnionFilter qcuf; |
|
978 QTest::newRow("Empty union") |
|
979 << static_cast<QContactFilter>(qcuf) |
|
980 << static_cast<QContactFilter>(invalidFilter); |
|
981 } |
|
982 |
|
983 { |
|
984 QContactIntersectionFilter qcif; |
|
985 qcif << detailFilter1; |
|
986 QTest::newRow("Single entry intersection filter") |
|
987 << static_cast<QContactFilter>(qcif) |
|
988 << static_cast<QContactFilter>(detailFilter1); |
|
989 } |
|
990 |
|
991 { |
|
992 QContactUnionFilter qcuf; |
|
993 qcuf << detailFilter1; |
|
994 QTest::newRow("Single entry union filter") |
|
995 << static_cast<QContactFilter>(qcuf) |
|
996 << static_cast<QContactFilter>(detailFilter1); |
|
997 } |
|
998 |
|
999 { |
|
1000 QContactIntersectionFilter qcif; |
|
1001 qcif << invalidFilter; |
|
1002 qcif << detailFilter1; |
|
1003 qcif << detailFilter2; |
|
1004 QTest::newRow("Intersection with invalid") |
|
1005 << static_cast<QContactFilter>(qcif) |
|
1006 << static_cast<QContactFilter>(invalidFilter); |
|
1007 } |
|
1008 |
|
1009 { |
|
1010 QContactIntersectionFilter qcif; |
|
1011 qcif << defaultFilter; |
|
1012 qcif << detailFilter1; |
|
1013 qcif << detailFilter2; |
|
1014 QContactIntersectionFilter expected; |
|
1015 expected << detailFilter1; |
|
1016 expected << detailFilter2; |
|
1017 QTest::newRow("Intersection with default") |
|
1018 << static_cast<QContactFilter>(qcif) |
|
1019 << static_cast<QContactFilter>(expected); |
|
1020 } |
|
1021 |
|
1022 { |
|
1023 QContactUnionFilter qcuf; |
|
1024 qcuf << invalidFilter; |
|
1025 qcuf << detailFilter1; |
|
1026 qcuf << detailFilter2; |
|
1027 QContactUnionFilter expected; |
|
1028 expected << detailFilter1; |
|
1029 expected << detailFilter2; |
|
1030 QTest::newRow("Union with invalid") |
|
1031 << static_cast<QContactFilter>(qcuf) |
|
1032 << static_cast<QContactFilter>(expected); |
|
1033 } |
|
1034 |
|
1035 { |
|
1036 QContactUnionFilter qcuf; |
|
1037 qcuf << defaultFilter; |
|
1038 qcuf << detailFilter1; |
|
1039 qcuf << detailFilter2; |
|
1040 QTest::newRow("Union with default") |
|
1041 << static_cast<QContactFilter>(qcuf) |
|
1042 << static_cast<QContactFilter>(defaultFilter); |
|
1043 } |
|
1044 |
|
1045 { |
|
1046 QContactLocalIdFilter qclif; |
|
1047 QTest::newRow("Empty local id filter") |
|
1048 << static_cast<QContactFilter>(qclif) |
|
1049 << static_cast<QContactFilter>(invalidFilter); |
|
1050 } |
|
1051 |
|
1052 { |
|
1053 QContactLocalIdFilter qclif; |
|
1054 qclif.setIds(QList<QContactLocalId>() << 1 << 2); |
|
1055 QTest::newRow("Normal local id filter") |
|
1056 << static_cast<QContactFilter>(qclif) |
|
1057 << static_cast<QContactFilter>(qclif); |
|
1058 } |
|
1059 |
|
1060 { |
|
1061 QContactDetailRangeFilter qcdrf; |
|
1062 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
|
1063 QContactDetailFilter expected; |
|
1064 expected.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
|
1065 QTest::newRow("Null valued range filter") |
|
1066 << static_cast<QContactFilter>(qcdrf) |
|
1067 << static_cast<QContactFilter>(expected); |
|
1068 } |
|
1069 |
|
1070 { |
|
1071 QContactDetailRangeFilter qcdrf; |
|
1072 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
|
1073 qcdrf.setRange(QLatin1String("a"), QLatin1String("a")); |
|
1074 qcdrf.setMatchFlags(QContactFilter::MatchStartsWith); |
|
1075 QContactDetailFilter expected; |
|
1076 expected.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
|
1077 expected.setValue(QLatin1String("a")); |
|
1078 expected.setMatchFlags(QContactFilter::MatchStartsWith); |
|
1079 QTest::newRow("Equal valued range filter") |
|
1080 << static_cast<QContactFilter>(qcdrf) |
|
1081 << static_cast<QContactFilter>(expected); |
|
1082 } |
|
1083 |
|
1084 { |
|
1085 QContactDetailRangeFilter qcdrf; |
|
1086 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
|
1087 qcdrf.setRange(QLatin1String("a"), QLatin1String("a"), |
|
1088 QContactDetailRangeFilter::ExcludeLower | QContactDetailRangeFilter::ExcludeUpper); |
|
1089 qcdrf.setMatchFlags(QContactFilter::MatchStartsWith); |
|
1090 QTest::newRow("Equal valued range filter with excluded bounds") |
|
1091 << static_cast<QContactFilter>(qcdrf) |
|
1092 << static_cast<QContactFilter>(invalidFilter); |
|
1093 } |
|
1094 |
|
1095 { |
|
1096 QContactDetailRangeFilter qcdrf; |
|
1097 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
|
1098 qcdrf.setRange(QLatin1String("a"), QLatin1String("b")); |
|
1099 qcdrf.setMatchFlags(QContactFilter::MatchStartsWith); |
|
1100 QTest::newRow("Normal range filter") |
|
1101 << static_cast<QContactFilter>(qcdrf) |
|
1102 << static_cast<QContactFilter>(qcdrf); |
|
1103 } |
|
1104 |
|
1105 { |
|
1106 QContactDetailRangeFilter qcdrf; |
|
1107 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
|
1108 qcdrf.setRange(QVariant(QVariant::String), QVariant(QVariant::String)); // null bounds |
|
1109 qcdrf.setMatchFlags(QContactFilter::MatchStartsWith); |
|
1110 QContactDetailFilter qcdf; |
|
1111 qcdf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
|
1112 qcdf.setMatchFlags(QContactFilter::MatchStartsWith); |
|
1113 qcdf.setValue(QVariant(QVariant::String)); |
|
1114 QTest::newRow("Null valued range filter") |
|
1115 << static_cast<QContactFilter>(qcdrf) |
|
1116 << static_cast<QContactFilter>(qcdf); |
|
1117 } |
|
1118 |
|
1119 { |
|
1120 QContactDetailRangeFilter qcdrf; |
|
1121 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
|
1122 qcdrf.setRange(QVariant(QVariant::String), QLatin1String("a")); // min is null |
|
1123 qcdrf.setMatchFlags(QContactFilter::MatchStartsWith); |
|
1124 QTest::newRow("One sided range filter") |
|
1125 << static_cast<QContactFilter>(qcdrf) |
|
1126 << static_cast<QContactFilter>(qcdrf); |
|
1127 } |
|
1128 |
|
1129 { |
|
1130 QContactDetailRangeFilter qcdrf; |
|
1131 QTest::newRow("Empty range filter") |
|
1132 << static_cast<QContactFilter>(qcdrf) |
|
1133 << static_cast<QContactFilter>(invalidFilter); |
|
1134 } |
|
1135 |
|
1136 { |
|
1137 QContactDetailFilter qcdf; |
|
1138 QTest::newRow("Empty detail filter") |
|
1139 << static_cast<QContactFilter>(qcdf) |
|
1140 << static_cast<QContactFilter>(invalidFilter); |
|
1141 } |
|
1142 } |
|
1143 |
920 void tst_QContactFilter::traits() |
1144 void tst_QContactFilter::traits() |
921 { |
1145 { |
922 // QCOMPARE(sizeof(QContactFilter), sizeof(void *)); |
1146 QCOMPARE(sizeof(QContactFilter), sizeof(void *)); |
923 QTypeInfo<QTM_PREPEND_NAMESPACE(QContactFilter)> ti; |
1147 QTypeInfo<QTM_PREPEND_NAMESPACE(QContactFilter)> ti; |
924 QVERIFY(ti.isComplex); |
1148 QVERIFY(ti.isComplex); |
925 QVERIFY(!ti.isStatic); |
1149 QVERIFY(!ti.isStatic); |
926 QVERIFY(ti.isLarge); // virtual table + d pointer |
1150 QVERIFY(!ti.isLarge); |
927 QVERIFY(!ti.isPointer); |
1151 QVERIFY(!ti.isPointer); |
928 QVERIFY(!ti.isDummy); |
1152 QVERIFY(!ti.isDummy); |
929 } |
1153 } |
930 |
1154 |
931 void tst_QContactFilter::sortTraits() |
1155 void tst_QContactFilter::sortTraits() |