1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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");
}
}
|