Shuffle RESTful URL's around.

This patch moves the RESTful URL's around to more appropriate
locations for release.

The /stasis URL's are moved to /ari, since Asterisk REST Interface was
a more appropriate name than Stasis-HTTP. (Most of the code still has
stasis_http references, but they will be cleaned up after there are no
more outstanding branches that would have merge conflicts with such a
change).

A larger change was moving the ARI events WebSocket off of the shared
/ws URL to its permanent home on /ari/events. The Swagger code
generator was extended to handle "upgrade: websocket" and
"websocketProtocol:" attributes on an operation.

The WebSocket module was modified to better handle WebSocket servers
that have a single registered protocol handler. If a client
connections does not specify the Sec-WebSocket-Protocol header, and
the server has a single protocol handler registered, the WebSocket
server will go ahead and accept the client for that subprotocol.

(closes issue ASTERISK-21857)
Review: https://reviewboard.asterisk.org/r/2621/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393528 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
David M. Lee
2013-07-03 16:32:00 +00:00
parent 85ba063329
commit dcf03554a0
33 changed files with 976 additions and 417 deletions

View File

@@ -223,7 +223,7 @@ AST_TEST_DEFINE(get_docs)
basePathJson = ast_json_object_get(response->message, "basePath");
ast_test_validate(test, NULL != basePathJson);
basePath = ast_json_string_get(basePathJson);
ast_test_validate(test, 0 == strcmp("http://stasis.asterisk.org/stasis", basePath));
ast_test_validate(test, 0 == strcmp("http://stasis.asterisk.org/ari", basePath));
return AST_TEST_PASS;
}
@@ -343,7 +343,7 @@ AST_TEST_DEFINE(invoke_get)
"head2", "head-two",
"path_vars");
stasis_http_invoke("foo", AST_HTTP_GET, get_params, headers, response);
stasis_http_invoke(NULL, "foo", AST_HTTP_GET, get_params, headers, response);
ast_test_validate(test, 1 == invocation_count);
ast_test_validate(test, 200 == response->response_code);
@@ -380,7 +380,7 @@ AST_TEST_DEFINE(invoke_wildcard)
"path_vars",
"bam", "foshizzle");
stasis_http_invoke("foo/foshizzle", AST_HTTP_GET, get_params, headers, response);
stasis_http_invoke(NULL, "foo/foshizzle", AST_HTTP_GET, get_params, headers, response);
ast_test_validate(test, 1 == invocation_count);
ast_test_validate(test, 200 == response->response_code);
@@ -417,7 +417,7 @@ AST_TEST_DEFINE(invoke_delete)
"path_vars",
"bam", "foshizzle");
stasis_http_invoke("foo/foshizzle/bang", AST_HTTP_DELETE, get_params, headers, response);
stasis_http_invoke(NULL, "foo/foshizzle/bang", AST_HTTP_DELETE, get_params, headers, response);
ast_test_validate(test, 1 == invocation_count);
ast_test_validate(test, 204 == response->response_code);
@@ -467,7 +467,7 @@ AST_TEST_DEFINE(invoke_post)
"head2", "head-two",
"path_vars");
stasis_http_invoke("foo/bar", AST_HTTP_POST, get_params, headers, response);
stasis_http_invoke(NULL, "foo/bar", AST_HTTP_POST, get_params, headers, response);
ast_test_validate(test, 1 == invocation_count);
ast_test_validate(test, 200 == response->response_code);
@@ -496,7 +496,7 @@ AST_TEST_DEFINE(invoke_bad_post)
fixture = setup_invocation_test();
response = response_alloc();
stasis_http_invoke("foo", AST_HTTP_POST, get_params, headers, response);
stasis_http_invoke(NULL, "foo", AST_HTTP_POST, get_params, headers, response);
ast_test_validate(test, 0 == invocation_count);
ast_test_validate(test, 405 == response->response_code);
@@ -524,7 +524,7 @@ AST_TEST_DEFINE(invoke_not_found)
fixture = setup_invocation_test();
response = response_alloc();
stasis_http_invoke("foo/fizzle/i-am-not-a-resource", AST_HTTP_GET, get_params, headers, response);
stasis_http_invoke(NULL, "foo/fizzle/i-am-not-a-resource", AST_HTTP_GET, get_params, headers, response);
ast_test_validate(test, 0 == invocation_count);
ast_test_validate(test, 404 == response->response_code);

View File

@@ -421,6 +421,42 @@ AST_TEST_DEFINE(agi_loaded_test)
return res;
}
AST_TEST_DEFINE(crypt_test)
{
RAII_VAR(char *, password_crypted, NULL, ast_free);
RAII_VAR(char *, blank_crypted, NULL, ast_free);
const char *password = "Passw0rd";
const char *not_a_password = "not-a-password";
switch (cmd) {
case TEST_INIT:
info->name = "crypt_test";
info->category = "/main/utils/";
info->summary = "Test ast_crypt wrappers";
info->description = "Verifies that the ast_crypt wrappers work as expected.";
return AST_TEST_NOT_RUN;
case TEST_EXECUTE:
break;
}
password_crypted = ast_crypt_encrypt(password);
ast_test_validate(test, NULL != password_crypted);
ast_test_validate(test, 0 != strcmp(password, password_crypted));
ast_test_validate(test, ast_crypt_validate(password, password_crypted));
ast_test_validate(test,
!ast_crypt_validate(not_a_password, password_crypted));
blank_crypted = ast_crypt_encrypt("");
ast_test_validate(test, NULL != blank_crypted);
ast_test_validate(test, 0 != strcmp(blank_crypted, ""));
ast_test_validate(test, ast_crypt_validate("", blank_crypted));
ast_test_validate(test,
!ast_crypt_validate(not_a_password, blank_crypted));
return AST_TEST_PASS;
}
static int unload_module(void)
{
AST_TEST_UNREGISTER(uri_encode_decode_test);
@@ -431,6 +467,7 @@ static int unload_module(void)
AST_TEST_UNREGISTER(crypto_loaded_test);
AST_TEST_UNREGISTER(adsi_loaded_test);
AST_TEST_UNREGISTER(agi_loaded_test);
AST_TEST_UNREGISTER(crypt_test);
return 0;
}
@@ -444,6 +481,7 @@ static int load_module(void)
AST_TEST_REGISTER(crypto_loaded_test);
AST_TEST_REGISTER(adsi_loaded_test);
AST_TEST_REGISTER(agi_loaded_test);
AST_TEST_REGISTER(crypt_test);
return AST_MODULE_LOAD_SUCCESS;
}