test_task.cpp 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #include "test_task.h"
  2. #include <QDebug>
  3. #include <QProcessEnvironment>
  4. #include <task/taskvariablemgr.h>
  5. #include <task/task.h>
  6. #include <core/configmgr.h>
  7. #include <core/coreconfig.h>
  8. #include <core/sessionconfig.h>
  9. using namespace tests;
  10. using namespace vnotex;
  11. TestTask::TestTask(QObject *p_parent)
  12. : QObject(p_parent)
  13. {
  14. }
  15. void TestTask::initTestCase()
  16. {
  17. ConfigMgr::initForUnitTest();
  18. }
  19. void TestTask::TestTaskVariableMgr()
  20. {
  21. TaskVariableMgr mgr(nullptr);
  22. mgr.init();
  23. mgr.overrideVariable("notebookFolder", [](const Task *, const QString &val) {
  24. Q_ASSERT(val.isEmpty());
  25. return "/home/vnotex/vnote";
  26. });
  27. mgr.overrideVariable("notebookFolderName", [](const Task *, const QString &val) {
  28. Q_ASSERT(val.isEmpty());
  29. return "vnote";
  30. });
  31. mgr.overrideVariable("magic", [](const Task *, const QString &val) {
  32. if (val.isEmpty()) {
  33. return QString();
  34. } else {
  35. return val;
  36. }
  37. });
  38. auto task = createTask();
  39. auto result = mgr.evaluate(task.data(), "start ${notebookFolder} end");
  40. QCOMPARE(result, "start /home/vnotex/vnote end");
  41. result = mgr.evaluate(task.data(), "start ${notebookFolder} mid ${notebookFolderName} end");
  42. QCOMPARE(result, "start /home/vnotex/vnote mid vnote end");
  43. result = mgr.evaluate(task.data(), "${magic:yyyy} ${magic:MM} ${magic:dd}");
  44. QCOMPARE("yyyy MM dd", result);
  45. {
  46. const auto env = QProcessEnvironment::systemEnvironment();
  47. result = mgr.evaluate(task.data(), "${env:PATH} ${env:QT_PATH} ${env:nonexist}");
  48. QCOMPARE(result, QString("%1 %2 %3").arg(env.value("PATH"), env.value("QT_PATH"), env.value("nonexist")));
  49. }
  50. result = mgr.evaluate(task.data(), "${config:main.core.toolbar_icon_size} ${config:main.core.nonexists} ${config:session.core.system_title_bar}");
  51. QCOMPARE(result, QString("%1 %2").arg(ConfigMgr::getInst().getCoreConfig().getToolBarIconSize())
  52. .arg(ConfigMgr::getInst().getSessionConfig().getSystemTitleBarEnabled()));
  53. }
  54. QSharedPointer<vnotex::Task> TestTask::createTask() const
  55. {
  56. return QSharedPointer<Task>(new Task("en_US", "dummy_file", nullptr, nullptr));
  57. }
  58. QTEST_MAIN(tests::TestTask)