@@ -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