Ignore:
Timestamp:
Aug 19, 2006, 8:27:44 PM (19 years ago)
Author:
RBRi
Message:

more parser fixes and new unit tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NewView/unittests/cmdlineparameterunittests.pas

    r27 r29  
    2020PROCEDURE testSplitCmdLineParameter_TwoQuotedParts;
    2121PROCEDURE testSplitCmdLineParameter_TwoQuotesAtStartEnd;
     22PROCEDURE testSplitCmdLineParameter_Failure_TwoQuotesAtEnd;
    2223PROCEDURE testSplitCmdLineParameter_TwoQuotedPartsMissingClosedQuote;
     24PROCEDURE testSplitCmdLineParameter_1Quote;
     25PROCEDURE testSplitCmdLineParameter_2Quote;
     26PROCEDURE testSplitCmdLineParameter_3Quote;
     27PROCEDURE testSplitCmdLineParameter_4Quote;
     28PROCEDURE testSplitCmdLineParameter_5Quote;
     29PROCEDURE testSplitCmdLineParameter_6Quote;
    2330
    2431PROCEDURE testParseCmdLine_Empty;
     
    235242
    236243
     244  PROCEDURE testSplitCmdLineParameter_Failure_TwoQuotesAtEnd;
     245  VAR
     246    tmpResult : TStringList;
     247    tmpRC : Integer;
     248  BEGIN
     249    tmpResult := TStringList.Create;
     250    tmpRC := splitCmdLineParameter('"abc def""', tmpResult);
     251
     252    assertEqualsInt('testSplitCmdLineParameter_Failure_TwoQuotesAtEnd', -1, tmpRC);
     253    assertEqualsInt('testSplitCmdLineParameter_Failure_TwoQuotesAtEnd', 1, tmpResult.Count);
     254    assertEqualsString('testSplitCmdLineParameter_Failure_TwoQuotesAtEnd', 'abc def"', tmpResult[0]);
     255
     256    tmpResult.Destroy;
     257  END;
     258
     259
    237260  PROCEDURE testSplitCmdLineParameter_TwoQuotedPartsMissingClosedQuote;
    238261  VAR
     
    247270    assertEqualsString('testSplitCmdLineParameter_TwoQuotedPartsMissingClosedQuote', 'ababc"def', tmpResult[0]);
    248271    assertEqualsString('testSplitCmdLineParameter_TwoQuotedPartsMissingClosedQuote', 'ghi', tmpResult[1]);
     272
     273    tmpResult.Destroy;
     274  END;
     275
     276
     277  PROCEDURE testSplitCmdLineParameter_1Quote;
     278  VAR
     279    tmpResult : TStringList;
     280    tmpRC : Integer;
     281  BEGIN
     282    tmpResult := TStringList.Create;
     283    tmpRC := splitCmdLineParameter('"', tmpResult);
     284
     285    assertEqualsInt('testSplitCmdLineParameter_1Quote', -1, tmpRC);
     286    assertEqualsInt('testSplitCmdLineParameter_1Quote', 0, tmpResult.Count);
     287
     288    tmpResult.Destroy;
     289  END;
     290
     291
     292  PROCEDURE testSplitCmdLineParameter_2Quote;
     293  VAR
     294    tmpResult : TStringList;
     295    tmpRC : Integer;
     296  BEGIN
     297    tmpResult := TStringList.Create;
     298    tmpRC := splitCmdLineParameter('""', tmpResult);
     299
     300    assertEqualsInt('testSplitCmdLineParameter_2Quote', 0, tmpRC);
     301    assertEqualsInt('testSplitCmdLineParameter_2Quote', 0, tmpResult.Count);
     302
     303    tmpResult.Destroy;
     304  END;
     305
     306
     307  PROCEDURE testSplitCmdLineParameter_3Quote;
     308  VAR
     309    tmpResult : TStringList;
     310    tmpRC : Integer;
     311  BEGIN
     312    tmpResult := TStringList.Create;
     313    tmpRC := splitCmdLineParameter('"""', tmpResult);
     314
     315    assertEqualsInt('testSplitCmdLineParameter_3Quote', -1, tmpRC);
     316    assertEqualsInt('', 1, tmpResult.Count);
     317    assertEqualsString('testSplitCmdLineParameter_3Quote', '"', tmpResult[0]);
     318
     319    tmpResult.Destroy;
     320  END;
     321
     322
     323  PROCEDURE testSplitCmdLineParameter_4Quote;
     324  VAR
     325    tmpResult : TStringList;
     326    tmpRC : Integer;
     327  BEGIN
     328    tmpResult := TStringList.Create;
     329    tmpRC := splitCmdLineParameter('""""', tmpResult);
     330
     331    assertEqualsInt('testSplitCmdLineParameter_4Quote', 0, tmpRC);
     332    assertEqualsInt('testSplitCmdLineParameter_4Quote', 1, tmpResult.Count);
     333    assertEqualsString('testSplitCmdLineParameter_4Quote', '"', tmpResult[0]);
     334
     335    tmpResult.Destroy;
     336  END;
     337
     338
     339  PROCEDURE testSplitCmdLineParameter_5Quote;
     340  VAR
     341    tmpResult : TStringList;
     342    tmpRC : Integer;
     343  BEGIN
     344    tmpResult := TStringList.Create;
     345    tmpRC := splitCmdLineParameter('"""""', tmpResult);
     346
     347    assertEqualsInt('testSplitCmdLineParameter_5Quote', -1, tmpRC);
     348    assertEqualsInt('testSplitCmdLineParameter_5Quote', 1, tmpResult.Count);
     349    assertEqualsString('testSplitCmdLineParameter_5Quote', '""', tmpResult[0]);
     350
     351    tmpResult.Destroy;
     352  END;
     353
     354
     355  PROCEDURE testSplitCmdLineParameter_6Quote;
     356  VAR
     357    tmpResult : TStringList;
     358    tmpRC : Integer;
     359  BEGIN
     360    tmpResult := TStringList.Create;
     361    tmpRC := splitCmdLineParameter('""""""', tmpResult);
     362
     363    assertEqualsInt('testSplitCmdLineParameter_6Quote', 0, tmpRC);
     364    assertEqualsInt('testSplitCmdLineParameter_6Quote', 1, tmpResult.Count);
     365    assertEqualsString('testSplitCmdLineParameter_6Quote', '""', tmpResult[0]);
    249366
    250367    tmpResult.Destroy;
     
    870987  BEGIN
    871988    result := TList.Create;
     989
    872990    result.add(@testSplitCmdLineParameter_Empty);
    873991    result.add(@testSplitCmdLineParameter_simpleOne);
     
    881999    result.add(@testSplitCmdLineParameter_TwoQuotedParts);
    8821000    result.add(@testSplitCmdLineParameter_TwoQuotesAtStartEnd);
     1001    result.add(@testSplitCmdLineParameter_Failure_TwoQuotesAtEnd);
    8831002    result.add(@testSplitCmdLineParameter_TwoQuotedPartsMissingClosedQuote);
     1003    result.add(@testSplitCmdLineParameter_1Quote);
     1004    result.add(@testSplitCmdLineParameter_2Quote);
     1005    result.add(@testSplitCmdLineParameter_3Quote);
     1006    result.add(@testSplitCmdLineParameter_4Quote);
     1007    result.add(@testSplitCmdLineParameter_5Quote);
     1008    result.add(@testSplitCmdLineParameter_6Quote);
    8841009
    8851010    result.add(@testParseCmdLine_Empty);
Note: See TracChangeset for help on using the changeset viewer.