~mir-team/qtmir/compatibility-with-mir-API-changes

« back to all changes in this revision

Viewing changes to tests/modules/DesktopFileReader/desktopfilereader_test.cpp

  • Committer: Cemil Azizoglu
  • Date: 2015-01-05 16:25:16 UTC
  • mfrom: (266.1.30 qtmir)
  • Revision ID: cemil.azizoglu@canonical.com-20150105162516-vt9dmnjdvng11yu8
Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2014 Canonical, Ltd.
 
3
 *
 
4
 * This program is free software: you can redistribute it and/or modify it under
 
5
 * the terms of the GNU Lesser General Public License version 3, as published by
 
6
 * the Free Software Foundation.
 
7
 *
 
8
 * This program is distributed in the hope that it will be useful, but WITHOUT
 
9
 * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
 
10
 * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
11
 * Lesser General Public License for more details.
 
12
 *
 
13
 * You should have received a copy of the GNU Lesser General Public License
 
14
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
15
 *
 
16
 */
 
17
 
 
18
#include <Unity/Application/desktopfilereader.h>
 
19
 
 
20
#include <gtest/gtest.h>
 
21
 
 
22
#include <QDir>
 
23
#include <QFileInfo>
 
24
#include <QLocale>
 
25
#include <QtGlobal>
 
26
#include <QString>
 
27
 
 
28
using namespace qtmir;
 
29
 
 
30
namespace {
 
31
    static void setLocale(const char *locale)
 
32
    {
 
33
        qputenv("LANGUAGE", locale);
 
34
        qputenv("LC_ALL", locale); // set these for GIO
 
35
        QLocale::setDefault(QString(locale)); // set for Qt
 
36
    }
 
37
}
 
38
 
 
39
TEST(DesktopFileReader, testReadsDesktopFile)
 
40
{
 
41
    using namespace ::testing;
 
42
    setLocale("C");
 
43
 
 
44
    QFileInfo fileInfo(QString(TEST_SOURCE_DIR) + "/calculator.desktop");
 
45
    DesktopFileReader::Factory readerFactory;
 
46
    DesktopFileReader *reader = readerFactory.createInstance("calculator", fileInfo);
 
47
 
 
48
    EXPECT_EQ(reader->loaded(), true);
 
49
    EXPECT_EQ(reader->appId(), "calculator");
 
50
    EXPECT_EQ(reader->name(), "Calculator");
 
51
    EXPECT_EQ(reader->exec(), "yes -p com.ubuntu.calculator_calculator_1.3.329 -- qmlscene -qt5 ubuntu-calculator-app.qml");
 
52
    EXPECT_EQ(reader->icon(), "/usr/share/click/preinstalled/.click/users/@all/com.ubuntu.calculator/calculator-app@30.png");
 
53
    EXPECT_EQ(reader->path(), "/usr/share/click/preinstalled/.click/users/@all/com.ubuntu.calculator");
 
54
    EXPECT_EQ(reader->comment(), "A simple calculator for Ubuntu.");
 
55
    EXPECT_EQ(reader->stageHint(), "SideStage");
 
56
    EXPECT_EQ(reader->splashColor(), "#aabbcc");
 
57
    EXPECT_EQ(reader->splashColorFooter(), "#deadbeefda");
 
58
    EXPECT_EQ(reader->splashColorHeader(), "purple");
 
59
    EXPECT_EQ(reader->splashImage(), "/usr/share/click/preinstalled/.click/users/@all/com.ubuntu.calculator/calculator-app@30.png");
 
60
    EXPECT_EQ(reader->splashShowHeader(), "True");
 
61
    EXPECT_EQ(reader->splashTitle(), "Calculator 2.0");
 
62
}
 
63
 
 
64
TEST(DesktopFileReader, testReadsLocalizedDesktopFile)
 
