@@ -109,3 +109,36 @@ TEST_F(URLTest, ToFilePath) {
109
109
110
110
#undef T
111
111
}
112
+
113
+ TEST_F (URLTest, FromFilePath) {
114
+ URL file_url;
115
+ #ifdef _WIN32
116
+ file_url = URL::FromFilePath (" C:\\ Program Files\\ " );
117
+ EXPECT_EQ (" file:" , file_url.protocol ());
118
+ EXPECT_EQ (" /C:/Program%20Files/" , file_url.path ());
119
+
120
+ file_url = URL::FromFilePath (" C:\\ a\\ b\\ c" );
121
+ EXPECT_EQ (" file:" , file_url.protocol ());
122
+ EXPECT_EQ (" /C:/a/b/c" , file_url.path ());
123
+
124
+ file_url = URL::FromFilePath (" b:\\ a\\ %%.js" );
125
+ EXPECT_EQ (" file:" , file_url.protocol ());
126
+ EXPECT_EQ (" /b:/a/%25%25.js" , file_url.path ());
127
+
128
+ file_url = URL::FromFilePath (" \\\\ host\\ a\\ b\\ c" );
129
+ EXPECT_EQ (" file:" , file_url.protocol ());
130
+ EXPECT_EQ (" host/a/b/c" , file_url.path ());
131
+ #else
132
+ file_url = URL::FromFilePath (" /" );
133
+ EXPECT_EQ (" file:" , file_url.protocol ());
134
+ EXPECT_EQ (" /" , file_url.path ());
135
+
136
+ file_url = URL::FromFilePath (" /a/b/c" );
137
+ EXPECT_EQ (" file:" , file_url.protocol ());
138
+ EXPECT_EQ (" /a/b/c" , file_url.path ());
139
+
140
+ file_url = URL::FromFilePath (" /a/%%.js" );
141
+ EXPECT_EQ (" file:" , file_url.protocol ());
142
+ EXPECT_EQ (" /a/%25%25.js" , file_url.path ());
143
+ #endif
144
+ }
0 commit comments