1#!/usr/bin/perl -w 2# 3# Copyright (C) 2010 Chris Jerdonek (cjerdonek@webkit.org) 4# Copyright (C) 2010 Research In Motion Limited. All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions 8# are met: 9# 1. Redistributions of source code must retain the above copyright 10# notice, this list of conditions and the following disclaimer. 11# 2. Redistributions in binary form must reproduce the above copyright 12# notice, this list of conditions and the following disclaimer in the 13# documentation and/or other materials provided with the distribution. 14# 15# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND 16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR 19# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 21# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 22# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 23# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 24# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 26# Unit tests for setChangeLogDateAndReviewer(fixChangeLogPatch()). 27 28use strict; 29use warnings; 30 31use Test::More; 32use VCSUtils; 33 34my @testCaseHashRefs = ( 35{ 36 testName => "New entry inserted earlier in the file, but after an entry with the same author and date, patch applied a day later.", 37 reviewer => "Sue", 38 epochTime => 1273414321, 39 patch => <<'END', 40--- ChangeLog 41+++ ChangeLog 42@@ -70,6 +70,14 @@ 43 44 2010-05-08 Alice <alice@email.address> 45 46+ Reviewed by NOBODY (OOPS!). 47+ 48+ Changed some more code on 2010-05-08. 49+ 50+ * File: 51+ 52+2010-05-08 Alice <alice@email.address> 53+ 54 Reviewed by Ray. 55 56 Changed some code on 2010-05-08. 57END 58 expectedReturn => <<'END', 59--- ChangeLog 60+++ ChangeLog 61@@ -1,3 +1,11 @@ 62+2010-05-09 Alice <alice@email.address> 63+ 64+ Reviewed by Sue. 65+ 66+ Changed some more code on 2010-05-08. 67+ 68+ * File: 69+ 70 2010-05-08 Alice <alice@email.address> 71 72 Reviewed by Ray. 73END 74}, 75); 76 77my $testCasesCount = @testCaseHashRefs; 78plan(tests => 1 * $testCasesCount); # Total number of assertions. 79 80foreach my $testCase (@testCaseHashRefs) { 81 my $testNameStart = "setChangeLogDateAndReviewer(fixChangeLogPatch()): $testCase->{testName}: comparing"; 82 83 my $patch = $testCase->{patch}; 84 my $reviewer = $testCase->{reviewer}; 85 my $epochTime = $testCase->{epochTime}; 86 87 my $fixedChangeLog = VCSUtils::fixChangeLogPatch($patch); 88 my $got = VCSUtils::setChangeLogDateAndReviewer($fixedChangeLog->{patch}, $reviewer, $epochTime); 89 my $expectedReturn = $testCase->{expectedReturn}; 90 91 is($got, $expectedReturn, "$testNameStart return value."); 92} 93