Index: tests/formatting/ConvertDate.php
===================================================================
--- tests/formatting/ConvertDate.php	(revision 0)
+++ tests/formatting/ConvertDate.php	(revision 0)
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * @group formatting
+ */
+class Tests_Formatting_ConvertDate extends WP_UnitTestCase {
+    protected $originalTimezone;
+
+    public function setUp() {
+        $this->originalTimezone = get_option('timezone_string');
+        update_option('timezone_string', 'Europe/London');
+    }
+
+    public function tearDown() {
+        update_option('timezone_string', $this->originalTimezone);
+    }
+
+    /**
+     * Check that dates both inside and outside DST have the correct offset applied
+     */
+    function test_dst_respected_getting_local_date() {
+        $gmtDateOutsideDst = '2012-01-01 12:34:56';
+        $expectedDateOutsideDst = $gmtDateOutsideDst; // no offset
+
+        $this->assertSame($expectedDateOutsideDst, get_date_from_gmt($gmtDateOutsideDst));
+
+        $gmtDateInsideDst = '2012-06-01 12:34:56';
+        $expectedDateInsideDst = '2012-06-01 13:34:56';
+
+        $this->assertSame($expectedDateInsideDst, get_date_from_gmt($gmtDateInsideDst));
+    }
+
+    function test_dst_respected_getting_gmt_date() {
+        $localDateOutsideDst = '2012-01-01 12:34:56';
+        $expectedDateOutsideDst = $localDateOutsideDst; // no offset
+
+        $this->assertSame($expectedDateOutsideDst, get_gmt_from_date($localDateOutsideDst));
+
+        $localDateInsideDst = '2012-06-01 12:34:56';
+        $expectedDateInsideDst = '2012-06-01 11:34:56';
+
+        $this->assertSame($expectedDateInsideDst, get_gmt_from_date($localDateInsideDst));
+    }
+}
