From 4def61cfe42f331ab696463fa2fa4cfc452df23b Mon Sep 17 00:00:00 2001
From: Andreas Gohr <andi@splitbrain.org>
Date: Sat, 16 Feb 2013 13:27:57 +0100
Subject: [PATCH] test for media downloading (related to FS#2675

---
 _test/tests/inc/media_get_from_url.test.php | 80 +++++++++++++++++++++
 1 file changed, 80 insertions(+)
 create mode 100644 _test/tests/inc/media_get_from_url.test.php

diff --git a/_test/tests/inc/media_get_from_url.test.php b/_test/tests/inc/media_get_from_url.test.php
new file mode 100644
index 000000000..3903b8a05
--- /dev/null
+++ b/_test/tests/inc/media_get_from_url.test.php
@@ -0,0 +1,80 @@
+<?php
+
+class media_get_from_url_test extends DokuWikiTest {
+
+    /**
+     * @group internet
+     */
+    public function test_cache(){
+        global $conf;
+        $conf['fetchsize'] = 500*1024; //500kb
+
+
+        $local = media_get_from_URL('http://www.google.com/images/srpr/logo3w.png','png',-1);
+        $this->assertTrue($local !== false);
+        $this->assertFileExists($local);
+
+        // remember time stamp
+        $time = filemtime($local);
+        clearstatcache(false, $local);
+        sleep(1);
+
+        // fetch again and make sure we got a cache file
+        $local = media_get_from_URL('http://www.google.com/images/srpr/logo3w.png','png',-1);
+        clearstatcache(false, $local);
+        $this->assertTrue($local !== false);
+        $this->assertFileExists($local);
+        $this->assertEquals($time, filemtime($local));
+
+        unlink($local);
+    }
+
+    /**
+     * @group internet
+     */
+    public function test_nocache(){
+        global $conf;
+        $conf['fetchsize'] = 500*1024; //500kb
+
+        $local = media_get_from_URL('http://www.google.com/images/srpr/logo3w.png','png',0);
+        $this->assertFalse($local);
+    }
+
+    /**
+     * @group internet
+     * @group slow
+     */
+    public function test_recache(){
+        global $conf;
+        $conf['fetchsize'] = 500*1024; //500kb
+
+
+        $local = media_get_from_URL('http://www.google.com/images/srpr/logo3w.png','png',5);
+        $this->assertTrue($local !== false);
+        $this->assertFileExists($local);
+
+        // remember time stamp
+        $time = filemtime($local);
+        clearstatcache(false, $local);
+        sleep(1);
+
+        // fetch again and make sure we got a cache file
+        $local = media_get_from_URL('http://www.google.com/images/srpr/logo3w.png','png',5);
+        clearstatcache(false, $local);
+        $this->assertTrue($local !== false);
+        $this->assertFileExists($local);
+        $this->assertEquals($time, filemtime($local));
+
+        clearstatcache(false, $local);
+        sleep(6);
+
+        // fetch again and make sure we got a new file
+        $local = media_get_from_URL('http://www.google.com/images/srpr/logo3w.png','png',5);
+        clearstatcache(false, $local);
+        $this->assertTrue($local !== false);
+        $this->assertFileExists($local);
+        $this->assertNotEquals($time, filemtime($local));
+
+        unlink($local);
+    }
+}
\ No newline at end of file
-- 
GitLab