#include "autostart_manager.h" #include #include class AutoStartManagerTest : public QObject { Q_OBJECT private slots: void createsRunAtLoadLaunchAgent(); void roundTripsPlistRoundTrip(); }; void AutoStartManagerTest::createsRunAtLoadLaunchAgent() { const QString executablePath = "/Applications/DualFloatingClock.app/Contents/MacOS/DualFloatingClock"; const QString contents = AutoStartManager::launchAgentContents(executablePath); QVERIFY(contents.contains("ProgramArguments")); QVERIFY(contents.contains(executablePath)); QVERIFY(contents.contains("RunAtLoad")); QVERIFY(contents.contains("")); } void AutoStartManagerTest::roundTripsPlistRoundTrip() { // Disabled-by-default: no plist written when enable is false, // enableForPath + disable must leave no residue. QTemporaryDir home; QVERIFY(home.isValid()); qputenv("HOME", home.path().toUtf8()); QVERIFY(AutoStartManager::disable()); QVERIFY(!QFile::exists(AutoStartManager::launchAgentPath())); QVERIFY(!AutoStartManager::isEnabled()); QVERIFY(AutoStartManager::enableForPath("/Applications/DualFloatingClock.app/Contents/MacOS/DualFloatingClock")); QVERIFY(AutoStartManager::isEnabled()); QVERIFY(QFile::exists(AutoStartManager::launchAgentPath())); QVERIFY(AutoStartManager::disable()); QVERIFY(!AutoStartManager::isEnabled()); } QTEST_APPLESS_MAIN(AutoStartManagerTest) #include "autostart_manager_test.moc"