From cf340fe0f5201b77a6e9af7f3b3b82d0d4868fc3 Mon Sep 17 00:00:00 2001 From: Alexey Kozyatinskiy Date: Thu, 30 Aug 2018 14:58:38 -0700 Subject: src: added URL::FromFilePath method Method returns file URL from native file path. PR-URL: https://github.com/nodejs/node/pull/22251 Reviewed-By: Eugene Ostroukhov Reviewed-By: Tiancheng "Timothy" Gu --- test/cctest/test_url.cc | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'test/cctest') diff --git a/test/cctest/test_url.cc b/test/cctest/test_url.cc index 088634152a..2e9b06e3a4 100644 --- a/test/cctest/test_url.cc +++ b/test/cctest/test_url.cc @@ -109,3 +109,36 @@ TEST_F(URLTest, ToFilePath) { #undef T } + +TEST_F(URLTest, FromFilePath) { + URL file_url; +#ifdef _WIN32 + file_url = URL::FromFilePath("C:\\Program Files\\"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("/C:/Program%20Files/", file_url.path()); + + file_url = URL::FromFilePath("C:\\a\\b\\c"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("/C:/a/b/c", file_url.path()); + + file_url = URL::FromFilePath("b:\\a\\%%.js"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("/b:/a/%25%25.js", file_url.path()); + + file_url = URL::FromFilePath("\\\\host\\a\\b\\c"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("host/a/b/c", file_url.path()); +#else + file_url = URL::FromFilePath("/"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("/", file_url.path()); + + file_url = URL::FromFilePath("/a/b/c"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("/a/b/c", file_url.path()); + + file_url = URL::FromFilePath("/a/%%.js"); + EXPECT_EQ("file:", file_url.protocol()); + EXPECT_EQ("/a/%25%25.js", file_url.path()); +#endif +} -- cgit v1.2.3