diff options
author | Florian Pritz <bluewind@xinu.at> | 2015-02-05 21:49:12 +0100 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2015-02-05 21:49:12 +0100 |
commit | d3726c7c0e497def97efcf610fdcac9bbebb0f3e (patch) | |
tree | bed39120b332f763c65aa5fd63abec3941ce7bf9 /application/tests/test_api_v1.php | |
parent | db8a70bbcb941fde96a0ac98919702c49814d0c5 (diff) |
Add simple testsuite
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Diffstat (limited to 'application/tests/test_api_v1.php')
-rw-r--r-- | application/tests/test_api_v1.php | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/application/tests/test_api_v1.php b/application/tests/test_api_v1.php new file mode 100644 index 000000000..387e3fe6c --- /dev/null +++ b/application/tests/test_api_v1.php @@ -0,0 +1,118 @@ +<?php +/* + * Copyright 2015 Florian "Bluewind" Pritz <bluewind@server-speed.net> + * + * Licensed under AGPLv3 + * (see COPYING for full license text) + * + */ + +namespace tests; + +class test_api_v1 extends Test { + + private $apikeys = array(); + + public function __construct() + { + parent::__construct(); + + $CI =& get_instance(); + $CI->load->model("muser"); + $CI->load->model("mfile"); + + foreach (array(1,2,3,4,5) as $i) { + $CI->db->insert("users", array( + 'username' => "testuser-api_v1-$i", + 'password' => $CI->muser->hash_password("testpass$i"), + 'email' => "testuser$i@localhost.invalid", + 'referrer' => NULL + )); + $this->apikeys[$i] = \service\user::create_apikey($CI->db->insert_id(), "", "apikey"); + } + + } + + public function test_create_apikey_createNewKey() + { + $ret = $this->CallAPI("POST", "$this->server/api/1.0.0/user/create_apikey", array( + "username" => "testuser-api_v1-1", + "password" => "testpass1", + "access_level" => "apikey", + "comment" => "main api key", + )); + $this->expectSuccess("create-apikey", $ret); + + $this->t->isnt($ret["data"]["new_key"], "", "apikey not empty"); + } + + public function test_history_empty() + { + $ret = $this->CallAPI("POST", "$this->server/api/1.0.0/file/history", array( + "apikey" => $this->apikeys[1], + )); + $this->expectSuccess("get history", $ret); + + $this->t->ok(empty($ret["data"]["items"]), "items key exists and empty"); + $this->t->ok(empty($ret["data"]["multipaste_items"]), "multipaste_items key exists and empty"); + $this->t->is($ret["data"]["total_size"], 0, "total_size = 0 since no uploads"); + } + + public function test_get_config() + { + $ret = $this->CallAPI("POST", "$this->server/api/1.0.0/file/get_config", array( + )); + $this->expectSuccess("get_config", $ret); + + $this->t->like($ret["data"]["upload_max_size"], '/[0-9]+/', "upload_max_size is int"); + $this->t->like($ret["data"]["max_files_per_request"], '/[0-9]+/', "max_files_per_request is int"); + } + + public function test_upload_uploadFile() + { + $ret = $this->CallAPI("POST", "$this->server/api/1.0.0/file/upload", array( + "apikey" => $this->apikeys[2], + "file[1]" => curl_file_create("data/tests/small-file"), + )); + $this->expectSuccess("upload file", $ret); + + $this->t->ok(!empty($ret["data"]["ids"]), "got IDs"); + $this->t->ok(!empty($ret["data"]["urls"]), "got URLs"); + } + + public function test_history_notEmptyAfterUpload() + { + $ret = $this->CallAPI("POST", "$this->server/api/1.0.0/file/upload", array( + "apikey" => $this->apikeys[3], + "file[1]" => curl_file_create("data/tests/small-file"), + )); + $this->expectSuccess("upload file", $ret); + + $ret = $this->CallAPI("POST", "$this->server/api/1.0.0/file/history", array( + "apikey" => $this->apikeys[3], + )); + $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"], filesize("data/tests/small-file"), "total_size == uploaded file"); + } + + public function test_history_notSharedBetweenUsers() + { + $ret = $this->CallAPI("POST", "$this->server/api/1.0.0/file/upload", array( + "apikey" => $this->apikeys[4], + "file[1]" => curl_file_create("data/tests/small-file"), + )); + $this->expectSuccess("upload file", $ret); + + $ret = $this->CallAPI("POST", "$this->server/api/1.0.0/file/history", array( + "apikey" => $this->apikeys[5], + )); + $this->expectSuccess("get history", $ret); + + $this->t->ok(empty($ret["data"]["items"]), "items key exists and empty"); + $this->t->ok(empty($ret["data"]["multipaste_items"]), "multipaste_items key exists and empty"); + $this->t->is($ret["data"]["total_size"], 0, "total_size = 0 since no uploads"); + } +} |