diff --git a/CMakeLists.txt b/CMakeLists.txt index b498508f..33bb282f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,11 @@ include(cmake/InstallDirs.cmake) include(cmake/Cotire.cmake) add_subdirectory(src) +add_subdirectory(plugins) +if(BUILD_TESTS) + enable_testing(true) + add_subdirectory(tests) +endif() # Summary message(STATUS "Building MellowPlayer v${MellowPlayer_VERSION}") diff --git a/src/plugins/8tracks/integration.js b/plugins/8tracks/integration.js similarity index 100% rename from src/plugins/8tracks/integration.js rename to plugins/8tracks/integration.js diff --git a/src/plugins/8tracks/logo.svg b/plugins/8tracks/logo.svg similarity index 100% rename from src/plugins/8tracks/logo.svg rename to plugins/8tracks/logo.svg diff --git a/src/plugins/8tracks/metadata.ini b/plugins/8tracks/metadata.ini similarity index 100% rename from src/plugins/8tracks/metadata.ini rename to plugins/8tracks/metadata.ini diff --git a/src/plugins/8tracks/theme.json b/plugins/8tracks/theme.json similarity index 100% rename from src/plugins/8tracks/theme.json rename to plugins/8tracks/theme.json diff --git a/src/plugins/CMakeLists.txt b/plugins/CMakeLists.txt similarity index 100% rename from src/plugins/CMakeLists.txt rename to plugins/CMakeLists.txt diff --git a/src/plugins/anghami/integration.js b/plugins/anghami/integration.js similarity index 100% rename from src/plugins/anghami/integration.js rename to plugins/anghami/integration.js diff --git a/src/plugins/anghami/logo.svg b/plugins/anghami/logo.svg similarity index 100% rename from src/plugins/anghami/logo.svg rename to plugins/anghami/logo.svg diff --git a/src/plugins/anghami/metadata.ini b/plugins/anghami/metadata.ini similarity index 100% rename from src/plugins/anghami/metadata.ini rename to plugins/anghami/metadata.ini diff --git a/src/plugins/anghami/theme.json b/plugins/anghami/theme.json similarity index 100% rename from src/plugins/anghami/theme.json rename to plugins/anghami/theme.json diff --git a/src/plugins/deezer/integration.js b/plugins/deezer/integration.js similarity index 100% rename from src/plugins/deezer/integration.js rename to plugins/deezer/integration.js diff --git a/src/plugins/deezer/logo.svg b/plugins/deezer/logo.svg similarity index 100% rename from src/plugins/deezer/logo.svg rename to plugins/deezer/logo.svg diff --git a/src/plugins/deezer/metadata.ini b/plugins/deezer/metadata.ini similarity index 100% rename from src/plugins/deezer/metadata.ini rename to plugins/deezer/metadata.ini diff --git a/src/plugins/deezer/theme.json b/plugins/deezer/theme.json similarity index 100% rename from src/plugins/deezer/theme.json rename to plugins/deezer/theme.json diff --git a/src/plugins/googleplaymusic/integration.js b/plugins/googleplaymusic/integration.js similarity index 100% rename from src/plugins/googleplaymusic/integration.js rename to plugins/googleplaymusic/integration.js diff --git a/src/plugins/googleplaymusic/logo.svg b/plugins/googleplaymusic/logo.svg similarity index 100% rename from src/plugins/googleplaymusic/logo.svg rename to plugins/googleplaymusic/logo.svg diff --git a/src/plugins/googleplaymusic/metadata.ini b/plugins/googleplaymusic/metadata.ini similarity index 100% rename from src/plugins/googleplaymusic/metadata.ini rename to plugins/googleplaymusic/metadata.ini diff --git a/src/plugins/googleplaymusic/theme.json b/plugins/googleplaymusic/theme.json similarity index 100% rename from src/plugins/googleplaymusic/theme.json rename to plugins/googleplaymusic/theme.json diff --git a/src/plugins/hearthisat/integration.js b/plugins/hearthisat/integration.js similarity index 100% rename from src/plugins/hearthisat/integration.js rename to plugins/hearthisat/integration.js diff --git a/src/plugins/hearthisat/logo.svg b/plugins/hearthisat/logo.svg similarity index 100% rename from src/plugins/hearthisat/logo.svg rename to plugins/hearthisat/logo.svg diff --git a/src/plugins/hearthisat/metadata.ini b/plugins/hearthisat/metadata.ini similarity index 100% rename from src/plugins/hearthisat/metadata.ini rename to plugins/hearthisat/metadata.ini diff --git a/src/plugins/hearthisat/theme.json b/plugins/hearthisat/theme.json similarity index 100% rename from src/plugins/hearthisat/theme.json rename to plugins/hearthisat/theme.json diff --git a/src/plugins/jamendo/integration.js b/plugins/jamendo/integration.js similarity index 100% rename from src/plugins/jamendo/integration.js rename to plugins/jamendo/integration.js diff --git a/src/plugins/jamendo/logo.svg b/plugins/jamendo/logo.svg similarity index 100% rename from src/plugins/jamendo/logo.svg rename to plugins/jamendo/logo.svg diff --git a/src/plugins/jamendo/metadata.ini b/plugins/jamendo/metadata.ini similarity index 100% rename from src/plugins/jamendo/metadata.ini rename to plugins/jamendo/metadata.ini diff --git a/src/plugins/jamendo/theme.json b/plugins/jamendo/theme.json similarity index 100% rename from src/plugins/jamendo/theme.json rename to plugins/jamendo/theme.json diff --git a/src/plugins/mixcloud/integration.js b/plugins/mixcloud/integration.js similarity index 100% rename from src/plugins/mixcloud/integration.js rename to plugins/mixcloud/integration.js diff --git a/src/plugins/mixcloud/logo.svg b/plugins/mixcloud/logo.svg similarity index 100% rename from src/plugins/mixcloud/logo.svg rename to plugins/mixcloud/logo.svg diff --git a/src/plugins/mixcloud/metadata.ini b/plugins/mixcloud/metadata.ini similarity index 100% rename from src/plugins/mixcloud/metadata.ini rename to plugins/mixcloud/metadata.ini diff --git a/src/plugins/mixcloud/theme.json b/plugins/mixcloud/theme.json similarity index 100% rename from src/plugins/mixcloud/theme.json rename to plugins/mixcloud/theme.json diff --git a/src/plugins/playerfm/integration.js b/plugins/playerfm/integration.js similarity index 100% rename from src/plugins/playerfm/integration.js rename to plugins/playerfm/integration.js diff --git a/src/plugins/playerfm/logo.svg b/plugins/playerfm/logo.svg similarity index 100% rename from src/plugins/playerfm/logo.svg rename to plugins/playerfm/logo.svg diff --git a/src/plugins/playerfm/metadata.ini b/plugins/playerfm/metadata.ini similarity index 100% rename from src/plugins/playerfm/metadata.ini rename to plugins/playerfm/metadata.ini diff --git a/src/plugins/playerfm/theme.json b/plugins/playerfm/theme.json similarity index 100% rename from src/plugins/playerfm/theme.json rename to plugins/playerfm/theme.json diff --git a/src/plugins/plex/integration.js b/plugins/plex/integration.js similarity index 100% rename from src/plugins/plex/integration.js rename to plugins/plex/integration.js diff --git a/src/plugins/plex/logo.svg b/plugins/plex/logo.svg similarity index 100% rename from src/plugins/plex/logo.svg rename to plugins/plex/logo.svg diff --git a/src/plugins/plex/metadata.ini b/plugins/plex/metadata.ini similarity index 100% rename from src/plugins/plex/metadata.ini rename to plugins/plex/metadata.ini diff --git a/src/plugins/plex/theme.json b/plugins/plex/theme.json similarity index 100% rename from src/plugins/plex/theme.json rename to plugins/plex/theme.json diff --git a/src/plugins/pocketcasts/integration.js b/plugins/pocketcasts/integration.js similarity index 100% rename from src/plugins/pocketcasts/integration.js rename to plugins/pocketcasts/integration.js diff --git a/src/plugins/pocketcasts/logo.svg b/plugins/pocketcasts/logo.svg similarity index 100% rename from src/plugins/pocketcasts/logo.svg rename to plugins/pocketcasts/logo.svg diff --git a/src/plugins/pocketcasts/metadata.ini b/plugins/pocketcasts/metadata.ini similarity index 100% rename from src/plugins/pocketcasts/metadata.ini rename to plugins/pocketcasts/metadata.ini diff --git a/src/plugins/pocketcasts/theme.json b/plugins/pocketcasts/theme.json similarity index 100% rename from src/plugins/pocketcasts/theme.json rename to plugins/pocketcasts/theme.json diff --git a/src/plugins/radionomy/integration.js b/plugins/radionomy/integration.js similarity index 100% rename from src/plugins/radionomy/integration.js rename to plugins/radionomy/integration.js diff --git a/src/plugins/radionomy/logo.svg b/plugins/radionomy/logo.svg similarity index 100% rename from src/plugins/radionomy/logo.svg rename to plugins/radionomy/logo.svg diff --git a/src/plugins/radionomy/metadata.ini b/plugins/radionomy/metadata.ini similarity index 100% rename from src/plugins/radionomy/metadata.ini rename to plugins/radionomy/metadata.ini diff --git a/src/plugins/radionomy/theme.json b/plugins/radionomy/theme.json similarity index 100% rename from src/plugins/radionomy/theme.json rename to plugins/radionomy/theme.json diff --git a/src/plugins/soundcloud/integration.js b/plugins/soundcloud/integration.js similarity index 100% rename from src/plugins/soundcloud/integration.js rename to plugins/soundcloud/integration.js diff --git a/src/plugins/soundcloud/logo.svg b/plugins/soundcloud/logo.svg similarity index 100% rename from src/plugins/soundcloud/logo.svg rename to plugins/soundcloud/logo.svg diff --git a/src/plugins/soundcloud/metadata.ini b/plugins/soundcloud/metadata.ini similarity index 100% rename from src/plugins/soundcloud/metadata.ini rename to plugins/soundcloud/metadata.ini diff --git a/src/plugins/soundcloud/theme.json b/plugins/soundcloud/theme.json similarity index 100% rename from src/plugins/soundcloud/theme.json rename to plugins/soundcloud/theme.json diff --git a/src/plugins/spotify/integration.js b/plugins/spotify/integration.js similarity index 100% rename from src/plugins/spotify/integration.js rename to plugins/spotify/integration.js diff --git a/src/plugins/spotify/logo.svg b/plugins/spotify/logo.svg similarity index 100% rename from src/plugins/spotify/logo.svg rename to plugins/spotify/logo.svg diff --git a/src/plugins/spotify/metadata.ini b/plugins/spotify/metadata.ini similarity index 100% rename from src/plugins/spotify/metadata.ini rename to plugins/spotify/metadata.ini diff --git a/src/plugins/spotify/theme.json b/plugins/spotify/theme.json similarity index 100% rename from src/plugins/spotify/theme.json rename to plugins/spotify/theme.json diff --git a/src/plugins/tidal/integration.js b/plugins/tidal/integration.js similarity index 100% rename from src/plugins/tidal/integration.js rename to plugins/tidal/integration.js diff --git a/src/plugins/tidal/logo.svg b/plugins/tidal/logo.svg similarity index 100% rename from src/plugins/tidal/logo.svg rename to plugins/tidal/logo.svg diff --git a/src/plugins/tidal/metadata.ini b/plugins/tidal/metadata.ini similarity index 100% rename from src/plugins/tidal/metadata.ini rename to plugins/tidal/metadata.ini diff --git a/src/plugins/tidal/theme.json b/plugins/tidal/theme.json similarity index 100% rename from src/plugins/tidal/theme.json rename to plugins/tidal/theme.json diff --git a/src/plugins/tunein/integration.js b/plugins/tunein/integration.js similarity index 100% rename from src/plugins/tunein/integration.js rename to plugins/tunein/integration.js diff --git a/src/plugins/tunein/logo.svg b/plugins/tunein/logo.svg similarity index 100% rename from src/plugins/tunein/logo.svg rename to plugins/tunein/logo.svg diff --git a/src/plugins/tunein/metadata.ini b/plugins/tunein/metadata.ini similarity index 100% rename from src/plugins/tunein/metadata.ini rename to plugins/tunein/metadata.ini diff --git a/src/plugins/tunein/theme.json b/plugins/tunein/theme.json similarity index 100% rename from src/plugins/tunein/theme.json rename to plugins/tunein/theme.json diff --git a/src/plugins/wip/nextcloud/integration.js b/plugins/wip/nextcloud/integration.js similarity index 100% rename from src/plugins/wip/nextcloud/integration.js rename to plugins/wip/nextcloud/integration.js diff --git a/src/plugins/wip/nextcloud/logo.svg b/plugins/wip/nextcloud/logo.svg similarity index 100% rename from src/plugins/wip/nextcloud/logo.svg rename to plugins/wip/nextcloud/logo.svg diff --git a/src/plugins/wip/nextcloud/metadata.ini b/plugins/wip/nextcloud/metadata.ini similarity index 100% rename from src/plugins/wip/nextcloud/metadata.ini rename to plugins/wip/nextcloud/metadata.ini diff --git a/src/plugins/wynk/integration.js b/plugins/wynk/integration.js similarity index 100% rename from src/plugins/wynk/integration.js rename to plugins/wynk/integration.js diff --git a/src/plugins/wynk/logo.svg b/plugins/wynk/logo.svg similarity index 100% rename from src/plugins/wynk/logo.svg rename to plugins/wynk/logo.svg diff --git a/src/plugins/wynk/metadata.ini b/plugins/wynk/metadata.ini similarity index 100% rename from src/plugins/wynk/metadata.ini rename to plugins/wynk/metadata.ini diff --git a/src/plugins/wynk/theme.json b/plugins/wynk/theme.json similarity index 100% rename from src/plugins/wynk/theme.json rename to plugins/wynk/theme.json diff --git a/src/plugins/ympd/integration.js b/plugins/ympd/integration.js similarity index 100% rename from src/plugins/ympd/integration.js rename to plugins/ympd/integration.js diff --git a/src/plugins/ympd/logo.svg b/plugins/ympd/logo.svg similarity index 100% rename from src/plugins/ympd/logo.svg rename to plugins/ympd/logo.svg diff --git a/src/plugins/ympd/metadata.ini b/plugins/ympd/metadata.ini similarity index 100% rename from src/plugins/ympd/metadata.ini rename to plugins/ympd/metadata.ini diff --git a/src/plugins/ympd/theme.json b/plugins/ympd/theme.json similarity index 100% rename from src/plugins/ympd/theme.json rename to plugins/ympd/theme.json diff --git a/src/plugins/youtube/integration.js b/plugins/youtube/integration.js similarity index 100% rename from src/plugins/youtube/integration.js rename to plugins/youtube/integration.js diff --git a/src/plugins/youtube/logo.svg b/plugins/youtube/logo.svg similarity index 100% rename from src/plugins/youtube/logo.svg rename to plugins/youtube/logo.svg diff --git a/src/plugins/youtube/metadata.ini b/plugins/youtube/metadata.ini similarity index 100% rename from src/plugins/youtube/metadata.ini rename to plugins/youtube/metadata.ini diff --git a/src/plugins/youtube/theme.json b/plugins/youtube/theme.json similarity index 100% rename from src/plugins/youtube/theme.json rename to plugins/youtube/theme.json diff --git a/scripts/appveyor/runtests.bat b/scripts/appveyor/runtests.bat index 835d8175..33f8320b 100644 --- a/scripts/appveyor/runtests.bat +++ b/scripts/appveyor/runtests.bat @@ -1,4 +1,4 @@ -cd ..\..\build\src\tests +cd ..\..\build\tests set QTDIR=C:\Qt\5.9\msvc2015_64 set PATH=%QTDIR%\bin;%QTDIR%\lib;%PATH% diff --git a/scripts/beautify.py b/scripts/beautify.py index d10fa97d..1f06218b 100644 --- a/scripts/beautify.py +++ b/scripts/beautify.py @@ -24,4 +24,4 @@ def js_beautify_recursive(root_path): os.chdir("..") clang_format_recursive(os.path.join(os.getcwd(), "src")) - js_beautify_recursive(os.path.join(os.getcwd(), "src/plugins")) + js_beautify_recursive(os.path.join(os.getcwd(), "plugins")) diff --git a/scripts/packaging/osx/make_dmg.sh b/scripts/packaging/osx/make_dmg.sh index c28b2bee..25e98170 100755 --- a/scripts/packaging/osx/make_dmg.sh +++ b/scripts/packaging/osx/make_dmg.sh @@ -7,7 +7,7 @@ build_dir=build mkdir -p ${build_dir}/src/main/MellowPlayer.app/Contents/PlugIns/services mkdir -p ${build_dir}/src/main/MellowPlayer.app/Contents/Resources -cp -R src/plugins/ ${build_dir}/src/main/MellowPlayer.app/Contents/PlugIns/services +cp -R plugins/ ${build_dir}/src/main/MellowPlayer.app/Contents/PlugIns/services cp scripts/packaging/osx/mellowplayer.icns ${build_dir}/src/main/MellowPlayer.app/Contents/Resources cp scripts/packaging/osx/Info.plist ${build_dir}/src/main/MellowPlayer.app/Contents diff --git a/scripts/packaging/windows/make_installer.bat b/scripts/packaging/windows/make_installer.bat index b85c15ba..454eb371 100644 --- a/scripts/packaging/windows/make_installer.bat +++ b/scripts/packaging/windows/make_installer.bat @@ -7,7 +7,7 @@ set BUILD_DIR=build mkdir %BUILD_DIR%\bin mkdir %BUILD_DIR%\bin\plugins xcopy /S /C /Y %BUILD_DIR%\src\main\Release\MellowPlayer.exe %BUILD_DIR%\bin -xcopy /S /E /D /C /Y src\plugins %BUILD_DIR%\bin\plugins +xcopy /S /E /D /C /Y plugins %BUILD_DIR%\bin\plugins %QTDIR%\bin\windeployqt %BUILD_DIR%\bin\MellowPlayer.exe -qmldir=src diff --git a/scripts/travis/commit-build.sh b/scripts/travis/commit-build.sh index f6ed9818..b0c9193f 100755 --- a/scripts/travis/commit-build.sh +++ b/scripts/travis/commit-build.sh @@ -16,7 +16,7 @@ if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then make -j2; # run tests - pushd src/tests; + pushd tests; catchsegv ctest --output-on-failure; popd; fi @@ -27,7 +27,7 @@ if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then make -j2; # run tests - pushd src/tests; + pushd tests; ctest --output-on-failure; popd; fi diff --git a/scripts/travis/full-build.sh b/scripts/travis/full-build.sh index 547268a2..5e551386 100755 --- a/scripts/travis/full-build.sh +++ b/scripts/travis/full-build.sh @@ -17,7 +17,7 @@ if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then make -j2; # run all tests - pushd src/tests + pushd tests ctest --output-on-failure; popd; src/main/MellowPlayer --auto-quit-delay 10000 --log-level 1; @@ -34,7 +34,7 @@ if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then make -j2; # run all tests - pushd src/tests + pushd tests ctest --output-on-failure; popd diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8ec953a3..2290eceb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,9 +1,4 @@ include_directories(lib) add_subdirectory(lib/MellowPlayer) -add_subdirectory(plugins) -if(BUILD_TESTS) - enable_testing(true) - add_subdirectory(tests) -endif() add_subdirectory(imports) add_subdirectory(main) diff --git a/src/README.md b/src/README.md new file mode 100644 index 00000000..05b2481e --- /dev/null +++ b/src/README.md @@ -0,0 +1,5 @@ +This directory contains internal C++ and QML sources needed to build the main executable. + +- lib: contains internal static libraries +- imports: contains internal QML sources imported by main.qml. +- main: contains the sources of the main executable. diff --git a/src/imports/README.md b/src/imports/README.md new file mode 100644 index 00000000..7c3efe1a --- /dev/null +++ b/src/imports/README.md @@ -0,0 +1,3 @@ +This directory contains internal QML components used in the MellowPlayer executable. + +When public QML components will be needed (e.g. for native c++ plugins), they will reside in a top level ``imports`` directory. diff --git a/src/lib/MellowPlayer/Infrastructure/StreamingServices/StreamingServiceLoader.cpp b/src/lib/MellowPlayer/Infrastructure/StreamingServices/StreamingServiceLoader.cpp index f20c75ac..22b24bd3 100644 --- a/src/lib/MellowPlayer/Infrastructure/StreamingServices/StreamingServiceLoader.cpp +++ b/src/lib/MellowPlayer/Infrastructure/StreamingServices/StreamingServiceLoader.cpp @@ -138,7 +138,7 @@ QStringList StreamingServiceLoader::searchPaths() const { QStringList paths; - paths.append(BuildConfig::getSourceDir() + QDir::separator() + "src" + QDir::separator() + "plugins"); + paths.append(BuildConfig::getSourceDir() + QDir::separator() + "plugins"); paths.append(QFileInfo(QDir::currentPath(), "plugins").absoluteFilePath()); // appimage path is in /$mountpoint/usr/bin/../share/mellowplayer/plugins paths.append(QFileInfo(qApp->applicationDirPath(), "../share/mellowplayer/plugins").absoluteFilePath()); diff --git a/src/lib/README.md b/src/lib/README.md new file mode 100644 index 00000000..6f46249e --- /dev/null +++ b/src/lib/README.md @@ -0,0 +1,3 @@ +This directory contains internal static libraries used to create the MellowPlayer executable. + +When public libraries will be needed (e.g. for native c++ plugins), they will reside in a top level lib directory. diff --git a/src/tests/CMakeLists.txt b/tests/CMakeLists.txt similarity index 96% rename from src/tests/CMakeLists.txt rename to tests/CMakeLists.txt index 62fb23c2..5a186795 100644 --- a/src/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,10 +1,11 @@ include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/3rdparty/catch) include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/3rdparty/fakeit) include_directories(${CMAKE_SOURCE_DIR}/3rdparty/gtest-gmock) +include_directories(../src/lib) include_directories(.) include_directories(Lib) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) -add_definitions(-DPLUGINS_DIR=\"${CMAKE_SOURCE_DIR}/src/plugins\") +add_definitions(-DPLUGINS_DIR=\"${CMAKE_SOURCE_DIR}/plugins\") add_definitions(-DTEST_SUITE=1) set(CMAKE_CXX_FLAGS "${TESTS_CMAKE_CXX_FLAGS}") diff --git a/src/tests/IntegrationTests/Infrastructure/AlbumArt/AlbumArtDownloaderTests.cpp b/tests/IntegrationTests/Infrastructure/AlbumArt/AlbumArtDownloaderTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Infrastructure/AlbumArt/AlbumArtDownloaderTests.cpp rename to tests/IntegrationTests/Infrastructure/AlbumArt/AlbumArtDownloaderTests.cpp diff --git a/src/tests/IntegrationTests/Infrastructure/ListeningHistory/SqlLiteListeningHistoryDataProviderTests.cpp b/tests/IntegrationTests/Infrastructure/ListeningHistory/SqlLiteListeningHistoryDataProviderTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Infrastructure/ListeningHistory/SqlLiteListeningHistoryDataProviderTests.cpp rename to tests/IntegrationTests/Infrastructure/ListeningHistory/SqlLiteListeningHistoryDataProviderTests.cpp diff --git a/src/tests/IntegrationTests/Infrastructure/Network/FileDownloaderTests.cpp b/tests/IntegrationTests/Infrastructure/Network/FileDownloaderTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Infrastructure/Network/FileDownloaderTests.cpp rename to tests/IntegrationTests/Infrastructure/Network/FileDownloaderTests.cpp diff --git a/src/tests/IntegrationTests/Infrastructure/Network/LocalServerIntegrationTests.cpp b/tests/IntegrationTests/Infrastructure/Network/LocalServerIntegrationTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Infrastructure/Network/LocalServerIntegrationTests.cpp rename to tests/IntegrationTests/Infrastructure/Network/LocalServerIntegrationTests.cpp diff --git a/src/tests/IntegrationTests/Infrastructure/QtConcurrentWorkDispatcherTests.cpp b/tests/IntegrationTests/Infrastructure/QtConcurrentWorkDispatcherTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Infrastructure/QtConcurrentWorkDispatcherTests.cpp rename to tests/IntegrationTests/Infrastructure/QtConcurrentWorkDispatcherTests.cpp diff --git a/src/tests/IntegrationTests/Infrastructure/StreamingServices/StreamingServiceWatcherTests.cpp b/tests/IntegrationTests/Infrastructure/StreamingServices/StreamingServiceWatcherTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Infrastructure/StreamingServices/StreamingServiceWatcherTests.cpp rename to tests/IntegrationTests/Infrastructure/StreamingServices/StreamingServiceWatcherTests.cpp diff --git a/src/tests/IntegrationTests/Infrastructure/Updater/HttpClientTests.cpp b/tests/IntegrationTests/Infrastructure/Updater/HttpClientTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Infrastructure/Updater/HttpClientTests.cpp rename to tests/IntegrationTests/Infrastructure/Updater/HttpClientTests.cpp diff --git a/src/tests/IntegrationTests/Infrastructure/UserScripts/UserScriptTests.cpp b/tests/IntegrationTests/Infrastructure/UserScripts/UserScriptTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Infrastructure/UserScripts/UserScriptTests.cpp rename to tests/IntegrationTests/Infrastructure/UserScripts/UserScriptTests.cpp diff --git a/src/tests/IntegrationTests/Presentation/LoadQmlTests.cpp b/tests/IntegrationTests/Presentation/LoadQmlTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Presentation/LoadQmlTests.cpp rename to tests/IntegrationTests/Presentation/LoadQmlTests.cpp diff --git a/src/tests/IntegrationTests/Presentation/Notifications/LibnotifyPresenterTests.cpp b/tests/IntegrationTests/Presentation/Notifications/LibnotifyPresenterTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Presentation/Notifications/LibnotifyPresenterTests.cpp rename to tests/IntegrationTests/Presentation/Notifications/LibnotifyPresenterTests.cpp diff --git a/src/tests/IntegrationTests/Presentation/Notifications/SystemTrayIconTests.cpp b/tests/IntegrationTests/Presentation/Notifications/SystemTrayIconTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Presentation/Notifications/SystemTrayIconTests.cpp rename to tests/IntegrationTests/Presentation/Notifications/SystemTrayIconTests.cpp diff --git a/src/tests/IntegrationTests/Presentation/ViewModels/CacheViewModelTests.cpp b/tests/IntegrationTests/Presentation/ViewModels/CacheViewModelTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Presentation/ViewModels/CacheViewModelTests.cpp rename to tests/IntegrationTests/Presentation/ViewModels/CacheViewModelTests.cpp diff --git a/src/tests/IntegrationTests/Presentation/ViewModels/CookiesViewModelTests.cpp b/tests/IntegrationTests/Presentation/ViewModels/CookiesViewModelTests.cpp similarity index 100% rename from src/tests/IntegrationTests/Presentation/ViewModels/CookiesViewModelTests.cpp rename to tests/IntegrationTests/Presentation/ViewModels/CookiesViewModelTests.cpp diff --git a/src/tests/Lib/CMakeLists.txt b/tests/Lib/CMakeLists.txt similarity index 100% rename from src/tests/Lib/CMakeLists.txt rename to tests/Lib/CMakeLists.txt diff --git a/src/tests/Lib/Mocks/AlbumArtDownloaderMock.hpp b/tests/Lib/Mocks/AlbumArtDownloaderMock.hpp similarity index 100% rename from src/tests/Lib/Mocks/AlbumArtDownloaderMock.hpp rename to tests/Lib/Mocks/AlbumArtDownloaderMock.hpp diff --git a/src/tests/Lib/Mocks/FakeCommnandLineArguments.hpp b/tests/Lib/Mocks/FakeCommnandLineArguments.hpp similarity index 100% rename from src/tests/Lib/Mocks/FakeCommnandLineArguments.hpp rename to tests/Lib/Mocks/FakeCommnandLineArguments.hpp diff --git a/src/tests/Lib/Mocks/FakeFileDownloader.hpp b/tests/Lib/Mocks/FakeFileDownloader.hpp similarity index 100% rename from src/tests/Lib/Mocks/FakeFileDownloader.hpp rename to tests/Lib/Mocks/FakeFileDownloader.hpp diff --git a/src/tests/Lib/Mocks/FakeHttpClient.cpp b/tests/Lib/Mocks/FakeHttpClient.cpp similarity index 100% rename from src/tests/Lib/Mocks/FakeHttpClient.cpp rename to tests/Lib/Mocks/FakeHttpClient.cpp diff --git a/src/tests/Lib/Mocks/FakeHttpClient.hpp b/tests/Lib/Mocks/FakeHttpClient.hpp similarity index 100% rename from src/tests/Lib/Mocks/FakeHttpClient.hpp rename to tests/Lib/Mocks/FakeHttpClient.hpp diff --git a/src/tests/Lib/Mocks/FakeListeningHistoryDatabase.hpp b/tests/Lib/Mocks/FakeListeningHistoryDatabase.hpp similarity index 100% rename from src/tests/Lib/Mocks/FakeListeningHistoryDatabase.hpp rename to tests/Lib/Mocks/FakeListeningHistoryDatabase.hpp diff --git a/src/tests/Lib/Mocks/FakePlatformUpdater.hpp b/tests/Lib/Mocks/FakePlatformUpdater.hpp similarity index 100% rename from src/tests/Lib/Mocks/FakePlatformUpdater.hpp rename to tests/Lib/Mocks/FakePlatformUpdater.hpp diff --git a/src/tests/Lib/Mocks/FakeWorkDispatcher.hpp b/tests/Lib/Mocks/FakeWorkDispatcher.hpp similarity index 100% rename from src/tests/Lib/Mocks/FakeWorkDispatcher.hpp rename to tests/Lib/Mocks/FakeWorkDispatcher.hpp diff --git a/src/tests/Lib/Mocks/HotkeysServiceMock.hpp b/tests/Lib/Mocks/HotkeysServiceMock.hpp similarity index 100% rename from src/tests/Lib/Mocks/HotkeysServiceMock.hpp rename to tests/Lib/Mocks/HotkeysServiceMock.hpp diff --git a/src/tests/Lib/Mocks/MprisServiceMock.hpp b/tests/Lib/Mocks/MprisServiceMock.hpp similarity index 100% rename from src/tests/Lib/Mocks/MprisServiceMock.hpp rename to tests/Lib/Mocks/MprisServiceMock.hpp diff --git a/src/tests/Lib/Mocks/NotificationPresenterMock.hpp b/tests/Lib/Mocks/NotificationPresenterMock.hpp similarity index 100% rename from src/tests/Lib/Mocks/NotificationPresenterMock.hpp rename to tests/Lib/Mocks/NotificationPresenterMock.hpp diff --git a/src/tests/Lib/Mocks/NotifierMock.hpp b/tests/Lib/Mocks/NotifierMock.hpp similarity index 100% rename from src/tests/Lib/Mocks/NotifierMock.hpp rename to tests/Lib/Mocks/NotifierMock.hpp diff --git a/src/tests/Lib/Mocks/PlayerMock.hpp b/tests/Lib/Mocks/PlayerMock.hpp similarity index 100% rename from src/tests/Lib/Mocks/PlayerMock.hpp rename to tests/Lib/Mocks/PlayerMock.hpp diff --git a/src/tests/Lib/Mocks/StreamingServiceCreatorMock.hpp b/tests/Lib/Mocks/StreamingServiceCreatorMock.hpp similarity index 100% rename from src/tests/Lib/Mocks/StreamingServiceCreatorMock.hpp rename to tests/Lib/Mocks/StreamingServiceCreatorMock.hpp diff --git a/src/tests/Lib/Mocks/SystemTrayIconMock.hpp b/tests/Lib/Mocks/SystemTrayIconMock.hpp similarity index 100% rename from src/tests/Lib/Mocks/SystemTrayIconMock.hpp rename to tests/Lib/Mocks/SystemTrayIconMock.hpp diff --git a/src/tests/Lib/Mocks/ThemeLoaderMock.hpp b/tests/Lib/Mocks/ThemeLoaderMock.hpp similarity index 100% rename from src/tests/Lib/Mocks/ThemeLoaderMock.hpp rename to tests/Lib/Mocks/ThemeLoaderMock.hpp diff --git a/src/tests/Lib/TestMacros.hpp b/tests/Lib/TestMacros.hpp similarity index 100% rename from src/tests/Lib/TestMacros.hpp rename to tests/Lib/TestMacros.hpp diff --git a/src/tests/Lib/TestsRunner.cpp b/tests/Lib/TestsRunner.cpp similarity index 100% rename from src/tests/Lib/TestsRunner.cpp rename to tests/Lib/TestsRunner.cpp diff --git a/src/tests/Lib/TestsRunner.hpp b/tests/Lib/TestsRunner.hpp similarity index 100% rename from src/tests/Lib/TestsRunner.hpp rename to tests/Lib/TestsRunner.hpp diff --git a/src/tests/Lib/Utils/DependencyPool.cpp b/tests/Lib/Utils/DependencyPool.cpp similarity index 100% rename from src/tests/Lib/Utils/DependencyPool.cpp rename to tests/Lib/Utils/DependencyPool.cpp diff --git a/src/tests/Lib/Utils/DependencyPool.hpp b/tests/Lib/Utils/DependencyPool.hpp similarity index 100% rename from src/tests/Lib/Utils/DependencyPool.hpp rename to tests/Lib/Utils/DependencyPool.hpp diff --git a/src/tests/Lib/Utils/Helpers.cpp b/tests/Lib/Utils/Helpers.cpp similarity index 100% rename from src/tests/Lib/Utils/Helpers.cpp rename to tests/Lib/Utils/Helpers.cpp diff --git a/src/tests/Lib/Utils/Helpers.hpp b/tests/Lib/Utils/Helpers.hpp similarity index 100% rename from src/tests/Lib/Utils/Helpers.hpp rename to tests/Lib/Utils/Helpers.hpp diff --git a/src/tests/MprisTests/Mpris2PlayerTests.cpp b/tests/MprisTests/Mpris2PlayerTests.cpp similarity index 100% rename from src/tests/MprisTests/Mpris2PlayerTests.cpp rename to tests/MprisTests/Mpris2PlayerTests.cpp diff --git a/src/tests/MprisTests/Mpris2RootTests.cpp b/tests/MprisTests/Mpris2RootTests.cpp similarity index 100% rename from src/tests/MprisTests/Mpris2RootTests.cpp rename to tests/MprisTests/Mpris2RootTests.cpp diff --git a/src/tests/MprisTests/MprisServiceTests.cpp b/tests/MprisTests/MprisServiceTests.cpp similarity index 100% rename from src/tests/MprisTests/MprisServiceTests.cpp rename to tests/MprisTests/MprisServiceTests.cpp diff --git a/src/tests/UnitTests/Domain/ListeningHistory/ListeningHistoryEntryTests.cpp b/tests/UnitTests/Domain/ListeningHistory/ListeningHistoryEntryTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/ListeningHistory/ListeningHistoryEntryTests.cpp rename to tests/UnitTests/Domain/ListeningHistory/ListeningHistoryEntryTests.cpp diff --git a/src/tests/UnitTests/Domain/ListeningHistory/ListeningHistoryTests.cpp b/tests/UnitTests/Domain/ListeningHistory/ListeningHistoryTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/ListeningHistory/ListeningHistoryTests.cpp rename to tests/UnitTests/Domain/ListeningHistory/ListeningHistoryTests.cpp diff --git a/src/tests/UnitTests/Domain/Logging/FakeLogger.hpp b/tests/UnitTests/Domain/Logging/FakeLogger.hpp similarity index 100% rename from src/tests/UnitTests/Domain/Logging/FakeLogger.hpp rename to tests/UnitTests/Domain/Logging/FakeLogger.hpp diff --git a/src/tests/UnitTests/Domain/Logging/FakeLoggerFactory.hpp b/tests/UnitTests/Domain/Logging/FakeLoggerFactory.hpp similarity index 100% rename from src/tests/UnitTests/Domain/Logging/FakeLoggerFactory.hpp rename to tests/UnitTests/Domain/Logging/FakeLoggerFactory.hpp diff --git a/src/tests/UnitTests/Domain/Logging/LoggingManagerTests.cpp b/tests/UnitTests/Domain/Logging/LoggingManagerTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/Logging/LoggingManagerTests.cpp rename to tests/UnitTests/Domain/Logging/LoggingManagerTests.cpp diff --git a/src/tests/UnitTests/Domain/Player/CurrentPlayerTests.cpp b/tests/UnitTests/Domain/Player/CurrentPlayerTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/Player/CurrentPlayerTests.cpp rename to tests/UnitTests/Domain/Player/CurrentPlayerTests.cpp diff --git a/src/tests/UnitTests/Domain/Player/PlayerTests.cpp b/tests/UnitTests/Domain/Player/PlayerTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/Player/PlayerTests.cpp rename to tests/UnitTests/Domain/Player/PlayerTests.cpp diff --git a/src/tests/UnitTests/Domain/Player/SongTests.cpp b/tests/UnitTests/Domain/Player/SongTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/Player/SongTests.cpp rename to tests/UnitTests/Domain/Player/SongTests.cpp diff --git a/src/tests/UnitTests/Domain/Settings/FakeSettingsStore.cpp b/tests/UnitTests/Domain/Settings/FakeSettingsStore.cpp similarity index 100% rename from src/tests/UnitTests/Domain/Settings/FakeSettingsStore.cpp rename to tests/UnitTests/Domain/Settings/FakeSettingsStore.cpp diff --git a/src/tests/UnitTests/Domain/Settings/FakeSettingsStore.hpp b/tests/UnitTests/Domain/Settings/FakeSettingsStore.hpp similarity index 100% rename from src/tests/UnitTests/Domain/Settings/FakeSettingsStore.hpp rename to tests/UnitTests/Domain/Settings/FakeSettingsStore.hpp diff --git a/src/tests/UnitTests/Domain/Settings/SettingsTests.cpp b/tests/UnitTests/Domain/Settings/SettingsTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/Settings/SettingsTests.cpp rename to tests/UnitTests/Domain/Settings/SettingsTests.cpp diff --git a/src/tests/UnitTests/Domain/StreamingServices/FakeStreamingServiceLoader.hpp b/tests/UnitTests/Domain/StreamingServices/FakeStreamingServiceLoader.hpp similarity index 100% rename from src/tests/UnitTests/Domain/StreamingServices/FakeStreamingServiceLoader.hpp rename to tests/UnitTests/Domain/StreamingServices/FakeStreamingServiceLoader.hpp diff --git a/src/tests/UnitTests/Domain/StreamingServices/FakeStreamingServiceWatcher.hpp b/tests/UnitTests/Domain/StreamingServices/FakeStreamingServiceWatcher.hpp similarity index 100% rename from src/tests/UnitTests/Domain/StreamingServices/FakeStreamingServiceWatcher.hpp rename to tests/UnitTests/Domain/StreamingServices/FakeStreamingServiceWatcher.hpp diff --git a/src/tests/UnitTests/Domain/StreamingServices/StreamingServiceMetadataTests.cpp b/tests/UnitTests/Domain/StreamingServices/StreamingServiceMetadataTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/StreamingServices/StreamingServiceMetadataTests.cpp rename to tests/UnitTests/Domain/StreamingServices/StreamingServiceMetadataTests.cpp diff --git a/src/tests/UnitTests/Domain/StreamingServices/StreamingServiceScriptTests.cpp b/tests/UnitTests/Domain/StreamingServices/StreamingServiceScriptTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/StreamingServices/StreamingServiceScriptTests.cpp rename to tests/UnitTests/Domain/StreamingServices/StreamingServiceScriptTests.cpp diff --git a/src/tests/UnitTests/Domain/StreamingServices/StreamingServiceTests.cpp b/tests/UnitTests/Domain/StreamingServices/StreamingServiceTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/StreamingServices/StreamingServiceTests.cpp rename to tests/UnitTests/Domain/StreamingServices/StreamingServiceTests.cpp diff --git a/src/tests/UnitTests/Domain/StreamingServices/StreamingServicesTests.cpp b/tests/UnitTests/Domain/StreamingServices/StreamingServicesTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/StreamingServices/StreamingServicesTests.cpp rename to tests/UnitTests/Domain/StreamingServices/StreamingServicesTests.cpp diff --git a/src/tests/UnitTests/Domain/UserScripts/FakeUserScript.hpp b/tests/UnitTests/Domain/UserScripts/FakeUserScript.hpp similarity index 100% rename from src/tests/UnitTests/Domain/UserScripts/FakeUserScript.hpp rename to tests/UnitTests/Domain/UserScripts/FakeUserScript.hpp diff --git a/src/tests/UnitTests/Domain/UserScripts/UserScriptBaseTests.cpp b/tests/UnitTests/Domain/UserScripts/UserScriptBaseTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/UserScripts/UserScriptBaseTests.cpp rename to tests/UnitTests/Domain/UserScripts/UserScriptBaseTests.cpp diff --git a/src/tests/UnitTests/Domain/UserScripts/UserScriptsTests.cpp b/tests/UnitTests/Domain/UserScripts/UserScriptsTests.cpp similarity index 100% rename from src/tests/UnitTests/Domain/UserScripts/UserScriptsTests.cpp rename to tests/UnitTests/Domain/UserScripts/UserScriptsTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/AlbumArt/LocalAlbumArtTests.cpp b/tests/UnitTests/Infrastructure/AlbumArt/LocalAlbumArtTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/AlbumArt/LocalAlbumArtTests.cpp rename to tests/UnitTests/Infrastructure/AlbumArt/LocalAlbumArtTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Application/ApplicationDecoratorTests.cpp b/tests/UnitTests/Infrastructure/Application/ApplicationDecoratorTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Application/ApplicationDecoratorTests.cpp rename to tests/UnitTests/Infrastructure/Application/ApplicationDecoratorTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Application/ApplicationTests.cpp b/tests/UnitTests/Infrastructure/Application/ApplicationTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Application/ApplicationTests.cpp rename to tests/UnitTests/Infrastructure/Application/ApplicationTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Application/FakeApplication.hpp b/tests/UnitTests/Infrastructure/Application/FakeApplication.hpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Application/FakeApplication.hpp rename to tests/UnitTests/Infrastructure/Application/FakeApplication.hpp diff --git a/src/tests/UnitTests/Infrastructure/Application/FakeQtApplication.hpp b/tests/UnitTests/Infrastructure/Application/FakeQtApplication.hpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Application/FakeQtApplication.hpp rename to tests/UnitTests/Infrastructure/Application/FakeQtApplication.hpp diff --git a/src/tests/UnitTests/Infrastructure/Application/SingleInstanceTests.cpp b/tests/UnitTests/Infrastructure/Application/SingleInstanceTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Application/SingleInstanceTests.cpp rename to tests/UnitTests/Infrastructure/Application/SingleInstanceTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Application/WithCommandLineArgumentsTests.cpp b/tests/UnitTests/Infrastructure/Application/WithCommandLineArgumentsTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Application/WithCommandLineArgumentsTests.cpp rename to tests/UnitTests/Infrastructure/Application/WithCommandLineArgumentsTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Application/WithLoggingTests.cpp b/tests/UnitTests/Infrastructure/Application/WithLoggingTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Application/WithLoggingTests.cpp rename to tests/UnitTests/Infrastructure/Application/WithLoggingTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Network/ApplicationNetworkProxyTests.cpp b/tests/UnitTests/Infrastructure/Network/ApplicationNetworkProxyTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Network/ApplicationNetworkProxyTests.cpp rename to tests/UnitTests/Infrastructure/Network/ApplicationNetworkProxyTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Network/FakeLocalServer.hpp b/tests/UnitTests/Infrastructure/Network/FakeLocalServer.hpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Network/FakeLocalServer.hpp rename to tests/UnitTests/Infrastructure/Network/FakeLocalServer.hpp diff --git a/src/tests/UnitTests/Infrastructure/Network/FakeLocalSocket.hpp b/tests/UnitTests/Infrastructure/Network/FakeLocalSocket.hpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Network/FakeLocalSocket.hpp rename to tests/UnitTests/Infrastructure/Network/FakeLocalSocket.hpp diff --git a/src/tests/UnitTests/Infrastructure/Network/FakeNetworkProxies.hpp b/tests/UnitTests/Infrastructure/Network/FakeNetworkProxies.hpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Network/FakeNetworkProxies.hpp rename to tests/UnitTests/Infrastructure/Network/FakeNetworkProxies.hpp diff --git a/src/tests/UnitTests/Infrastructure/Network/NetworkProxiesTests.cpp b/tests/UnitTests/Infrastructure/Network/NetworkProxiesTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Network/NetworkProxiesTests.cpp rename to tests/UnitTests/Infrastructure/Network/NetworkProxiesTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Network/NetworkProxyTests.cpp b/tests/UnitTests/Infrastructure/Network/NetworkProxyTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Network/NetworkProxyTests.cpp rename to tests/UnitTests/Infrastructure/Network/NetworkProxyTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/PlatformFilters/AllFilterTests.cpp b/tests/UnitTests/Infrastructure/PlatformFilters/AllFilterTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/PlatformFilters/AllFilterTests.cpp rename to tests/UnitTests/Infrastructure/PlatformFilters/AllFilterTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/PlatformFilters/AppImageFilterTests.cpp b/tests/UnitTests/Infrastructure/PlatformFilters/AppImageFilterTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/PlatformFilters/AppImageFilterTests.cpp rename to tests/UnitTests/Infrastructure/PlatformFilters/AppImageFilterTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/PlatformFilters/FilterConverterTests.cpp b/tests/UnitTests/Infrastructure/PlatformFilters/FilterConverterTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/PlatformFilters/FilterConverterTests.cpp rename to tests/UnitTests/Infrastructure/PlatformFilters/FilterConverterTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/PlatformFilters/LinuxFilterTests.cpp b/tests/UnitTests/Infrastructure/PlatformFilters/LinuxFilterTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/PlatformFilters/LinuxFilterTests.cpp rename to tests/UnitTests/Infrastructure/PlatformFilters/LinuxFilterTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/PlatformFilters/OsxFilterTests.cpp b/tests/UnitTests/Infrastructure/PlatformFilters/OsxFilterTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/PlatformFilters/OsxFilterTests.cpp rename to tests/UnitTests/Infrastructure/PlatformFilters/OsxFilterTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/PlatformFilters/PlatformFilterFactoryTests.cpp b/tests/UnitTests/Infrastructure/PlatformFilters/PlatformFilterFactoryTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/PlatformFilters/PlatformFilterFactoryTests.cpp rename to tests/UnitTests/Infrastructure/PlatformFilters/PlatformFilterFactoryTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/PlatformFilters/PlatformFiltersTests.cpp b/tests/UnitTests/Infrastructure/PlatformFilters/PlatformFiltersTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/PlatformFilters/PlatformFiltersTests.cpp rename to tests/UnitTests/Infrastructure/PlatformFilters/PlatformFiltersTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/PlatformFilters/TokenizedFilterTests.cpp b/tests/UnitTests/Infrastructure/PlatformFilters/TokenizedFilterTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/PlatformFilters/TokenizedFilterTests.cpp rename to tests/UnitTests/Infrastructure/PlatformFilters/TokenizedFilterTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/PlatformFilters/WindowsFilterTests.cpp b/tests/UnitTests/Infrastructure/PlatformFilters/WindowsFilterTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/PlatformFilters/WindowsFilterTests.cpp rename to tests/UnitTests/Infrastructure/PlatformFilters/WindowsFilterTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Settings/QSettingsProviderTests.cpp b/tests/UnitTests/Infrastructure/Settings/QSettingsProviderTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Settings/QSettingsProviderTests.cpp rename to tests/UnitTests/Infrastructure/Settings/QSettingsProviderTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/StreamingServices/StreamingServiceCreatorTests.cpp b/tests/UnitTests/Infrastructure/StreamingServices/StreamingServiceCreatorTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/StreamingServices/StreamingServiceCreatorTests.cpp rename to tests/UnitTests/Infrastructure/StreamingServices/StreamingServiceCreatorTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/StreamingServices/StreamingServiceLoaderTests.cpp b/tests/UnitTests/Infrastructure/StreamingServices/StreamingServiceLoaderTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/StreamingServices/StreamingServiceLoaderTests.cpp rename to tests/UnitTests/Infrastructure/StreamingServices/StreamingServiceLoaderTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Updater/AssetTests.cpp b/tests/UnitTests/Infrastructure/Updater/AssetTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Updater/AssetTests.cpp rename to tests/UnitTests/Infrastructure/Updater/AssetTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Updater/Github/GithubReleaseQuerierTests.cpp b/tests/UnitTests/Infrastructure/Updater/Github/GithubReleaseQuerierTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Updater/Github/GithubReleaseQuerierTests.cpp rename to tests/UnitTests/Infrastructure/Updater/Github/GithubReleaseQuerierTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Updater/Github/GithubReleasesReplyParserTests.cpp b/tests/UnitTests/Infrastructure/Updater/Github/GithubReleasesReplyParserTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Updater/Github/GithubReleasesReplyParserTests.cpp rename to tests/UnitTests/Infrastructure/Updater/Github/GithubReleasesReplyParserTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Updater/ReleaseTests.cpp b/tests/UnitTests/Infrastructure/Updater/ReleaseTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Updater/ReleaseTests.cpp rename to tests/UnitTests/Infrastructure/Updater/ReleaseTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/Updater/UpdaterTests.cpp b/tests/UnitTests/Infrastructure/Updater/UpdaterTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/Updater/UpdaterTests.cpp rename to tests/UnitTests/Infrastructure/Updater/UpdaterTests.cpp diff --git a/src/tests/UnitTests/Infrastructure/UserScripts/UserScriptFactoryTests.cpp b/tests/UnitTests/Infrastructure/UserScripts/UserScriptFactoryTests.cpp similarity index 100% rename from src/tests/UnitTests/Infrastructure/UserScripts/UserScriptFactoryTests.cpp rename to tests/UnitTests/Infrastructure/UserScripts/UserScriptFactoryTests.cpp diff --git a/src/tests/UnitTests/Presentation/Converters/DateTimeConverterTests.cpp b/tests/UnitTests/Presentation/Converters/DateTimeConverterTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/Converters/DateTimeConverterTests.cpp rename to tests/UnitTests/Presentation/Converters/DateTimeConverterTests.cpp diff --git a/src/tests/UnitTests/Presentation/Converters/UpdateStatusConverterTests.cpp b/tests/UnitTests/Presentation/Converters/UpdateStatusConverterTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/Converters/UpdateStatusConverterTests.cpp rename to tests/UnitTests/Presentation/Converters/UpdateStatusConverterTests.cpp diff --git a/src/tests/UnitTests/Presentation/Factories/SettingViewModelFactoryTests.cpp b/tests/UnitTests/Presentation/Factories/SettingViewModelFactoryTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/Factories/SettingViewModelFactoryTests.cpp rename to tests/UnitTests/Presentation/Factories/SettingViewModelFactoryTests.cpp diff --git a/src/tests/UnitTests/Presentation/FakeMainWindow.hpp b/tests/UnitTests/Presentation/FakeMainWindow.hpp similarity index 100% rename from src/tests/UnitTests/Presentation/FakeMainWindow.hpp rename to tests/UnitTests/Presentation/FakeMainWindow.hpp diff --git a/src/tests/UnitTests/Presentation/HotkeysTests.cpp b/tests/UnitTests/Presentation/HotkeysTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/HotkeysTests.cpp rename to tests/UnitTests/Presentation/HotkeysTests.cpp diff --git a/src/tests/UnitTests/Presentation/IconProviderTests.cpp b/tests/UnitTests/Presentation/IconProviderTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/IconProviderTests.cpp rename to tests/UnitTests/Presentation/IconProviderTests.cpp diff --git a/src/tests/UnitTests/Presentation/Notifications/NotificationTests.cpp b/tests/UnitTests/Presentation/Notifications/NotificationTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/Notifications/NotificationTests.cpp rename to tests/UnitTests/Presentation/Notifications/NotificationTests.cpp diff --git a/src/tests/UnitTests/Presentation/Notifications/NotificationsTests.cpp b/tests/UnitTests/Presentation/Notifications/NotificationsTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/Notifications/NotificationsTests.cpp rename to tests/UnitTests/Presentation/Notifications/NotificationsTests.cpp diff --git a/src/tests/UnitTests/Presentation/Notifications/SystemTrayIconPresenterTests.cpp b/tests/UnitTests/Presentation/Notifications/SystemTrayIconPresenterTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/Notifications/SystemTrayIconPresenterTests.cpp rename to tests/UnitTests/Presentation/Notifications/SystemTrayIconPresenterTests.cpp diff --git a/src/tests/UnitTests/Presentation/Qml/ContextPropertiesTests.cpp b/tests/UnitTests/Presentation/Qml/ContextPropertiesTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/Qml/ContextPropertiesTests.cpp rename to tests/UnitTests/Presentation/Qml/ContextPropertiesTests.cpp diff --git a/src/tests/UnitTests/Presentation/Qml/ContextPropertyTests.cpp b/tests/UnitTests/Presentation/Qml/ContextPropertyTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/Qml/ContextPropertyTests.cpp rename to tests/UnitTests/Presentation/Qml/ContextPropertyTests.cpp diff --git a/src/tests/UnitTests/Presentation/Qml/FakeContextProperties.hpp b/tests/UnitTests/Presentation/Qml/FakeContextProperties.hpp similarity index 100% rename from src/tests/UnitTests/Presentation/Qml/FakeContextProperties.hpp rename to tests/UnitTests/Presentation/Qml/FakeContextProperties.hpp diff --git a/src/tests/UnitTests/Presentation/Qml/FakeContextProperty.hpp b/tests/UnitTests/Presentation/Qml/FakeContextProperty.hpp similarity index 100% rename from src/tests/UnitTests/Presentation/Qml/FakeContextProperty.hpp rename to tests/UnitTests/Presentation/Qml/FakeContextProperty.hpp diff --git a/src/tests/UnitTests/Presentation/Qml/FakeQmlApplicationEngine.hpp b/tests/UnitTests/Presentation/Qml/FakeQmlApplicationEngine.hpp similarity index 100% rename from src/tests/UnitTests/Presentation/Qml/FakeQmlApplicationEngine.hpp rename to tests/UnitTests/Presentation/Qml/FakeQmlApplicationEngine.hpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/ApplicationViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/ApplicationViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/ApplicationViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/ApplicationViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/ClipBoardViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/ClipBoardViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/ClipBoardViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/ClipBoardViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/ListeningHistory/ListeningHistoryEntryModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/ListeningHistory/ListeningHistoryEntryModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/ListeningHistory/ListeningHistoryEntryModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/ListeningHistory/ListeningHistoryEntryModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/ListeningHistory/ListeningHistoryViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/ListeningHistory/ListeningHistoryViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/ListeningHistory/ListeningHistoryViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/ListeningHistory/ListeningHistoryViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/MainWindowViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/MainWindowViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/MainWindowViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/MainWindowViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/Settings/SettingsCategoryViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/Settings/SettingsCategoryViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/Settings/SettingsCategoryViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/Settings/SettingsCategoryViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/Settings/SettingsViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/Settings/SettingsViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/Settings/SettingsViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/Settings/SettingsViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/Settings/Types/BoolSettingViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/Settings/Types/BoolSettingViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/Settings/Types/BoolSettingViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/Settings/Types/BoolSettingViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/Settings/Types/ColorSettingViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/Settings/Types/ColorSettingViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/Settings/Types/ColorSettingViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/Settings/Types/ColorSettingViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/Settings/Types/EnumSettingViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/Settings/Types/EnumSettingViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/Settings/Types/EnumSettingViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/Settings/Types/EnumSettingViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/Settings/Types/SettingViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/Settings/Types/SettingViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/Settings/Types/SettingViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/Settings/Types/SettingViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/Settings/Types/ShortcutSettingViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/Settings/Types/ShortcutSettingViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/Settings/Types/ShortcutSettingViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/Settings/Types/ShortcutSettingViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/Settings/Types/StringSettingViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/Settings/Types/StringSettingViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/Settings/Types/StringSettingViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/Settings/Types/StringSettingViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/StreamingServices/StreamingServiceViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/StreamingServices/StreamingServiceViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/StreamingServices/StreamingServiceViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/StreamingServices/StreamingServiceViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/StreamingServices/StreamingServicesViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/StreamingServices/StreamingServicesViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/StreamingServices/StreamingServicesViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/StreamingServices/StreamingServicesViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/ThemeViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/ThemeViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/ThemeViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/ThemeViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/UpdaterViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/UpdaterViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/UpdaterViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/UpdaterViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/UserScripts/UserScriptViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/UserScripts/UserScriptViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/UserScripts/UserScriptViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/UserScripts/UserScriptViewModelTests.cpp diff --git a/src/tests/UnitTests/Presentation/ViewModels/UserScripts/UserScriptsViewModelTests.cpp b/tests/UnitTests/Presentation/ViewModels/UserScripts/UserScriptsViewModelTests.cpp similarity index 100% rename from src/tests/UnitTests/Presentation/ViewModels/UserScripts/UserScriptsViewModelTests.cpp rename to tests/UnitTests/Presentation/ViewModels/UserScripts/UserScriptsViewModelTests.cpp diff --git a/src/tests/main.cpp b/tests/main.cpp similarity index 100% rename from src/tests/main.cpp rename to tests/main.cpp diff --git a/src/tests/stdafx.hpp b/tests/stdafx.hpp similarity index 100% rename from src/tests/stdafx.hpp rename to tests/stdafx.hpp