443 QContactFilter f = df; |
443 QContactFilter f = df; |
444 QVERIFY(f == df); |
444 QVERIFY(f == df); |
445 |
445 |
446 QContactDetailFilter df2 = f; |
446 QContactDetailFilter df2 = f; |
447 QVERIFY(df2 == df); |
447 QVERIFY(df2 == df); |
|
448 QVERIFY(df2.detailDefinitionName() == "Definition"); |
|
449 QVERIFY(df2.detailFieldName() == "Field"); |
448 |
450 |
449 /* Self assignment should do nothing */ |
451 /* Self assignment should do nothing */ |
450 df2 = df2; |
452 df2 = df2; |
451 QVERIFY(df2 == df); |
453 QVERIFY(df2 == df); |
|
454 |
|
455 /* Some cross casting */ |
|
456 QContactDetailRangeFilter rf; |
|
457 |
|
458 /* Directly */ |
|
459 df2 = rf; |
|
460 QVERIFY(df2.type() == QContactFilter::ContactDetailFilter); |
|
461 QVERIFY(df2.detailDefinitionName().isEmpty()); |
|
462 QVERIFY(df2.detailFieldName().isEmpty()); |
|
463 QVERIFY(df2.value().isNull()); |
|
464 |
|
465 /* reset it */ |
|
466 df2 = df; |
|
467 QVERIFY(df2.detailDefinitionName() == "Definition"); |
|
468 QVERIFY(df2.detailFieldName() == "Field"); |
|
469 |
|
470 /* Through base class */ |
|
471 f = rf; |
|
472 df2 = f; |
|
473 QVERIFY(df2.detailDefinitionName().isEmpty()); |
|
474 QVERIFY(df2.detailFieldName().isEmpty()); |
|
475 QVERIFY(df2.value().isNull()); |
|
476 |
|
477 /* Now test copy ctor */ |
|
478 QContactDetailFilter df3(rf); |
|
479 QVERIFY(df3.type() == QContactFilter::ContactDetailFilter); |
|
480 QVERIFY(df3.detailDefinitionName().isEmpty()); |
|
481 QVERIFY(df3.detailFieldName().isEmpty()); |
|
482 QVERIFY(df3.value().isNull()); |
|
483 |
|
484 /* reset it */ |
|
485 df3 = df; |
|
486 QVERIFY(df3.detailDefinitionName() == "Definition"); |
|
487 QVERIFY(df3.detailFieldName() == "Field"); |
|
488 |
|
489 /* Now test copy ctor through base class */ |
|
490 QContactDetailFilter df4(f); |
|
491 QVERIFY(df4.type() == QContactFilter::ContactDetailFilter); |
|
492 QVERIFY(df4.detailDefinitionName().isEmpty()); |
|
493 QVERIFY(df4.detailFieldName().isEmpty()); |
|
494 QVERIFY(df4.value().isNull()); |
|
495 |
|
496 /* reset it */ |
|
497 df4 = df; |
|
498 QVERIFY(df4.detailDefinitionName() == "Definition"); |
|
499 QVERIFY(df4.detailFieldName() == "Field"); |
452 } |
500 } |
453 |
501 |
454 void tst_QContactFilter::detailRangeFilter() |
502 void tst_QContactFilter::detailRangeFilter() |
455 { |
503 { |
456 QContactDetailRangeFilter rf; |
504 QContactDetailRangeFilter rf; |
483 QVERIFY(rf.maxValue().isNull()); |
531 QVERIFY(rf.maxValue().isNull()); |
484 QVERIFY(rf.rangeFlags() == (QContactDetailRangeFilter::ExcludeUpper | QContactDetailRangeFilter::IncludeLower)); |
532 QVERIFY(rf.rangeFlags() == (QContactDetailRangeFilter::ExcludeUpper | QContactDetailRangeFilter::IncludeLower)); |
485 |
533 |
486 rf.setMatchFlags(QContactFilter::MatchExactly); |
534 rf.setMatchFlags(QContactFilter::MatchExactly); |
487 QVERIFY(rf.matchFlags() == QContactFilter::MatchExactly); |
535 QVERIFY(rf.matchFlags() == QContactFilter::MatchExactly); |
|
536 |
|
537 rf.setMatchFlags(QContactFilter::MatchCaseSensitive); |
|
538 QVERIFY(rf.matchFlags() == QContactFilter::MatchCaseSensitive); |
|
539 |
|
540 // Contains is not allowed |
|
541 rf.setMatchFlags(QContactFilter::MatchCaseSensitive | QContactFilter::MatchContains); |
|
542 QVERIFY(rf.matchFlags() == QContactFilter::MatchCaseSensitive); |
|
543 |
|
544 rf.setMatchFlags(QContactFilter::MatchEndsWith); |
|
545 QVERIFY(rf.matchFlags() == QContactFilter::MatchExactly); // 0 |
488 |
546 |
489 rf.setRange(5, 10); |
547 rf.setRange(5, 10); |
490 QVERIFY(rf.minValue() == 5); |
548 QVERIFY(rf.minValue() == 5); |
491 QVERIFY(rf.maxValue() == 10); |
549 QVERIFY(rf.maxValue() == 10); |
492 QVERIFY(rf.rangeFlags() == (QContactDetailRangeFilter::ExcludeUpper | QContactDetailRangeFilter::IncludeLower)); |
550 QVERIFY(rf.rangeFlags() == (QContactDetailRangeFilter::ExcludeUpper | QContactDetailRangeFilter::IncludeLower)); |
987 |
1045 |
988 { |
1046 { |
989 QContactDetailRangeFilter qcdrf; |
1047 QContactDetailRangeFilter qcdrf; |
990 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
1048 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
991 qcdrf.setRange(QLatin1String("a"), QLatin1String("a")); |
1049 qcdrf.setRange(QLatin1String("a"), QLatin1String("a")); |
992 qcdrf.setMatchFlags(QContactFilter::MatchStartsWith); |
1050 qcdrf.setMatchFlags(QContactFilter::MatchFixedString); |
993 QContactDetailFilter expected; |
1051 QContactDetailFilter expected; |
994 expected.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
1052 expected.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
995 expected.setValue(QLatin1String("a")); |
1053 expected.setValue(QLatin1String("a")); |
996 expected.setMatchFlags(QContactFilter::MatchStartsWith); |
1054 expected.setMatchFlags(QContactFilter::MatchFixedString); |
997 QTest::newRow("Equal valued range filter") |
1055 QTest::newRow("Equal valued range filter") |
998 << static_cast<QContactFilter>(qcdrf) |
1056 << static_cast<QContactFilter>(qcdrf) |
999 << static_cast<QContactFilter>(expected); |
1057 << static_cast<QContactFilter>(expected); |
1000 } |
1058 } |
1001 |
1059 |
1002 { |
1060 { |
1003 QContactDetailRangeFilter qcdrf; |
1061 QContactDetailRangeFilter qcdrf; |
1004 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
1062 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
1005 qcdrf.setRange(QLatin1String("a"), QLatin1String("a"), |
1063 qcdrf.setRange(QLatin1String("a"), QLatin1String("a"), |
1006 QContactDetailRangeFilter::ExcludeLower | QContactDetailRangeFilter::ExcludeUpper); |
1064 QContactDetailRangeFilter::ExcludeLower | QContactDetailRangeFilter::ExcludeUpper); |
1007 qcdrf.setMatchFlags(QContactFilter::MatchStartsWith); |
1065 qcdrf.setMatchFlags(QContactFilter::MatchFixedString); |
1008 QTest::newRow("Equal valued range filter with excluded bounds") |
1066 QTest::newRow("Equal valued range filter with excluded bounds") |
1009 << static_cast<QContactFilter>(qcdrf) |
1067 << static_cast<QContactFilter>(qcdrf) |
1010 << static_cast<QContactFilter>(invalidFilter); |
1068 << static_cast<QContactFilter>(invalidFilter); |
1011 } |
1069 } |
1012 |
1070 |
1013 { |
1071 { |
1014 QContactDetailRangeFilter qcdrf; |
1072 QContactDetailRangeFilter qcdrf; |
1015 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
1073 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
1016 qcdrf.setRange(QLatin1String("a"), QLatin1String("b")); |
1074 qcdrf.setRange(QLatin1String("a"), QLatin1String("b")); |
1017 qcdrf.setMatchFlags(QContactFilter::MatchStartsWith); |
1075 qcdrf.setMatchFlags(QContactFilter::MatchFixedString); |
1018 QTest::newRow("Normal range filter") |
1076 QTest::newRow("Normal range filter") |
1019 << static_cast<QContactFilter>(qcdrf) |
1077 << static_cast<QContactFilter>(qcdrf) |
1020 << static_cast<QContactFilter>(qcdrf); |
1078 << static_cast<QContactFilter>(qcdrf); |
1021 } |
1079 } |
1022 |
1080 |
1023 { |
1081 { |
1024 QContactDetailRangeFilter qcdrf; |
1082 QContactDetailRangeFilter qcdrf; |
1025 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
1083 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
1026 qcdrf.setRange(QVariant(QVariant::String), QVariant(QVariant::String)); // null bounds |
1084 qcdrf.setRange(QVariant(QVariant::String), QVariant(QVariant::String)); // null bounds |
1027 qcdrf.setMatchFlags(QContactFilter::MatchStartsWith); |
1085 qcdrf.setMatchFlags(QContactFilter::MatchFixedString); |
1028 QContactDetailFilter qcdf; |
1086 QContactDetailFilter qcdf; |
1029 qcdf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
1087 qcdf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
1030 qcdf.setMatchFlags(QContactFilter::MatchStartsWith); |
1088 qcdf.setMatchFlags(QContactFilter::MatchFixedString); |
1031 qcdf.setValue(QVariant(QVariant::String)); |
1089 qcdf.setValue(QVariant(QVariant::String)); |
1032 QTest::newRow("Null valued range filter") |
1090 QTest::newRow("Null valued range filter") |
1033 << static_cast<QContactFilter>(qcdrf) |
1091 << static_cast<QContactFilter>(qcdrf) |
1034 << static_cast<QContactFilter>(qcdf); |
1092 << static_cast<QContactFilter>(qcdf); |
1035 } |
1093 } |
1036 |
1094 |
1037 { |
1095 { |
1038 QContactDetailRangeFilter qcdrf; |
1096 QContactDetailRangeFilter qcdrf; |
1039 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
1097 qcdrf.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldCustomLabel); |
1040 qcdrf.setRange(QVariant(QVariant::String), QLatin1String("a")); // min is null |
1098 qcdrf.setRange(QVariant(QVariant::String), QLatin1String("a")); // min is null |
1041 qcdrf.setMatchFlags(QContactFilter::MatchStartsWith); |
1099 qcdrf.setMatchFlags(QContactFilter::MatchFixedString); |
1042 QTest::newRow("One sided range filter") |
1100 QTest::newRow("One sided range filter") |
1043 << static_cast<QContactFilter>(qcdrf) |
1101 << static_cast<QContactFilter>(qcdrf) |
1044 << static_cast<QContactFilter>(qcdrf); |
1102 << static_cast<QContactFilter>(qcdrf); |
1045 } |
1103 } |
1046 |
1104 |