generated from RedHatInsights/insights-report-server
/
entrypoint.go
62 lines (53 loc) · 2 KB
/
entrypoint.go
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
/*
Copyright © 2020 Red Hat, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Package tests contains REST API tests for following endpoints:
//
// apiPrefix
package tests
import (
"github.com/verdverm/frisby"
)
// checkRestAPIEntryPoint check if the entry point (usually /api/v1/) responds correctly to HTTP GET command
func checkRestAPIEntryPoint() {
f := frisby.Create("Check the entry point to REST API using HTTP GET method").Get(apiURL)
setAuthHeader(f)
f.Send()
f.ExpectStatus(200)
f.ExpectHeader(contentTypeHeader, ContentTypeJSON)
f.PrintReport()
}
// checkNonExistentEntryPoint check whether non-existing endpoints are handled properly (HTTP code 404 etc.)
func checkNonExistentEntryPoint() {
f := frisby.Create("Check the non-existent entry point to REST API").Get(apiURL + "foobar")
setAuthHeader(f)
f.Send()
f.ExpectStatus(404)
f.ExpectHeader(contentTypeHeader, ContentTypeText)
f.PrintReport()
}
// checkWrongEntryPoint check whether wrongly specified URLs are handled correctly
func checkWrongEntryPoint() {
postfixes := [...]string{"..", "../", "...", "..?", "..?foobar"}
for _, postfix := range postfixes {
f := frisby.Create("Check the wrong entry point to REST API with postfix '" + postfix + "'").Get(apiURL + postfix)
setAuthHeader(f)
f.Send()
f.ExpectStatus(404)
f.ExpectHeader(contentTypeHeader, ContentTypeText)
f.PrintReport()
}
}
// check whether other HTTP methods are rejected correctly for the REST API entry point
func checkWrongMethodsForEntryPoint() {
checkGetEndpointByOtherMethods(apiURL, true)
}