summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2015-05-21 18:40:22 +0200
committerFlorian Pritz <bluewind@xinu.at>2015-05-21 18:43:13 +0200
commit7fccbf5fd1919a9c8ae14d2f39a55de8eee64de5 (patch)
treed6d7f7926de7330a0d6df8e0f4736c90d4cd6ad1
parent4dbd81cbdea371b98c1195bfb46d4ec60a4dd82c (diff)
Calc correct total size for history with duplicate hashes
Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rw-r--r--application/service/files.php3
-rw-r--r--application/test/tests/test_api_v1.php20
2 files changed, 22 insertions, 1 deletions
diff --git a/application/service/files.php b/application/service/files.php
index ef1de2911..5e0dd140b 100644
--- a/application/service/files.php
+++ b/application/service/files.php
@@ -30,10 +30,11 @@ class files {
$total_size = $CI->db->query("
SELECT coalesce(sum(filesize), 0) sum
FROM (
- SELECT DISTINCT hash, filesize
+ SELECT DISTINCT `".$CI->db->dbprefix."file_storage`.id, filesize
FROM `".$CI->db->dbprefix."file_storage`
JOIN `".$CI->db->dbprefix."files` ON `".$CI->db->dbprefix."file_storage`.id = `".$CI->db->dbprefix."files`.file_storage_id
WHERE user = ?
+
) sub
", array($user))->row_array();
diff --git a/application/test/tests/test_api_v1.php b/application/test/tests/test_api_v1.php
index cdac30544..bc311f8e5 100644
--- a/application/test/tests/test_api_v1.php
+++ b/application/test/tests/test_api_v1.php
@@ -278,6 +278,26 @@ class test_api_v1 extends \test\Test {
), $ret, "expected reply");
}
+ public function test_history_notEmptyAfterUploadSameMD5()
+ {
+ $apikey = $this->createUserAndApikey();
+ $this->CallEndpoint("POST", "file/upload", array(
+ "apikey" => $apikey,
+ "file[1]" => curl_file_create("data/tests/message1.bin"),
+ "file[2]" => curl_file_create("data/tests/message2.bin"),
+ ));
+ $expected_filesize = filesize("data/tests/message1.bin") + filesize("data/tests/message2.bin");
+
+ $ret = $this->CallEndpoint("POST", "file/history", array(
+ "apikey" => $apikey,
+ ));
+ $this->expectSuccess("history not empty after upload", $ret);
+
+ $this->t->ok(!empty($ret["data"]["items"]), "history not empty after upload (items)");
+ $this->t->ok(empty($ret["data"]["multipaste_items"]), "didn't upload multipaste");
+ $this->t->is($ret["data"]["total_size"], $expected_filesize, "total_size == uploaded files");
+ }
+
public function test_history_notEmptyAfterUpload()
{
$apikey = $this->createUserAndApikey();