| 450 | } |
| 451 | |
| 452 | void TestQuaZipFile::setFileAttrs() |
| 453 | { |
| 454 | QuaZip testZip("setFileAttrs.zip"); |
| 455 | QVERIFY(testZip.open(QuaZip::mdCreate)); |
| 456 | QuaZipFile zipFile(&testZip); |
| 457 | QuaZipNewInfo newInfo("testPerm.txt"); |
| 458 | newInfo.setPermissions(QFile::ReadOwner); |
| 459 | QVERIFY(zipFile.open(QIODevice::WriteOnly, newInfo)); |
| 460 | zipFile.close(); |
| 461 | QString fileTestAttr = "testAttr.txt"; |
| 462 | QStringList fileNames; |
| 463 | fileNames << fileTestAttr; |
| 464 | QVERIFY(createTestFiles(fileNames)); |
| 465 | newInfo.name = fileTestAttr; |
| 466 | newInfo.setFileDateTime("tmp/" + fileTestAttr); |
| 467 | newInfo.setFilePermissions("tmp/" + fileTestAttr); |
| 468 | QVERIFY(zipFile.open(QIODevice::WriteOnly, newInfo)); |
| 469 | zipFile.close(); |
| 470 | testZip.close(); |
| 471 | QuaZipFileInfo64 info; |
| 472 | { |
| 473 | QuaZipFile readFilePerm("setFileAttrs.zip", "testPerm.txt"); |
| 474 | QVERIFY(readFilePerm.open(QIODevice::ReadOnly)); |
| 475 | QVERIFY(readFilePerm.getFileInfo(&info)); |
| 476 | QCOMPARE(info.getPermissions(), QFile::ReadOwner); |
| 477 | readFilePerm.close(); |
| 478 | } |
| 479 | { |
| 480 | QuaZipFile readFileAttrs("setFileAttrs.zip", "testAttr.txt"); |
| 481 | QVERIFY(readFileAttrs.open(QIODevice::ReadOnly)); |
| 482 | QVERIFY(readFileAttrs.getFileInfo(&info)); |
| 483 | QFileInfo srcInfo("tmp/" + fileTestAttr); |
| 484 | QFile::Permissions usedPermissions = |
| 485 | QFile::WriteOwner | QFile::ReadOwner | QFile::ExeOwner | |
| 486 | QFile::WriteGroup | QFile::ReadGroup | QFile::ExeGroup | |
| 487 | QFile::WriteOther | QFile::ReadOther | QFile::ExeOther; |
| 488 | QCOMPARE(info.getPermissions() & usedPermissions, |
| 489 | srcInfo.permissions() & usedPermissions); |
| 490 | qint64 newTime = quazip_to_time64_t(info.dateTime); |
| 491 | qint64 oldTime = quazip_to_time64_t(srcInfo.lastModified()); |
| 492 | // ZIP uses weird format with 2 second precision |
| 493 | QCOMPARE(newTime / 2, oldTime / 2); |
| 494 | readFileAttrs.close(); |
| 495 | } |
| 496 | removeTestFiles(fileNames); |
| 497 | QDir().remove(testZip.getZipName()); |
| 498 | } |
| 499 | |
| 500 | void TestQuaZipFile::largeFile() |
| 501 | { |
nothing calls this directly
no test coverage detected