Bug 1411932 - rusturl_get_path should not depend on cannot-be-a-base r=baku
MozReview-Commit-ID: 7iwBooZWNxW
--- a/netwerk/base/rust-url-capi/src/lib.rs
+++ b/netwerk/base/rust-url-capi/src/lib.rs
@@ -165,37 +165,29 @@ pub extern "C" fn rusturl_get_port(urlpt
#[no_mangle]
pub extern "C" fn rusturl_get_filepath(urlptr: Option<&Url>, cont: &mut nsACString) -> nsresult {
let url = if let Some(url) = urlptr {
url
} else {
return NS_ERROR_INVALID_ARG;
};
- if url.cannot_be_a_base() {
- cont.assign("");
- } else {
- cont.assign(&url[Position::BeforePath..Position::AfterPath]);
- }
+ cont.assign(&url.path());
NS_OK
}
#[no_mangle]
pub extern "C" fn rusturl_get_path(urlptr: Option<&Url>, cont: &mut nsACString) -> nsresult {
let url = if let Some(url) = urlptr {
url
} else {
return NS_ERROR_INVALID_ARG;
};
- if url.cannot_be_a_base() {
- cont.assign("");
- } else {
- cont.assign(&url[Position::BeforePath..]);
- }
+ cont.assign(&url[Position::BeforePath..]);
NS_OK
}
#[no_mangle]
pub extern "C" fn rusturl_get_query(urlptr: Option<&Url>, cont: &mut nsACString) -> nsresult {
let url = if let Some(url) = urlptr {
url
} else {
--- a/netwerk/test/gtest/TestMozURL.cpp
+++ b/netwerk/test/gtest/TestMozURL.cpp
@@ -115,16 +115,33 @@ TEST(TestMozURL, InitWithBase)
RefPtr<MozURL> url2;
ASSERT_EQ(MozURL::Init(getter_AddRefs(url2), NS_LITERAL_CSTRING("c.png"),
url), NS_OK);
ASSERT_EQ(url2->GetSpec(out), NS_OK);
ASSERT_TRUE(out.EqualsLiteral("https://example.net/a/c.png"));
}
+TEST(TestMozURL, Path)
+{
+ nsAutoCString href("about:blank");
+ RefPtr<MozURL> url;
+ ASSERT_EQ(MozURL::Init(getter_AddRefs(url), href), NS_OK);
+ nsAutoCString out;
+
+ ASSERT_EQ(url->GetSpec(out), NS_OK);
+ ASSERT_TRUE(out.EqualsLiteral("about:blank"));
+
+ ASSERT_EQ(url->GetScheme(out), NS_OK);
+ ASSERT_TRUE(out.EqualsLiteral("about"));
+
+ ASSERT_EQ(url->GetFilePath(out), NS_OK);
+ ASSERT_TRUE(out.EqualsLiteral("blank"));
+}
+
TEST(TestMozURL, HostPort)
{
nsAutoCString href("https://user:pass@example.net:1234/path?query#ref");
RefPtr<MozURL> url;
ASSERT_EQ(MozURL::Init(getter_AddRefs(url), href), NS_OK);
nsAutoCString out;
ASSERT_EQ(url->GetHostPort(out), NS_OK);