Home | History | Annotate | Download | only in VCSUtils_unittest
      1 #!/usr/bin/perl -w
      2 #
      3 # Copyright (C) 2010 Chris Jerdonek (cjerdonek (at] webkit.org)
      4 #
      5 # Redistribution and use in source and binary forms, with or without
      6 # modification, are permitted provided that the following conditions
      7 # are met:
      8 # 1.  Redistributions of source code must retain the above copyright
      9 #     notice, this list of conditions and the following disclaimer.
     10 # 2.  Redistributions in binary form must reproduce the above copyright
     11 #     notice, this list of conditions and the following disclaimer in the
     12 #     documentation and/or other materials provided with the distribution.
     13 #
     14 # THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
     15 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     16 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     17 # DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
     18 # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     19 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     20 # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     21 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     22 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     23 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     24 
     25 # Unit tests of setChangeLogDateAndReviewer().
     26 
     27 use strict;
     28 use warnings;
     29 
     30 use Test::More;
     31 use VCSUtils;
     32 
     33 my @testCaseHashRefs = (
     34 {
     35     testName => "reviewer defined and \"NOBODY (OOPS!)\" in leading junk",
     36     reviewer => "John Doe",
     37     epochTime => 1273414321,
     38     patch => <<'END',
     39 Subject: [PATCH]
     40 
     41 Reviewed by NOBODY (OOPS!).
     42 
     43 diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
     44 --- a/WebCore/ChangeLog
     45 +++ b/WebCore/ChangeLog
     46 @@ -1,3 +1,15 @@
     47 +2010-05-08  Chris Jerdonek  <cjerdonek@webkit.org>
     48 +
     49 +        Reviewed by NOBODY (OOPS!).
     50 +
     51  2010-05-08  Chris Jerdonek  <cjerdonek@webkit.org>
     52 
     53          Reviewed by Jane Doe.
     54 END
     55     expectedReturn => <<'END',
     56 Subject: [PATCH]
     57 
     58 Reviewed by NOBODY (OOPS!).
     59 
     60 diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
     61 --- a/WebCore/ChangeLog
     62 +++ b/WebCore/ChangeLog
     63 @@ -1,3 +1,15 @@
     64 +2010-05-09  Chris Jerdonek  <cjerdonek@webkit.org>
     65 +
     66 +        Reviewed by John Doe.
     67 +
     68  2010-05-08  Chris Jerdonek  <cjerdonek@webkit.org>
     69 
     70          Reviewed by Jane Doe.
     71 END
     72 },
     73 {
     74     testName => "reviewer not defined and \"NOBODY (OOPS!)\" in leading junk",
     75     reviewer => undef,
     76     epochTime => 1273414321,
     77     patch => <<'END',
     78 Subject: [PATCH]
     79 
     80 Reviewed by NOBODY (OOPS!).
     81 
     82 diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
     83 --- a/WebCore/ChangeLog
     84 +++ b/WebCore/ChangeLog
     85 @@ -1,3 +1,15 @@
     86 +2010-05-08  Chris Jerdonek  <cjerdonek@webkit.org>
     87 +
     88 +        Reviewed by NOBODY (OOPS!).
     89 +
     90  2010-05-08  Chris Jerdonek  <cjerdonek@webkit.org>
     91 
     92          Reviewed by Jane Doe.
     93 END
     94     expectedReturn => <<'END',
     95 Subject: [PATCH]
     96 
     97 Reviewed by NOBODY (OOPS!).
     98 
     99 diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
    100 --- a/WebCore/ChangeLog
    101 +++ b/WebCore/ChangeLog
    102 @@ -1,3 +1,15 @@
    103 +2010-05-09  Chris Jerdonek  <cjerdonek@webkit.org>
    104 +
    105 +        Reviewed by NOBODY (OOPS!).
    106 +
    107  2010-05-08  Chris Jerdonek  <cjerdonek@webkit.org>
    108 
    109          Reviewed by Jane Doe.
    110 END
    111 },
    112 );
    113 
    114 my $testCasesCount = @testCaseHashRefs;
    115 plan(tests => 1 * $testCasesCount); # Total number of assertions.
    116 
    117 foreach my $testCase (@testCaseHashRefs) {
    118     my $testNameStart = "setChangeLogDateAndReviewer(): $testCase->{testName}: comparing";
    119 
    120     my $patch = $testCase->{patch};
    121     my $reviewer = $testCase->{reviewer};
    122     my $epochTime = $testCase->{epochTime};
    123 
    124     my $got = VCSUtils::setChangeLogDateAndReviewer($patch, $reviewer, $epochTime);
    125     my $expectedReturn = $testCase->{expectedReturn};
    126 
    127     is($got, $expectedReturn, "$testNameStart return value.");
    128 }
    129