65
{
 
66
    using namespace ::testing;
 
67
    setLocale("de");
 
68
 
 
69
    QFileInfo fileInfo(QString(TEST_SOURCE_DIR) + "/calculator.desktop");
 
70
    DesktopFileReader::Factory readerFactory;
 
71
    DesktopFileReader *reader = readerFactory.createInstance("calculator", fileInfo);
 
72
 
 
73
    EXPECT_EQ(reader->loaded(), true);
 
74
    EXPECT_EQ(reader->appId(), "calculator");
 
75
    EXPECT_EQ(reader->name(), "Taschenrechner");
 
76
    EXPECT_EQ(reader->exec(), "yes -p com.ubuntu.calculator_calculator_1.3.329 -- qmlscene -qt5 ubuntu-calculator-app.qml");
 
77
    EXPECT_EQ(reader->icon(), "/usr/share/click/preinstalled/.click/users/@all/com.ubuntu.calculator/calculator-app@30.png");
 
78
    EXPECT_EQ(reader->path(), "/usr/share/click/preinstalled/.click/users/@all/com.ubuntu.calculator");
 
79
    EXPECT_EQ(reader->comment(), "Ein einfach Tachenrechner für Ubuntu.");
 
80
    EXPECT_EQ(reader->stageHint(), "SideStage");
 
81
    EXPECT_EQ(reader->splashColor(), "#aabbcc");
 
82
    EXPECT_EQ(reader->splashColorFooter(), "#deadbeefda");
 
83
    EXPECT_EQ(reader->splashColorHeader(), "purple");
 
84
    EXPECT_EQ(reader->splashImage(), "/usr/share/click/preinstalled/.click/users/@all/com.ubuntu.calculator/calculator-app@30.png");
 
85
    EXPECT_EQ(reader->splashShowHeader(), "True");
 
86
    EXPECT_EQ(reader->splashTitle(), "Taschenrechner 2.0");
 
87
}
 
88
 
 
89
TEST(DesktopFileReader, testMissingDesktopFile)
 
90
{
 
91
    using namespace ::testing;
 
92
    setLocale("C");
 
93
 
 
94
    QFileInfo fileInfo(QString(TEST_SOURCE_DIR) + "/missing.desktop");
 
95
    DesktopFileReader::Factory readerFactory;
 
96
    DesktopFileReader *reader = readerFactory.createInstance("calculator", fileInfo);
 
97
 
 
98
    EXPECT_EQ(reader->loaded(), false);
 
99
    EXPECT_EQ(reader->appId(), "calculator");
 
100
    EXPECT_EQ(reader->name(), "");
 
101
    EXPECT_EQ(reader->exec(), "");
 
102
    EXPECT_EQ(reader->icon(), "");
 
103
    EXPECT_EQ(reader->path(), "");
 
104
    EXPECT_EQ(reader->comment(), "");
 
105
    EXPECT_EQ(reader->stageHint(), "");
 
106
    EXPECT_EQ(reader->splashColor(), "");
 
107
    EXPECT_EQ(reader->splashColorFooter(), "");
 
108
    EXPECT_EQ(reader->splashColorHeader(), "");
 
109
    EXPECT_EQ(reader->splashImage(), "");
 
110
    EXPECT_EQ(reader->splashShowHeader(), "");
 
111
    EXPECT_EQ(reader->splashTitle(), "");
 
112
}
 
113
 
 
114
TEST(DesktopFileReader, testUTF8Characters)
 
115
{
 
116
    using namespace ::testing;
 
117
    setLocale("zh_CN");
 
118
 
 
119
    QFileInfo fileInfo(QString(TEST_SOURCE_DIR) + "/calculator.desktop");
 
120
    DesktopFileReader::Factory readerFactory;
 
121
    DesktopFileReader *reader = readerFactory.createInstance("calculator", fileInfo);
 
122
 
 
123
    EXPECT_EQ(reader->loaded(), true);
 
124
    EXPECT_EQ(reader->appId(), "calculator");
 
125
    EXPECT_EQ(reader->name(), "计算器");
 
126
    EXPECT_EQ(reader->comment(), "Ubuntu 简易计算器");
 
127
    EXPECT_EQ(reader->splashTitle(), "计算器 2.0");
 
128
}