diff options
author | Florian Pritz <bluewind@xinu.at> | 2015-05-21 18:40:22 +0200 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2015-05-21 18:43:13 +0200 |
commit | 7fccbf5fd1919a9c8ae14d2f39a55de8eee64de5 (patch) | |
tree | d6d7f7926de7330a0d6df8e0f4736c90d4cd6ad1 | |
parent | 4dbd81cbdea371b98c1195bfb46d4ec60a4dd82c (diff) |
Calc correct total size for history with duplicate hashes
Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rw-r--r-- | application/service/files.php | 3 | ||||
-rw-r--r-- | application/test/tests/test_api_v1.php | 20 |
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(); |