Merge branch 'master' of git://git.evergreen-ils.org/OpenSRF
authorEquinox <info@esilibrary.com>
Thu, 4 Feb 2016 16:36:01 +0000 (11:36 -0500)
committerEquinox <info@esilibrary.com>
Thu, 4 Feb 2016 16:36:01 +0000 (11:36 -0500)
src/perl/lib/OpenSRF/Utils.pm
src/perl/t/09-Utils-interval_to_seconds.t [new file with mode: 0644]

index 61596d0..bb6858a 100644 (file)
@@ -261,11 +261,11 @@ sub interval_to_seconds {
         while ($interval =~ /\s*([\+-]?)\s*(\d+)\s*(\w+)\s*/g) {
                my ($sign, $count, $type) = ($1, $2, $3);
                $count = "$sign$count" if ($sign);
-                $amount += $count if ($type eq 's');
+                $amount += $count if ($type =~ /^s/);
                 $amount += 60 * $count if ($type =~ /^m(?!o)/oi);
                 $amount += 60 * 60 * $count if ($type =~ /^h/);
                 $amount += 60 * 60 * 24 * $count if ($type =~ /^d/oi);
-                $amount += 60 * 60 * 24 * 7 * $count if (defined $2 && $2 =~ /^w/oi);
+                $amount += 60 * 60 * 24 * 7 * $count if ($type =~ /^w/oi);
                 $amount += ((60 * 60 * 24 * 365)/12) * $count if ($type =~ /^mo/io);
                 $amount += 60 * 60 * 24 * 365 * $count if ($type =~ /^y/oi);
         }
diff --git a/src/perl/t/09-Utils-interval_to_seconds.t b/src/perl/t/09-Utils-interval_to_seconds.t
new file mode 100644 (file)
index 0000000..4328fe2
--- /dev/null
@@ -0,0 +1,16 @@
+#!perl -T
+
+use Test::More tests => 9;
+
+BEGIN {
+       use_ok( 'OpenSRF::Utils' );
+}
+
+is (OpenSRF::Utils::interval_to_seconds('1 second'), 1);
+is (OpenSRF::Utils::interval_to_seconds('1 minute'), 60);
+is (OpenSRF::Utils::interval_to_seconds('1 hour'), 3600);
+is (OpenSRF::Utils::interval_to_seconds('1 day'), 86400);
+is (OpenSRF::Utils::interval_to_seconds('1 week'), 604800);
+is (OpenSRF::Utils::interval_to_seconds('1 month'), 2628000);
+is (OpenSRF::Utils::interval_to_seconds('1 year'), 31536000);
+is (OpenSRF::Utils::interval_to_seconds('1 year 1 second'), 31536001);