82
82
const QString appId("com.canonical.does.not.exist");
84
84
EXPECT_CALL(appController, startApplicationWithAppIdAndArgs(_, _)).Times(1);
85
EXPECT_CALL(appController, findDesktopFileForAppId(appId)).Times(1);
86
EXPECT_CALL(desktopFileReaderFactory, createInstanceForAppId(appId)).Times(1);
87
EXPECT_CALL(desktopFileReaderFactory, createInstance(_, _)).Times(1);
88
89
EXPECT_CALL(processController, sigStopProcessGroupForPid(_)).Times(1);
89
90
EXPECT_CALL(processController, sigContinueProcessGroupForPid(_)).Times(1);
225
226
EXPECT_EQ(beforeFailure, afterFailure);
229
TEST_F(ApplicationManagerTests,startApplicationSupportsShortAppId)
231
using namespace ::testing;
233
const QString shortAppId("com.canonical.test_test");
235
EXPECT_CALL(appController, startApplicationWithAppIdAndArgs(_, _)).Times(1);
236
EXPECT_CALL(appController, findDesktopFileForAppId(shortAppId)).Times(1);
238
EXPECT_CALL(desktopFileReaderFactory, createInstance(_, _)).Times(1);
240
auto application = applicationManager.startApplication(
242
ApplicationManager::NoFlag,
245
EXPECT_EQ(shortAppId, application->appId());
248
TEST_F(ApplicationManagerTests,startApplicationSupportsLongAppId)
250
using namespace ::testing;
252
const QString longAppId("com.canonical.test_test_0.1.235");
253
const QString shortAppId("com.canonical.test_test");
255
EXPECT_CALL(appController, startApplicationWithAppIdAndArgs(_, _)).Times(1);
256
EXPECT_CALL(appController, findDesktopFileForAppId(shortAppId)).Times(1);
258
EXPECT_CALL(desktopFileReaderFactory, createInstance(_, _)).Times(1);
260
auto application = applicationManager.startApplication(
262
ApplicationManager::NoFlag,
265
EXPECT_EQ(shortAppId, application->appId());
268
TEST_F(ApplicationManagerTests,testAppIdGuessFromDesktopFileName)
270
using namespace ::testing;
271
quint64 procId = 5921;
272
QString appId("sudoku-app");
273
QString cmdLine = QString("/usr/bin/my-app --desktop_file_hint=/usr/share/click/preinstalled/com.ubuntu.sudoku/1.0.180/%1.desktop").arg(appId);
275
EXPECT_CALL(procInfo,command_line(procId))
277
.WillOnce(Return(qPrintable(cmdLine)));
280
applicationManager.authorizeSession(procId, authed);
281
Application *app = applicationManager.findApplication(appId);
283
EXPECT_EQ(true, authed);
284
EXPECT_NE(app, nullptr);
285
EXPECT_EQ(appId, app->appId());
288
TEST_F(ApplicationManagerTests,testAppIdGuessFromDesktopFileNameWithLongAppId)
290
using namespace ::testing;
291
quint64 procId = 5921;
292
QString shortAppId("com.ubuntu.desktop_desktop");
293
QString cmdLine = QString("/usr/bin/my-app --desktop_file_hint=/usr/share/applications/%1_1.0.180.desktop").arg(shortAppId);
295
EXPECT_CALL(procInfo,command_line(procId))
297
.WillOnce(Return(qPrintable(cmdLine)));
300
applicationManager.authorizeSession(procId, authed);
301
Application *app = applicationManager.findApplication(shortAppId);
303
EXPECT_EQ(true, authed);
304
EXPECT_NE(app, nullptr);
305
EXPECT_EQ(shortAppId, app->appId());
228
308
TEST_F(ApplicationManagerTests,bug_case_1281075_session_ptrs_always_distributed_to_last_started_app)
230
310
using namespace ::testing;
305
385
using namespace ::testing;
306
386
QString appId("sideStage");
308
auto mockDesktopFileReader = new NiceMock<MockDesktopFileReader>(appId);
388
EXPECT_CALL(appController, findDesktopFileForAppId(appId)).Times(1);
390
auto mockDesktopFileReader = new NiceMock<MockDesktopFileReader>(appId, QFileInfo());
309
391
ON_CALL(*mockDesktopFileReader, loaded()).WillByDefault(Return(true));
310
392
ON_CALL(*mockDesktopFileReader, stageHint()).WillByDefault(Return("SideStage"));
312
ON_CALL(desktopFileReaderFactory, createInstanceForAppId(appId)).WillByDefault(Return(mockDesktopFileReader));
394
ON_CALL(desktopFileReaderFactory, createInstance(appId, _)).WillByDefault(Return(mockDesktopFileReader));
314
396
// mock upstart launching an app which reports itself as sidestage, but we're on phone
315
397
applicationManager.onProcessStartReportReceived(appId, false);