diff options
| -rw-r--r-- | share/qbs/imports/qbs/FileInfo/fileinfo.js | 7 | ||||
| -rw-r--r-- | tests/auto/blackbox/testdata/jsextensions/fileinfo.qbs | 2 | ||||
| -rw-r--r-- | tests/auto/blackbox/tst_blackbox.cpp | 16 |
3 files changed, 17 insertions, 8 deletions
diff --git a/share/qbs/imports/qbs/FileInfo/fileinfo.js b/share/qbs/imports/qbs/FileInfo/fileinfo.js index fb241f8ff..f04212f1e 100644 --- a/share/qbs/imports/qbs/FileInfo/fileinfo.js +++ b/share/qbs/imports/qbs/FileInfo/fileinfo.js @@ -1,6 +1,11 @@ function path(fp) { - if (fp[fp.length -1] === '/') + if (fp === '/') return fp; + + // Yes, this will be wrong for "clever" unix users calling their directory 'c:'. Boohoo. + if (fp.length === 3 && fp.slice(-2) === ':/') + return fp; + var last = fp.lastIndexOf('/'); if (last < 0) return '.'; diff --git a/tests/auto/blackbox/testdata/jsextensions/fileinfo.qbs b/tests/auto/blackbox/testdata/jsextensions/fileinfo.qbs index b16228107..3a47450e6 100644 --- a/tests/auto/blackbox/testdata/jsextensions/fileinfo.qbs +++ b/tests/auto/blackbox/testdata/jsextensions/fileinfo.qbs @@ -17,6 +17,8 @@ Product { output.writeLine(FileInfo.joinPaths("/", "tmp", "blubb.tar.gz")); output.writeLine(FileInfo.path("/tmp/blubb.tar.gz")); output.writeLine(FileInfo.path("/tmp/")); + output.writeLine(FileInfo.path("/")); + output.writeLine(FileInfo.path("d:/")); output.writeLine(FileInfo.relativePath("/tmp", "/tmp/blubb.tar.gz")); output.writeLine(FileInfo.relativePath("/", "/tmp/blubb.tar.gz")); output.writeLine(FileInfo.relativePath("/tmp", "/blubb.tar.gz")); diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index 9152c200d..e554cd88b 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -1184,7 +1184,7 @@ void TestBlackbox::jsExtensionsFileInfo() QVERIFY(output.exists()); QVERIFY(output.open(QIODevice::ReadOnly)); const QList<QByteArray> lines = output.readAll().trimmed().split('\n'); - QCOMPARE(lines.count(), 17); + QCOMPARE(lines.count(), 19); QCOMPARE(lines.at(0).trimmed().constData(), "blubb"); QCOMPARE(lines.at(1).trimmed().constData(), "blubb.tar"); QCOMPARE(lines.at(2).trimmed().constData(), "blubb.tar.gz"); @@ -1196,12 +1196,14 @@ void TestBlackbox::jsExtensionsFileInfo() QCOMPARE(lines.at(8).trimmed().constData(), "false"); QCOMPARE(lines.at(9).trimmed().constData(), "/tmp/blubb.tar.gz"); QCOMPARE(lines.at(10).trimmed().constData(), "/tmp"); - QCOMPARE(lines.at(11).trimmed().constData(), "/tmp/"); - QCOMPARE(lines.at(12).trimmed().constData(), "blubb.tar.gz"); - QCOMPARE(lines.at(13).trimmed().constData(), "tmp/blubb.tar.gz"); - QCOMPARE(lines.at(14).trimmed().constData(), "../blubb.tar.gz"); - QCOMPARE(lines.at(15).trimmed().constData(), "\\tmp\\blubb.tar.gz"); - QCOMPARE(lines.at(16).trimmed().constData(), "c:\\tmp\\blubb.tar.gz"); + QCOMPARE(lines.at(11).trimmed().constData(), "/tmp"); + QCOMPARE(lines.at(12).trimmed().constData(), "/"); + QCOMPARE(lines.at(13).trimmed().constData(), "d:/"); + QCOMPARE(lines.at(14).trimmed().constData(), "blubb.tar.gz"); + QCOMPARE(lines.at(15).trimmed().constData(), "tmp/blubb.tar.gz"); + QCOMPARE(lines.at(16).trimmed().constData(), "../blubb.tar.gz"); + QCOMPARE(lines.at(17).trimmed().constData(), "\\tmp\\blubb.tar.gz"); + QCOMPARE(lines.at(18).trimmed().constData(), "c:\\tmp\\blubb.tar.gz"); } void TestBlackbox::jsExtensionsProcess() |
