qtmobility/tests/auto/qcontactfilter/tst_qcontactfilter.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
   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