2019-10-31 09:27:28 +08:00
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
#
2019-09-10 09:42:55 +08:00
use t::APISIX 'no_plan' ;
2019-07-01 13:29:21 +08:00
repeat_each ( 1 ) ;
no_long_string ( ) ;
no_root_location ( ) ;
no_shuffle ( ) ;
log_level ( "info" ) ;
2020-11-30 10:32:35 +08:00
add_block_preprocessor ( sub {
my ( $ block ) = @ _ ;
if ( ! defined $ block - > request ) {
$ block - > set_value ( "request" , "GET /t" ) ;
}
$ block ;
} ) ;
2019-07-01 13:29:21 +08:00
run_tests ;
__DATA__
=== TEST 1 : get plugins ' name
- - - request
GET /apisix/ admin /plugins/ list
2019-07-24 16:59:37 +08:00
- - - response_body_like eval
2020-12-04 22:25:11 +08:00
qr/\["zipkin","request-id","fault-injection","serverless-pre-function","batch-requests","cors","ip-restriction","referer-restriction","uri-blocker","request-validation","openid-connect","wolf-rbac","hmac-auth","basic-auth","jwt-auth","key-auth","consumer-restriction","authz-keycloak","proxy-mirror","proxy-cache","proxy-rewrite","api-breaker","limit-conn","limit-count","limit-req","redirect","response-rewrite","grpc-transcode","prometheus","echo","http-logger","sls-logger","tcp-logger","kafka-logger","syslog","udp-logger","example-plugin","serverless-post-function"\]/
2019-07-01 13:29:21 +08:00
- - - no_error_log
[ error ]
2020-02-28 16:26:39 +08:00
=== TEST 2 : wrong path
- - - request
GET /apisix/ admin / plugins
- - - error_code: 400
- - - response_body
{ "error_msg" : "not found plugin name" }
- - - no_error_log
[ error ]
=== TEST 3 : get plugin schema
2020-11-30 10:32:35 +08:00
- - - config
location / t {
content_by_lua_block {
local t = require ( "lib.test_admin" ) . test
local code , body = t ( '/apisix/admin/plugins/limit-req' ,
ngx . HTTP_GET ,
nil ,
[ [
2020-10-06 18:18:22 +08:00
{ "properties" : { "rate" : { "minimum" : 0 , "type" : "number" } , "burst" : { "minimum" : 0 , "type" : "number" } , "key" : { "enum" : [ "remote_addr" , "server_addr" , "http_x_real_ip" , "http_x_forwarded_for" , "consumer_name" ] , "type" : "string" } , "rejected_code" : { "type" : "integer" , "default" : 503 , "minimum" : 200 } } , "required" : [ "rate" , "burst" , "key" ] , "type" : "object" }
2020-11-30 10:32:35 +08:00
] ]
)
ngx . status = code
}
}
2020-02-28 16:26:39 +08:00
- - - no_error_log
[ error ]
2020-03-14 09:34:34 +08:00
=== TEST 4 : get plugin node - status schema
2020-12-04 22:25:11 +08:00
- - - extra_yaml_config
plugins:
- node - status
2020-11-30 10:32:35 +08:00
- - - config
location / t {
content_by_lua_block {
local t = require ( "lib.test_admin" ) . test
local code , body = t ( '/apisix/admin/plugins/node-status' ,
ngx . HTTP_GET ,
nil ,
[ [
2020-09-17 22:31:02 +08:00
{ "properties" : { "disable" : { "type" : "boolean" } } , "additionalProperties" : false , "type" : "object" }
2020-11-30 10:32:35 +08:00
] ]
)
ngx . status = code
}
}
2020-03-14 09:34:34 +08:00
- - - no_error_log
2020-09-17 22:31:02 +08:00
[ error ]
=== TEST 5 : get plugin prometheus schema
2020-11-30 10:32:35 +08:00
- - - config
location / t {
content_by_lua_block {
local t = require ( "lib.test_admin" ) . test
local code , body = t ( '/apisix/admin/plugins/prometheus' ,
ngx . HTTP_GET ,
nil ,
[ [
2020-09-17 22:31:02 +08:00
{ "properties" : { "disable" : { "type" : "boolean" } } , "additionalProperties" : false , "type" : "object" }
2020-11-30 10:32:35 +08:00
] ]
)
ngx . status = code
}
}
2020-09-17 22:31:02 +08:00
- - - no_error_log
[ error ]
2020-10-29 09:26:59 +08:00
=== TEST 6 : get plugin basic - auth schema
2020-11-30 10:32:35 +08:00
- - - config
location / t {
content_by_lua_block {
local t = require ( "lib.test_admin" ) . test
local code , body = t ( '/apisix/admin/plugins/basic-auth' ,
ngx . HTTP_GET ,
nil ,
[ [
2020-10-29 09:26:59 +08:00
{ "properties" : { "disable" : { "type" : "boolean" } } , "title" : "work with route or service object" , "additionalProperties" : false , "type" : "object" }
2020-11-30 10:32:35 +08:00
] ]
)
ngx . status = code
}
}
2020-10-29 09:26:59 +08:00
- - - no_error_log
[ error ]
=== TEST 7 : get plugin basic - auth schema by schema_type
2020-11-30 10:32:35 +08:00
- - - config
location / t {
content_by_lua_block {
local t = require ( "lib.test_admin" ) . test
local code , body = t ( '/apisix/admin/plugins/basic-auth?schema_type=consumer' ,
ngx . HTTP_GET ,
nil ,
[ [
2020-10-29 09:26:59 +08:00
{ "title" : "work with consumer object" , "additionalProperties" : false , "required" : [ "username" , "password" ] , "properties" : { "username" : { "type" : "string" } , "password" : { "type" : "string" } } , "type" : "object" }
2020-11-30 10:32:35 +08:00
] ]
)
ngx . status = code
}
}
2020-10-29 09:26:59 +08:00
- - - no_error_log
[ error ]