testutility.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. /*
  2. This software is in the public domain, furnished "as is", without technical
  3. support, and with no warranty, express or implied, as to its usefulness for
  4. any purpose.
  5. */
  6. #ifndef MIRALL_TESTUTILITY_H
  7. #define MIRALL_TESTUTILITY_H
  8. #include <QtTest>
  9. #include "utility.h"
  10. #include "oc_bin.h"
  11. using namespace OCC::Utility;
  12. class TestUtility : public QObject
  13. {
  14. Q_OBJECT
  15. private slots:
  16. void testFormatFingerprint()
  17. {
  18. QVERIFY2(formatFingerprint("68ac906495480a3404beee4874ed853a037a7a8f")
  19. == "68:ac:90:64:95:48:0a:34:04:be:ee:48:74:ed:85:3a:03:7a:7a:8f",
  20. "Utility::formatFingerprint() is broken");
  21. }
  22. void testOctetsToString()
  23. {
  24. QLocale::setDefault(QLocale("en"));
  25. QCOMPARE(octetsToString(999) , QString("999 B"));
  26. QCOMPARE(octetsToString(1000) , QString("1,000 B"));
  27. QCOMPARE(octetsToString(1010) , QString("1,010 B"));
  28. QCOMPARE(octetsToString(1024) , QString("1 KiB"));
  29. QCOMPARE(octetsToString(1110) , QString("1.1 KiB"));
  30. QCOMPARE(octetsToString(9110) , QString("8.9 KiB"));
  31. QCOMPARE(octetsToString(9910) , QString("9.7 KiB"));
  32. QCOMPARE(octetsToString(9999) , QString("9.8 KiB"));
  33. QCOMPARE(octetsToString(10240) , QString("10 KiB"));
  34. QCOMPARE(octetsToString(123456) , QString("121 KiB"));
  35. QCOMPARE(octetsToString(1234567) , QString("1.2 MiB"));
  36. QCOMPARE(octetsToString(12345678) , QString("12 MiB"));
  37. QCOMPARE(octetsToString(123456789) , QString("118 MiB"));
  38. QCOMPARE(octetsToString(1000LL*1000*1000 * 5) , QString("4.7 GiB"));
  39. QCOMPARE(octetsToString(1024LL*1024*1024 * 5) , QString("5 GiB"));
  40. QCOMPARE(octetsToString(1), QString("1 B"));
  41. QCOMPARE(octetsToString(2), QString("2 B"));
  42. QCOMPARE(octetsToString(1024), QString("1 KiB"));
  43. QCOMPARE(octetsToString(1024*1024), QString("1 MiB"));
  44. QCOMPARE(octetsToString(1024LL*1024*1024), QString("1 GiB"));
  45. QCOMPARE(octetsToString(1024LL*1024*1024*1024), QString("1 TiB"));
  46. }
  47. void testLaunchOnStartup()
  48. {
  49. qsrand(QDateTime::currentDateTime().toTime_t());
  50. QString postfix = QString::number(qrand());
  51. const QString appName = QString::fromLatin1("testLaunchOnStartup.%1").arg(postfix);
  52. const QString guiName = "LaunchOnStartup GUI Name";
  53. QVERIFY(hasLaunchOnStartup(appName) == false);
  54. setLaunchOnStartup(appName, guiName, true);
  55. QVERIFY(hasLaunchOnStartup(appName) == true);
  56. setLaunchOnStartup(appName, guiName, false);
  57. QVERIFY(hasLaunchOnStartup(appName) == false);
  58. }
  59. void testToCSyncScheme()
  60. {
  61. QVERIFY(toCSyncScheme("http://example.com/owncloud/") ==
  62. "owncloud://example.com/owncloud/");
  63. QVERIFY(toCSyncScheme("https://example.com/owncloud/") ==
  64. "ownclouds://example.com/owncloud/");
  65. }
  66. void testDurationToDescriptiveString()
  67. {
  68. QLocale::setDefault(QLocale("C"));
  69. //NOTE: in order for the plural to work we would need to load the english translation
  70. quint64 sec = 1000;
  71. quint64 hour = 3600 * sec;
  72. QDateTime current = QDateTime::currentDateTime();
  73. QCOMPARE(durationToDescriptiveString(0), QString("0 seconds") );
  74. QCOMPARE(durationToDescriptiveString(5), QString("0 seconds") );
  75. QCOMPARE(durationToDescriptiveString(1000), QString("1 second(s)") );
  76. QCOMPARE(durationToDescriptiveString(1005), QString("1 second(s)") );
  77. QCOMPARE(durationToDescriptiveString(56123), QString("56 second(s)") );
  78. QCOMPARE(durationToDescriptiveString(90*sec), QString("1 minute(s) 30 second(s)") );
  79. QCOMPARE(durationToDescriptiveString(3*hour), QString("3 hour(s)") );
  80. QCOMPARE(durationToDescriptiveString(3*hour + 20*sec), QString("3 hour(s)") );
  81. QCOMPARE(durationToDescriptiveString(3*hour + 70*sec), QString("3 hour(s) 1 minute(s)") );
  82. QCOMPARE(durationToDescriptiveString(3*hour + 100*sec), QString("3 hour(s) 2 minute(s)") );
  83. QCOMPARE(durationToDescriptiveString(current.msecsTo(current.addYears(4).addMonths(5).addDays(2).addSecs(23*60*60))),
  84. QString("4 year(s) 5 month(s)") );
  85. QCOMPARE(durationToDescriptiveString(current.msecsTo(current.addDays(2).addSecs(23*60*60))),
  86. QString("2 day(s) 23 hour(s)") );
  87. }
  88. void testVersionOfInstalledBinary()
  89. {
  90. if( isLinux() ) {
  91. QString ver = versionOfInstalledBinary(OWNCLOUD_BIN);
  92. qDebug() << "Version of installed ownCloud Binary: " << ver;
  93. QVERIFY( !ver.isEmpty());
  94. } else {
  95. QVERIFY( versionOfInstalledBinary().isEmpty());
  96. }
  97. }
  98. };
  99. #endif