~mir-team/unity-mir/mir-0.2.0-compatibility-changes

« back to all changes in this revision

Viewing changes to tests/application_manager_test.cpp

  • Committer: Kevin Gunn
  • Date: 2014-05-19 15:47:35 UTC
  • mfrom: (219.3.2 unity-mir)
  • Revision ID: kevin.gunn@canonical.com-20140519154735-tnbluok5stj6nfk0
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
82
82
    const QString appId("com.canonical.does.not.exist");
83
83
 
84
84
    EXPECT_CALL(appController, startApplicationWithAppIdAndArgs(_, _)).Times(1);
 
85
    EXPECT_CALL(appController, findDesktopFileForAppId(appId)).Times(1);
85
86
 
86
 
    EXPECT_CALL(desktopFileReaderFactory, createInstanceForAppId(appId)).Times(1);
 
87
    EXPECT_CALL(desktopFileReaderFactory, createInstance(_, _)).Times(1);
87
88
 
88
89
    EXPECT_CALL(processController, sigStopProcessGroupForPid(_)).Times(1);
89
90
    EXPECT_CALL(processController, sigContinueProcessGroupForPid(_)).Times(1);
225
226
    EXPECT_EQ(beforeFailure, afterFailure);
226
227
}
227
228
 
 
229
TEST_F(ApplicationManagerTests,startApplicationSupportsShortAppId)
 
230
{
 
231
    using namespace ::testing;
 
232
 
 
233
    const QString shortAppId("com.canonical.test_test");
 
234
 
 
235
    EXPECT_CALL(appController, startApplicationWithAppIdAndArgs(_, _)).Times(1);
 
236
    EXPECT_CALL(appController, findDesktopFileForAppId(shortAppId)).Times(1);
 
237
 
 
238
    EXPECT_CALL(desktopFileReaderFactory, createInstance(_, _)).Times(1);
 
239
 
 
240
    auto application = applicationManager.startApplication(
 
241
                shortAppId,
 
242
                ApplicationManager::NoFlag,
 
243
                QStringList());
 
244
 
 
245
    EXPECT_EQ(shortAppId, application->appId());
 
246
}
 
247
 
 
248
TEST_F(ApplicationManagerTests,startApplicationSupportsLongAppId)
 
249
{
 
250
    using namespace ::testing;
 
251
 
 
252
    const QString longAppId("com.canonical.test_test_0.1.235");
 
253
    const QString shortAppId("com.canonical.test_test");
 
254
 
 
255
    EXPECT_CALL(appController, startApplicationWithAppIdAndArgs(_, _)).Times(1);
 
256
    EXPECT_CALL(appController, findDesktopFileForAppId(shortAppId)).Times(1);
 
257
 
 
258
    EXPECT_CALL(desktopFileReaderFactory, createInstance(_, _)).Times(1);
 
259
 
 
260
    auto application = applicationManager.startApplication(
 
261
                longAppId,
 
262
                ApplicationManager::NoFlag,
 
263
                QStringList());
 
264
 
 
265
    EXPECT_EQ(shortAppId, application->appId());
 
266
}
 
267
 
 
268
TEST_F(ApplicationManagerTests,testAppIdGuessFromDesktopFileName)
 
269
{
 
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);
 
274
 
 
275
    EXPECT_CALL(procInfo,command_line(procId))
 
276
        .Times(1)
 
277
        .WillOnce(Return(qPrintable(cmdLine)));
 
278
 
 
279
    bool authed = true;
 
280
    applicationManager.authorizeSession(procId, authed);
 
281
    Application *app = applicationManager.findApplication(appId);
 
282
 
 
283
    EXPECT_EQ(true, authed);
 
284
    EXPECT_NE(app, nullptr);
 
285
    EXPECT_EQ(appId, app->appId());
 
286
}
 
287
 
 
288
TEST_F(ApplicationManagerTests,testAppIdGuessFromDesktopFileNameWithLongAppId)
 
289
{
 
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);
 
294
 
 
295
    EXPECT_CALL(procInfo,command_line(procId))
 
296
        .Times(1)
 
297
        .WillOnce(Return(qPrintable(cmdLine)));
 
298
 
 
299
    bool authed = true;
 
300
    applicationManager.authorizeSession(procId, authed);
 
301
    Application *app = applicationManager.findApplication(shortAppId);
 
302
 
 
303
    EXPECT_EQ(true, authed);
 
304
    EXPECT_NE(app, nullptr);
 
305
    EXPECT_EQ(shortAppId, app->appId());
 
306
}
 
307
 
228
308
TEST_F(ApplicationManagerTests,bug_case_1281075_session_ptrs_always_distributed_to_last_started_app)
229
309
{
230
310
    using namespace ::testing;
305
385
    using namespace ::testing;
306
386
    QString appId("sideStage");
307
387
 
308
 
    auto mockDesktopFileReader = new NiceMock<MockDesktopFileReader>(appId);
 
388
    EXPECT_CALL(appController, findDesktopFileForAppId(appId)).Times(1);
 
389
 
 
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"));
311
393
 
312
 
    ON_CALL(desktopFileReaderFactory, createInstanceForAppId(appId)).WillByDefault(Return(mockDesktopFileReader));
 
394
    ON_CALL(desktopFileReaderFactory, createInstance(appId, _)).WillByDefault(Return(mockDesktopFileReader));
313
395
 
314
396
    // mock upstart launching an app which reports itself as sidestage, but we're on phone
315
397
    applicationManager.onProcessStartReportReceived(appId, false);