@@ -172,11 +172,36 @@ class TestPath : public TestFixture {
172172 }
173173
174174 void join() const {
175+ ASSERT_EQUALS("", Path::join("", ""));
176+ ASSERT_EQUALS("b", Path::join("", "b"));
177+ ASSERT_EQUALS("/b", Path::join("", "/b"));
178+ ASSERT_EQUALS("/b", Path::join("", "\\b"));
179+
175180 ASSERT_EQUALS("a", Path::join("a", ""));
176- ASSERT_EQUALS("a", Path::join("", "a"));
177181 ASSERT_EQUALS("a/b", Path::join("a", "b"));
178- ASSERT_EQUALS("a/b", Path::join("a/", "b"));
179182 ASSERT_EQUALS("/b", Path::join("a", "/b"));
183+ ASSERT_EQUALS("/b", Path::join("a", "\\b"));
184+
185+ ASSERT_EQUALS("a/", Path::join("a/", ""));
186+ ASSERT_EQUALS("a/b", Path::join("a/", "b"));
187+ ASSERT_EQUALS("/b", Path::join("a/", "/b"));
188+ ASSERT_EQUALS("/b", Path::join("a/", "\\b"));
189+
190+ ASSERT_EQUALS("a/", Path::join("a\\", ""));
191+ ASSERT_EQUALS("a/b", Path::join("a\\", "b"));
192+ ASSERT_EQUALS("/b", Path::join("a\\", "/b"));
193+ ASSERT_EQUALS("/b", Path::join("a\\", "\\b"));
194+
195+ // TODO: how to absolute Windows path in path2?
196+ //ASSERT_EQUALS("", Path::join("a", "s:/b"));
197+
198+ //ASSERT_EQUALS("", Path::join("S:\\a", "S:/b"));
199+ //ASSERT_EQUALS("", Path::join("S:\\a", "S:\\b"));
200+ //ASSERT_EQUALS("", Path::join("S:\\a", "/b"));
201+
202+ //ASSERT_EQUALS("", Path::join("S:/a", "S:/b"));
203+ //ASSERT_EQUALS("", Path::join("S:/a", "S:\\b"));
204+ //ASSERT_EQUALS("", Path::join("S:/a", "/b"));
180205 }
181206
182207 void isDirectory() const {
0 commit comments