summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2014-08-31 17:16:40 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2014-08-31 21:50:28 +0200
commitba67c0752269ba06523fe7f5fa350e6328b20241 (patch)
treeecf846c692758ef9446cc29b148111ee168bcdc2
parentbd3854a09c9bd4196cf280108d3f6286ee6de258 (diff)
downloadlibgit2-ba67c0752269ba06523fe7f5fa350e6328b20241.tar.gz
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.
-rw-r--r--include/git2/remote.h13
-rw-r--r--src/transport.c15
-rw-r--r--tests/network/remote/remotes.c27
3 files changed, 23 insertions, 32 deletions
diff --git a/include/git2/remote.h b/include/git2/remote.h
index c0717fa31..de5823e6d 100644
--- a/include/git2/remote.h
+++ b/include/git2/remote.h
@@ -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
diff --git a/src/transport.c b/src/transport.c
index 3295b196c..d42c92684 100644
--- a/src/transport.c
+++ b/src/transport.c
@@ -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)
diff --git a/tests/network/remote/remotes.c b/tests/network/remote/remotes.c
index 21c57119a..1d5d318c5 100644
--- a/tests/network/remote/remotes.c
+++ b/tests/network/remote/remotes.c
@@ -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
}