From d42386e948c60932e938dc6a89e253401768cdc6 Mon Sep 17 00:00:00 2001
From: Jaime Perez Crespo <jaime.perez@uninett.no>
Date: Thu, 3 Mar 2016 16:10:47 +0100
Subject: [PATCH] Initial test for SimpleSAML\Utils\Time.

---
 lib/SimpleSAML/Utils/Time.php           |  5 +++--
 tests/lib/SimpleSAML/Utils/TimeTest.php | 21 +++++++++++++++++++++
 2 files changed, 24 insertions(+), 2 deletions(-)
 create mode 100644 tests/lib/SimpleSAML/Utils/TimeTest.php

diff --git a/lib/SimpleSAML/Utils/Time.php b/lib/SimpleSAML/Utils/Time.php
index 9898f8b50..43472e967 100644
--- a/lib/SimpleSAML/Utils/Time.php
+++ b/lib/SimpleSAML/Utils/Time.php
@@ -91,7 +91,8 @@ class Time
         }
 
         // parse the duration. We use a very strict pattern
-        $durationRegEx = '#^(-?)P(?:(?:(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)(?:[.,]\d+)?S)?)?)|(?:(\\d+)W))$#D';
+        $durationRegEx = '#^(-?)P(?:(?:(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)'.
+            '(?:[.,]\d+)?S)?)?)|(?:(\\d+)W))$#D';
         if (!preg_match($durationRegEx, $duration, $matches)) {
             throw new \InvalidArgumentException('Invalid ISO 8601 duration: '.$duration);
         }
@@ -159,4 +160,4 @@ class Time
 
         return $timestamp;
     }
-}
\ No newline at end of file
+}
diff --git a/tests/lib/SimpleSAML/Utils/TimeTest.php b/tests/lib/SimpleSAML/Utils/TimeTest.php
new file mode 100644
index 000000000..20c35f6a4
--- /dev/null
+++ b/tests/lib/SimpleSAML/Utils/TimeTest.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace SimpleSAML\Test\Utils;
+
+use SimpleSAML\Utils\Time;
+
+class TimeTest extends \PHPUnit_Framework_TestCase
+{
+
+    /**
+     * Test the SimpleSAML\Utils\Time::generateTimestamp() method.
+     */
+    public function testGenerateTimestamp()
+    {
+        // make sure passed timestamps are used
+        $this->assertEquals('2016-03-03T14:48:05Z', Time::generateTimestamp(1457016485));
+
+        // test timestamp generation for current time
+        $this->assertRegExp('/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/', Time::generateTimestamp());
+    }
+}
-- 
GitLab