summaryrefslogtreecommitdiffstats
path: root/tests/auto/other/android_deployment_settings/tst_android_deployment_settings.cpp
blob: d68d08b58eb71bb5029be84c97790ee94d1fae6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only

#include <QJsonDocument>
#include <QJsonObject>
#include <QFile>
#include <QTest>
#include <QLibraryInfo>
#include <QDir>

class tst_android_deployment_settings : public QObject
{
    Q_OBJECT

private slots:
    void initTestCase_data();
    void init();

    void DeploymentSettings_data();
    void DeploymentSettings();

    void QtPaths_data();
    void QtPaths();

private:
    static QString makePath(QLibraryInfo::LibraryLocation loc);
    QJsonDocument jsonDoc;
};

QString tst_android_deployment_settings::makePath(QLibraryInfo::LibraryLocation loc)
{
    const auto prefix = QLibraryInfo::path(QLibraryInfo::PrefixPath);
    auto path = QLibraryInfo::path(loc);
    path.remove(0, prefix.size() + 1);
    if (path.isEmpty()) // Assume that if path is empty it's '.'
        path = ".";
    return path;
}

void tst_android_deployment_settings::initTestCase_data()
{
    QTest::addColumn<QString>("file");
    QTest::newRow("old") << ":/old_settings.json";
    QTest::newRow("new") << ":/new_settings.json";
}

void tst_android_deployment_settings::init()
{
    QFETCH_GLOBAL(QString, file);
    QFile settings(file);
    QVERIFY(settings.open(QIODeviceBase::ReadOnly));
    jsonDoc = QJsonDocument::fromJson(settings.readAll());
    QVERIFY(!jsonDoc.isNull());
}

void tst_android_deployment_settings::DeploymentSettings_data()
{
    QTest::addColumn<QString>("key");
    QTest::addColumn<QString>("value");

    QTest::newRow("sdkBuildToolsRevision") << "sdkBuildToolsRevision"
                                           << "23.0.2";
    QTest::newRow("deployment-dependencies") << "deployment-dependencies"
                                             << "dep1.so,dep2.so,dep3.so";
    QTest::newRow("android-extra-plugins")
            << "android-extra-plugins"
            << "some/path/to/plugin1.so,some/path/to/plugin2.so,some/path/to/plugin3.so";
    QTest::newRow("android-extra-libs") << "android-extra-libs"
                                        << "some/path/to/lib1.so,some/path/to/lib2.so,some/path/to/"
                                           "lib3.so,some/path/to/lib4.so";
    QTest::newRow("android-system-libs-prefix") << "android-system-libs-prefix"
                                                << "myLibPrefix";
    QTest::newRow("android-package-source-directory") << "android-package-source-directory"
                                                      << "path/to/source/dir";
    QTest::newRow("android-min-sdk-version") << "android-min-sdk-version"
                                             << "1";
    QTest::newRow("android-target-sdk-version") << "android-target-sdk-version"
                                                << "2";
}

void tst_android_deployment_settings::DeploymentSettings()
{
    QFETCH(QString, key);
    QFETCH(QString, value);
    QCOMPARE(jsonDoc[key].toString(), value);
}

void tst_android_deployment_settings::QtPaths_data()
{
    QTest::addColumn<QString>("key");
    QTest::addColumn<QString>("value");

    QTest::newRow("qtDataDirectory") << "qtDataDirectory" << makePath(QLibraryInfo::DataPath);
    QTest::newRow("qtLibExecsDirectory")
            << "qtLibExecsDirectory" << makePath(QLibraryInfo::LibraryExecutablesPath);
    QTest::newRow("qtLibsDirectory") << "qtLibsDirectory" << makePath(QLibraryInfo::LibrariesPath);
    QTest::newRow("qtPluginsDirectory")
            << "qtPluginsDirectory" << makePath(QLibraryInfo::PluginsPath);
    QTest::newRow("qtQmlDirectory") << "qtQmlDirectory" << makePath(QLibraryInfo::QmlImportsPath);
}

void tst_android_deployment_settings::QtPaths()
{
    QFETCH(QString, key);
    QFETCH(QString, value);
    QCOMPARE(QDir::cleanPath(jsonDoc[key].toObject()[DEFAULT_ABI].toString()),
             QDir::cleanPath(value));
}

QTEST_MAIN(tst_android_deployment_settings)

#include "tst_android_deployment_settings.moc"