phoneengine/phoneservices/tsrc/ut_telurischemeparser/unit_tests.cpp
branchGCC_SURGE
changeset 51 f39ed5e045e0
parent 46 bc5a64e5bc3c
equal deleted inserted replaced
40:bab96b7ed1a4 51:f39ed5e045e0
       
     1 /*!
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Unit tests for TEL URI Parser.
       
    15 *
       
    16 */
       
    17 
       
    18 #include <QtTest/QtTest>
       
    19 #include <mockservice.h>
       
    20 #include "telurischemeparser.h"
       
    21 #include "mock_mpecallcontrolif.h"
       
    22 #include "mock_mpecallsettersif.h"
       
    23 
       
    24 class UT_TelUriSchemeParser : public QObject, public MockService
       
    25 {
       
    26     Q_OBJECT
       
    27     
       
    28 public:
       
    29     UT_TelUriSchemeParser();
       
    30     virtual ~UT_TelUriSchemeParser();
       
    31 
       
    32 private slots:
       
    33     void init();
       
    34     void cleanup();
       
    35 
       
    36     void t_isSupportedUriScheme();
       
    37     void t_globalNumber();
       
    38     void t_localNumber();
       
    39     void t_withPauseAndMustChangeSharpDigit();
       
    40     void t_localWithAreaSpecifierAndPauseWithSharpDigit();
       
    41     void t_visualSeparatorAndMultiplePausesWithStar();
       
    42     void t_withAreaSpecifierWithWaitPauseAndStar();
       
    43     void t_withIsdnSubAndAndWaitAndPause();
       
    44     void t_wrongTelNum();
       
    45     void t_wrongPostDial();
       
    46     void t_justPauses();
       
    47     void t_justWaits();
       
    48     void t_justPausesAndWaits();
       
    49     void t_uriWrongSchema();
       
    50     void t_uriTooLongPhoneNumber();
       
    51 
       
    52 private:
       
    53     TelUriSchemeParser *m_uriParser;
       
    54 };
       
    55 
       
    56 UT_TelUriSchemeParser::UT_TelUriSchemeParser()
       
    57     :
       
    58     m_uriParser(NULL)
       
    59 {
       
    60 }
       
    61 
       
    62 UT_TelUriSchemeParser::~UT_TelUriSchemeParser()
       
    63 {
       
    64     delete m_uriParser;
       
    65 }
       
    66 
       
    67 void UT_TelUriSchemeParser::init()
       
    68 {
       
    69     initialize();
       
    70     
       
    71     m_uriParser = new TelUriSchemeParser();
       
    72 }
       
    73 
       
    74 void UT_TelUriSchemeParser::cleanup()
       
    75 {
       
    76     reset();
       
    77     
       
    78     delete m_uriParser;
       
    79     m_uriParser = NULL;
       
    80 }
       
    81 
       
    82 void UT_TelUriSchemeParser::t_isSupportedUriScheme()
       
    83 {
       
    84     // valid scheme
       
    85     QString uriWithValidScheme(
       
    86         QString("tel:") +
       
    87         QString("1234567890"));
       
    88     bool isValid = m_uriParser->isSupportedUriScheme(uriWithValidScheme);
       
    89     
       
    90     QCOMPARE(isValid, true);   
       
    91         
       
    92     // invalid scheme
       
    93     QString uriWithWrongScheme(
       
    94         QString("cti:") +
       
    95         QString("1234567890"));
       
    96     isValid = m_uriParser->isSupportedUriScheme(uriWithWrongScheme);
       
    97     
       
    98     QCOMPARE(isValid, false);   
       
    99     QVERIFY(verify());
       
   100 }
       
   101 
       
   102 void UT_TelUriSchemeParser::t_globalNumber()
       
   103 {
       
   104     QString KExpectedPhoneNumber = "+3585551234567";
       
   105     QString KExpectedDtmfString = "";
       
   106     QString telUriWithNumber("tel:+3585551234567");
       
   107     
       
   108     QString phoneNumber = "";
       
   109     QString dtmfString = "";
       
   110     bool handled = m_uriParser->parseUri(
       
   111         telUriWithNumber, phoneNumber, dtmfString);
       
   112     
       
   113     QCOMPARE(handled, true);
       
   114     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   115     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   116     QVERIFY(verify());
       
   117 }
       
   118 
       
   119 void UT_TelUriSchemeParser::t_localNumber()
       
   120 {
       
   121     QString KExpectedPhoneNumber = "04051234567";
       
   122     QString KExpectedDtmfString = "";
       
   123     QString telUriWithNumber("tel:04051234567");
       
   124     
       
   125     QString phoneNumber = "";
       
   126     QString dtmfString = "";
       
   127     bool handled = m_uriParser->parseUri(
       
   128         telUriWithNumber, phoneNumber, dtmfString);
       
   129     
       
   130     QCOMPARE(handled, true);
       
   131     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   132     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   133     QVERIFY(verify());
       
   134 }
       
   135 
       
   136 void UT_TelUriSchemeParser::t_withPauseAndMustChangeSharpDigit()
       
   137 {
       
   138     QString KExpectedPhoneNumber = "+3585551234567";
       
   139     QString KExpectedDtmfString = "p#3233";
       
   140     QString telUri("tel:+3585551234567;postd=p%233233");
       
   141     
       
   142     QString phoneNumber = "";
       
   143     QString dtmfString = "";
       
   144     bool handled = m_uriParser->parseUri(
       
   145         telUri, phoneNumber, dtmfString);
       
   146     
       
   147     QCOMPARE(handled, true);
       
   148     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   149     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   150     QVERIFY(verify());
       
   151 }
       
   152 
       
   153 void UT_TelUriSchemeParser::t_localWithAreaSpecifierAndPauseWithSharpDigit()
       
   154 {
       
   155     QString KExpectedPhoneNumber = "1234";
       
   156     QString KExpectedDtmfString = "p#3233";
       
   157     QString telUriWithNumber("tel:1234;phone-context=+358555;postd=p#3233");
       
   158     
       
   159     QString phoneNumber = "";
       
   160     QString dtmfString = "";
       
   161     bool handled = m_uriParser->parseUri(
       
   162         telUriWithNumber, phoneNumber, dtmfString);
       
   163     
       
   164     QCOMPARE(handled, true);
       
   165     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   166     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   167     QVERIFY(verify());
       
   168 }
       
   169 
       
   170 void UT_TelUriSchemeParser::t_visualSeparatorAndMultiplePausesWithStar()
       
   171 {
       
   172     QString KExpectedPhoneNumber = "+3585551234567";
       
   173     QString KExpectedDtmfString = "pp*3233";
       
   174     QString telUriWithNumber("tel:+358-555-1234567;postd=pp*3233");
       
   175     
       
   176     QString phoneNumber = "";
       
   177     QString dtmfString = "";
       
   178     bool handled = m_uriParser->parseUri(
       
   179         telUriWithNumber, phoneNumber, dtmfString);
       
   180     
       
   181     QCOMPARE(handled, true);
       
   182     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   183     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   184     QVERIFY(verify());
       
   185 }
       
   186 
       
   187 void UT_TelUriSchemeParser::t_withAreaSpecifierWithWaitPauseAndStar()
       
   188 {
       
   189     QString KExpectedPhoneNumber = "+1234567890";
       
   190     QString KExpectedDtmfString = "pw22p*3";
       
   191     QString telUriWithNumber("tel:+1234567890;phone-context=+1234;"
       
   192                                 "vnd.company.option=foo;postd=w22p*3");
       
   193     
       
   194     QString phoneNumber = "";
       
   195     QString dtmfString = "";
       
   196     bool handled = m_uriParser->parseUri(
       
   197         telUriWithNumber, phoneNumber, dtmfString);
       
   198     
       
   199     QCOMPARE(handled, true);
       
   200     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   201     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   202     QVERIFY(verify());
       
   203 }
       
   204 
       
   205 void UT_TelUriSchemeParser::t_withIsdnSubAndAndWaitAndPause()
       
   206 {
       
   207     QString KExpectedPhoneNumber = "+3585551234567";
       
   208     QString KExpectedDtmfString = "pwp2233";
       
   209     QString telUriWithNumber("tel:+358-555-1234567;isub=5555;postd=wp2233");
       
   210     
       
   211     QString phoneNumber = "";
       
   212     QString dtmfString = "";
       
   213     bool handled = m_uriParser->parseUri(
       
   214         telUriWithNumber, phoneNumber, dtmfString);
       
   215     
       
   216     QCOMPARE(handled, true);
       
   217     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   218     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   219     QVERIFY(verify());
       
   220 }
       
   221 
       
   222 void UT_TelUriSchemeParser::t_wrongTelNum()
       
   223 {
       
   224     QString KExpectedPhoneNumber = "";
       
   225     QString KExpectedDtmfString = "";
       
   226     QString telUriWithNumber("tel:0w003585551234567;phone-context=+3585551234");
       
   227     
       
   228     QString phoneNumber = "";
       
   229     QString dtmfString = "";
       
   230     bool handled = m_uriParser->parseUri(
       
   231         telUriWithNumber, phoneNumber, dtmfString);
       
   232     
       
   233     QCOMPARE(handled, false);
       
   234     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   235     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   236     QVERIFY(verify());
       
   237 }
       
   238 
       
   239 void UT_TelUriSchemeParser::t_wrongPostDial()
       
   240 {
       
   241     QString KExpectedPhoneNumber = "+3585551234567";
       
   242     QString KExpectedDtmfString = "";
       
   243     QString telUriWithNumber("tel:+3585551234567;postd=*A123");
       
   244     
       
   245     QString phoneNumber = "";
       
   246     QString dtmfString = "";
       
   247     bool handled = m_uriParser->parseUri(
       
   248         telUriWithNumber, phoneNumber, dtmfString);
       
   249     
       
   250     QCOMPARE(handled, true);
       
   251     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   252     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   253     QVERIFY(verify());
       
   254 }
       
   255 
       
   256 void UT_TelUriSchemeParser::t_justPauses()
       
   257 {
       
   258     QString KExpectedPhoneNumber = "+3585551234567";
       
   259     QString KExpectedDtmfString = "";
       
   260     QString telUriWithNumber("tel:+3585551234567;postd=pppp");
       
   261     
       
   262     QString phoneNumber = "";
       
   263     QString dtmfString = "";
       
   264     bool handled = m_uriParser->parseUri(
       
   265         telUriWithNumber, phoneNumber, dtmfString);
       
   266     
       
   267     QCOMPARE(handled, true);
       
   268     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   269     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   270     QVERIFY(verify());
       
   271 }
       
   272 
       
   273 void UT_TelUriSchemeParser::t_justWaits()
       
   274 {
       
   275     QString KExpectedPhoneNumber = "+3585551234567";
       
   276     QString KExpectedDtmfString = "";
       
   277     QString telUriWithNumber("tel:+3585551234567;postd=wwww");
       
   278     
       
   279     QString phoneNumber = "";
       
   280     QString dtmfString = "";
       
   281     bool handled = m_uriParser->parseUri(
       
   282         telUriWithNumber, phoneNumber, dtmfString);
       
   283     
       
   284     QCOMPARE(handled, true);
       
   285     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   286     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   287     QVERIFY(verify());
       
   288 }
       
   289 
       
   290 void UT_TelUriSchemeParser::t_justPausesAndWaits()
       
   291 {
       
   292     QString KExpectedPhoneNumber = "+3585551234567";
       
   293     QString KExpectedDtmfString = "";
       
   294     QString telUriWithNumber("tel:+3585551234567;postd=wpwp");
       
   295     
       
   296     QString phoneNumber = "";
       
   297     QString dtmfString = "";
       
   298     bool handled = m_uriParser->parseUri(
       
   299         telUriWithNumber, phoneNumber, dtmfString);
       
   300     
       
   301     QCOMPARE(handled, true);
       
   302     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   303     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   304     QVERIFY(verify());
       
   305 }
       
   306 
       
   307 void UT_TelUriSchemeParser::t_uriWrongSchema()
       
   308 {
       
   309     QString KExpectedPhoneNumber = "";
       
   310     QString KExpectedDtmfString = "";
       
   311     
       
   312     QString uriWithWrongSchema(
       
   313         QString("cti:") +
       
   314         QString("1234567890"));
       
   315     
       
   316     QString phoneNumber = "";
       
   317     QString dtmfString = "";
       
   318     bool handled = m_uriParser->parseUri(
       
   319         uriWithWrongSchema, phoneNumber, dtmfString);
       
   320     
       
   321     QCOMPARE(handled, false);
       
   322     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   323     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   324     QVERIFY(verify());
       
   325 }
       
   326 
       
   327 void UT_TelUriSchemeParser::t_uriTooLongPhoneNumber()
       
   328 {
       
   329     QString KExpectedPhoneNumber = "";
       
   330     QString KExpectedDtmfString = "";
       
   331     
       
   332     QString uriWithTooLongPhoneNumber(
       
   333         QString("tel:") +
       
   334         QString("12345678901234567890123456789012345678901234567890") +
       
   335         QString("12345678901234567890123456789012345678901234567890") + 
       
   336         QString("1"));
       
   337     
       
   338     QString phoneNumber = "";
       
   339     QString dtmfString = "";
       
   340     bool handled = m_uriParser->parseUri(
       
   341         uriWithTooLongPhoneNumber, phoneNumber, dtmfString);
       
   342     
       
   343     QCOMPARE(handled, false);
       
   344     QCOMPARE(phoneNumber, KExpectedPhoneNumber);
       
   345     QCOMPARE(dtmfString, KExpectedDtmfString);
       
   346     QVERIFY(verify());
       
   347 }
       
   348 
       
   349 QTEST_MAIN(UT_TelUriSchemeParser)
       
   350 #include "unit_tests.moc"