From a3210275b113663cd4f2133ed81bae308f63dff2 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Sun, 17 May 2015 23:32:28 +0200 Subject: test: different files with same checksum Signed-off-by: Florian Pritz --- application/tests/Test.php | 22 ++++++++++++++-------- application/tests/test_api_v1.php | 19 +++++++++++++++++++ data/tests/message1.bin | Bin 0 -> 64 bytes data/tests/message2.bin | 1 + 4 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 data/tests/message1.bin create mode 100644 data/tests/message2.bin diff --git a/application/tests/Test.php b/application/tests/Test.php index b9f401bdf..c11cd0cc4 100644 --- a/application/tests/Test.php +++ b/application/tests/Test.php @@ -42,6 +42,19 @@ abstract class Test { // Data: array("param" => "value") ==> index.php?param=value // Source: http://stackoverflow.com/a/9802854/953022 protected function CallAPI($method, $url, $data = false) + { + $result = $this->SendHTTPRequest($method, $url, $data); + + $json = json_decode($result, true); + if ($json === NULL) { + $this->t->fail("json decode"); + $this->diagReply($result); + } + + return $json; + } + + protected function SendHTTPRequest($method, $url, $data = false) { $curl = curl_init(); @@ -70,14 +83,7 @@ abstract class Test { $result = curl_exec($curl); curl_close($curl); - - $json = json_decode($result, true); - if ($json === NULL) { - $this->t->fail("json decode"); - $this->diagReply($result); - } - - return $json; + return $result; } protected function excpectStatus($testname, $reply, $status) diff --git a/application/tests/test_api_v1.php b/application/tests/test_api_v1.php index b39d5d44c..378f741de 100644 --- a/application/tests/test_api_v1.php +++ b/application/tests/test_api_v1.php @@ -245,6 +245,25 @@ class test_api_v1 extends Test { $this->t->ok(!empty($ret["data"]["urls"]), "got URLs"); } + public function test_upload_uploadFileSameMD5() + { + $apikey = $this->createUserAndApikey(); + $ret = $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"), + )); + $this->expectSuccess("upload file", $ret); + + $this->t->ok(!empty($ret["data"]["ids"]), "got IDs"); + $this->t->ok(!empty($ret["data"]["urls"]), "got URLs"); + + foreach ($ret["data"]["urls"] as $url) { + $data[] = $this->SendHTTPRequest("GET", $url, ''); + } + $this->t->ok($data[0] !== $data[1], 'Returned file contents should differ'); + } + public function test_upload_uploadNothing() { $apikey = $this->createUserAndApikey(); diff --git a/data/tests/message1.bin b/data/tests/message1.bin new file mode 100644 index 000000000..2df129a78 Binary files /dev/null and b/data/tests/message1.bin differ diff --git a/data/tests/message2.bin b/data/tests/message2.bin new file mode 100644 index 000000000..dfaf4d1e9 --- /dev/null +++ b/data/tests/message2.bin @@ -0,0 +1 @@ +MÉhÿã\ •rÔw{r‡Óo§²ÜV·J=Àx>{•¯¿¢¨(KónŽKU³_Bu“ØIgm ÑÕ]ƒ`û_þ¢ \ No newline at end of file -- cgit v1.2.3-24-g4f1b