diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_core.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/test_core.c b/tests/test_core.c index b2c828d..5960665 100644 --- a/tests/test_core.c +++ b/tests/test_core.c @@ -540,6 +540,12 @@ int main(void) CHECK(db_exec(g_db, "DELETE FROM audit_log", &err) != 0); free(err); + d = call(reqf("{\"v\":1,\"id\":\"27\",\"cmd\":\"backup.snapshot\"," + "\"session\":\"%s\"}", + ro_session)); + CHECK_STR(d, "error.code", "FORBIDDEN"); + yyjson_doc_free(d); + d = call(reqf("{\"v\":1,\"id\":\"28\",\"cmd\":\"backup.snapshot\"," "\"session\":\"%s\"}", g_session)); @@ -548,6 +554,30 @@ int main(void) CHECK(jstr(d, "result.sha256") && strlen(jstr(d, "result.sha256")) == 64); yyjson_doc_free(d); + d = call(reqf("{\"v\":1,\"id\":\"28b\",\"cmd\":\"token.create\"," + "\"session\":\"%s\",\"org\":%d,\"args\":" + "{\"label\":\"backup\",\"scopes\":[\"admin\"]}}", + g_session, (int)org_id)); + CHECK_OK(d); + char backup_token[128] = ""; + snprintf(backup_token, sizeof backup_token, "%s", jstr(d, "result.token")); + yyjson_doc_free(d); + + d = call(reqf("{\"v\":1,\"id\":\"28c\",\"cmd\":\"session.open\",\"args\":" + "{\"method\":\"token\",\"token\":\"%s\"}}", + backup_token)); + CHECK_OK(d); + char backup_session[128] = ""; + snprintf(backup_session, sizeof backup_session, "%s", + jstr(d, "result.session")); + yyjson_doc_free(d); + + d = call(reqf("{\"v\":1,\"id\":\"28d\",\"cmd\":\"backup.snapshot\"," + "\"session\":\"%s\",\"args\":{\"dest\":\"%s/snap-token.db\"}}", + backup_session, tmpdir)); + CHECK_OK(d); + yyjson_doc_free(d); + d = call(reqf("{\"v\":1,\"id\":\"29\",\"cmd\":\"describe\"," "\"session\":\"%s\"}", g_session)); |
