2
* Copyright (C) 2014 Canonical, Ltd.
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.
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.
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/>.
18
#include <Unity/Application/desktopfilereader.h>
20
#include <gtest/gtest.h>
28
using namespace qtmir;
31
static void setLocale(const char *locale)
33
qputenv("LANGUAGE", locale);
34
qputenv("LC_ALL", locale); // set these for GIO
35
QLocale::setDefault(QString(locale)); // set for Qt
39
TEST(DesktopFileReader, testReadsDesktopFile)
41
using namespace ::testing;
44
QFileInfo fileInfo(QString(TEST_SOURCE_DIR) + "/calculator.desktop");
45
DesktopFileReader::Factory readerFactory;
46
DesktopFileReader *reader = readerFactory.createInstance("calculator", fileInfo);
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");
64
TEST(DesktopFileReader, testReadsLocalizedDesktopFile)
66
using namespace ::testing;
69
QFileInfo fileInfo(QString(TEST_SOURCE_DIR) + "/calculator.desktop");
70
DesktopFileReader::Factory readerFactory;
71
DesktopFileReader *reader = readerFactory.createInstance("calculator", fileInfo);
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");
89
TEST(DesktopFileReader, testMissingDesktopFile)
91
using namespace ::testing;
94
QFileInfo fileInfo(QString(TEST_SOURCE_DIR) + "/missing.desktop");
95
DesktopFileReader::Factory readerFactory;
96
DesktopFileReader *reader = readerFactory.createInstance("calculator", fileInfo);
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(), "");
114
TEST(DesktopFileReader, testUTF8Characters)
116
using namespace ::testing;
119
QFileInfo fileInfo(QString(TEST_SOURCE_DIR) + "/calculator.desktop");
120
DesktopFileReader::Factory readerFactory;
121
DesktopFileReader *reader = readerFactory.createInstance("calculator", fileInfo);
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");