@@ -7,6 +7,7 @@ package integrations
7
7
import (
8
8
"fmt"
9
9
"net/http"
10
+ "net/url"
10
11
"testing"
11
12
12
13
"code.gitea.io/gitea/models"
@@ -120,3 +121,47 @@ func TestAPIEditIssue(t *testing.T) {
120
121
assert .Equal (t , body , issueAfter .Content )
121
122
assert .Equal (t , title , issueAfter .Title )
122
123
}
124
+
125
+ func TestAPISearchIssue (t * testing.T ) {
126
+ defer prepareTestEnv (t )()
127
+
128
+ session := loginUser (t , "user2" )
129
+ token := getTokenForLoggedInUser (t , session )
130
+
131
+ link , _ := url .Parse ("/api/v1/repos/issues/search" )
132
+ req := NewRequest (t , "GET" , link .String ())
133
+ resp := session .MakeRequest (t , req , http .StatusOK )
134
+ var apiIssues []* api.Issue
135
+ DecodeJSON (t , resp , & apiIssues )
136
+
137
+ assert .Len (t , apiIssues , 8 )
138
+
139
+ query := url.Values {}
140
+ query .Add ("token" , token )
141
+ link .RawQuery = query .Encode ()
142
+ req = NewRequest (t , "GET" , link .String ())
143
+ resp = session .MakeRequest (t , req , http .StatusOK )
144
+ DecodeJSON (t , resp , & apiIssues )
145
+ assert .Len (t , apiIssues , 8 )
146
+
147
+ query .Add ("state" , "closed" )
148
+ link .RawQuery = query .Encode ()
149
+ req = NewRequest (t , "GET" , link .String ())
150
+ resp = session .MakeRequest (t , req , http .StatusOK )
151
+ DecodeJSON (t , resp , & apiIssues )
152
+ assert .Len (t , apiIssues , 2 )
153
+
154
+ query .Set ("state" , "all" )
155
+ link .RawQuery = query .Encode ()
156
+ req = NewRequest (t , "GET" , link .String ())
157
+ resp = session .MakeRequest (t , req , http .StatusOK )
158
+ DecodeJSON (t , resp , & apiIssues )
159
+ assert .Len (t , apiIssues , 10 ) //there are more but 10 is page item limit
160
+
161
+ query .Add ("page" , "2" )
162
+ link .RawQuery = query .Encode ()
163
+ req = NewRequest (t , "GET" , link .String ())
164
+ resp = session .MakeRequest (t , req , http .StatusOK )
165
+ DecodeJSON (t , resp , & apiIssues )
166
+ assert .Len (t , apiIssues , 0 )
167
+ }
0 commit comments