Commit ba67c075 by Carlos Martín Nieto

remote: get rid of git_remote_valid_url()

It does the same as git_remote_supported_url() but has a name which
implies we'd check the URL for correctness while we're simply looking at
the scheme and looking it up in our lists.

While here, fix up the tests so we check all the combination of what's
supported.
parent bd3854a0
......@@ -384,15 +384,12 @@ GIT_EXTERN(int) git_remote_fetch(
const char *reflog_message);
/**
* Return whether a string is a valid remote URL
*
* @param url the url to check
* @return 1 if the url is valid, 0 otherwise
*/
GIT_EXTERN(int) git_remote_valid_url(const char *url);
/**
* Return whether the passed URL is supported by this version of the library.
* Return whether the library supports a particular URL scheme
*
* Both the built-in and externally-registered transport lists are
* searched for a transport which supports the scheme of the given
* URL.
*
* @param url the url to check
* @return 1 if the url is supported, 0 otherwise
......
......@@ -212,24 +212,13 @@ done:
return error;
}
/* from remote.h */
int git_remote_valid_url(const char *url)
{
git_transport_cb fn;
void *param;
return !transport_find_fn(&fn, url, &param);
}
int git_remote_supported_url(const char* url)
{
git_transport_cb fn;
void *param;
if (transport_find_fn(&fn, url, &param) < 0)
return 0;
return 1;
/* The only error we expect is ENOTFOUND */
return !transport_find_fn(&fn, url, &param);
}
int git_transport_init(git_transport *opts, unsigned int version)
......
......@@ -91,25 +91,30 @@ void test_network_remote_remotes__error_when_no_push_available(void)
git_remote_free(r);
}
void test_network_remote_remotes__parsing_ssh_remote(void)
void test_network_remote_remotes__supported_transport_methods_are_supported(void)
{
cl_assert( git_remote_valid_url("git@github.com:libgit2/libgit2.git") );
}
cl_assert(git_remote_supported_url("git://github.com/libgit2/libgit2"));
cl_assert(git_remote_supported_url("http://github.com/libgit2/libgit2"));
void test_network_remote_remotes__parsing_local_path_fails_if_path_not_found(void)
{
cl_assert( !git_remote_valid_url("/home/git/repos/libgit2.git") );
}
#ifdef GIT_SSH
cl_assert(git_remote_supported_url("git@github.com:libgit2/libgit2.git"));
cl_assert(git_remote_supported_url("ssh://git@github.com/libgit2/libgit2.git"));
#endif
void test_network_remote_remotes__supported_transport_methods_are_supported(void)
{
cl_assert( git_remote_supported_url("git://github.com/libgit2/libgit2") );
#if defined(GIT_SSL) || defined(GIT_WINHTTP)
cl_assert(git_remote_supported_url("https://git@github.com/libgit2/libgit2.git"));
#endif
}
void test_network_remote_remotes__unsupported_transport_methods_are_unsupported(void)
{
#ifndef GIT_SSH
cl_assert( !git_remote_supported_url("git@github.com:libgit2/libgit2.git") );
cl_assert(!git_remote_supported_url("git@github.com:libgit2/libgit2.git"));
cl_assert(!git_remote_supported_url("ssh://git@github.com/libgit2/libgit2.git"));
#endif
#if !defined(GIT_SSL) && !defined(GIT_WINHTTP)
cl_assert(!git_remote_supported_url("https://git@github.com/libgit2/libgit2.git"));
#endif
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment