260
260
QCOMPARE(results->data(idx, ResultsModel::Roles::RoleCategoryId), categories->data(categories->index(0), Categories::Roles::RoleCategoryId));
265
std::string lastSessionId;
267
performSearch(m_scope, QString(""));
269
QVERIFY(!m_scope->sessionId().isEmpty());
270
QCOMPARE(m_scope->queryId(), 0);
273
auto categories = m_scope->categories();
274
QVERIFY(categories->rowCount() > 0);
275
QVariant results_var = categories->data(categories->index(0), Categories::Roles::RoleResults);
276
auto results = results_var.value<ResultsModel*>();
277
QVERIFY(results->rowCount() > 0);
279
auto idx = results->index(0);
280
auto result = results->data(idx, ResultsModel::Roles::RoleResult).value<std::shared_ptr<unity::scopes::Result>>();
282
auto sessionId = (*result)["session-id"].get_string();
283
auto queryId = (*result)["query-id"].get_int();
285
// mock scope should send session-id and query-id it received back via custom result's values
286
QCOMPARE(sessionId, m_scope->sessionId().toStdString());
287
QCOMPARE(queryId, m_scope->queryId());
288
QCOMPARE(queryId, 0);
290
lastSessionId = sessionId;
294
performSearch(m_scope, QString("m"));
296
auto categories = m_scope->categories();
297
QVERIFY(categories->rowCount() > 0);
298
QVariant results_var = categories->data(categories->index(0), Categories::Roles::RoleResults);
299
auto results = results_var.value<ResultsModel*>();
300
QVERIFY(results->rowCount() > 0);
302
auto idx = results->index(0);
303
auto result = results->data(idx, ResultsModel::Roles::RoleResult).value<std::shared_ptr<unity::scopes::Result>>();
305
auto sessionId = (*result)["session-id"].get_string();
306
auto queryId = (*result)["query-id"].get_int();
308
// mock scope should send session-id and query-id it received back via custom result's values
309
QCOMPARE(sessionId, m_scope->sessionId().toStdString());
310
QCOMPARE(queryId, m_scope->queryId());
311
QCOMPARE(queryId, 0);
314
QVERIFY(sessionId != lastSessionId);
316
lastSessionId = sessionId;
319
// appends to previous search
320
performSearch(m_scope, QString("met"));
322
auto categories = m_scope->categories();
323
QVERIFY(categories->rowCount() > 0);
324
QVariant results_var = categories->data(categories->index(0), Categories::Roles::RoleResults);
325
auto results = results_var.value<ResultsModel*>();
326
QVERIFY(results->rowCount() > 0);
328
auto idx = results->index(0);
329
auto result = results->data(idx, ResultsModel::Roles::RoleResult).value<std::shared_ptr<unity::scopes::Result>>();
331
auto sessionId = (*result)["session-id"].get_string();
332
auto queryId = (*result)["query-id"].get_int();
334
// mock scope should send session-id and query-id it received back via custom result's values
335
QCOMPARE(sessionId, m_scope->sessionId().toStdString());
336
QCOMPARE(queryId, m_scope->queryId());
337
QCOMPARE(queryId, 1);
339
// session id unchanged
340
QVERIFY(sessionId == lastSessionId);
342
lastSessionId = sessionId;
345
// removes characters from previous search
346
performSearch(m_scope, QString("me"));
348
auto categories = m_scope->categories();
349
QVERIFY(categories->rowCount() > 0);
350
QVariant results_var = categories->data(categories->index(0), Categories::Roles::RoleResults);
351
auto results = results_var.value<ResultsModel*>();
352
QVERIFY(results->rowCount() > 0);
354
auto idx = results->index(0);
355
auto result = results->data(idx, ResultsModel::Roles::RoleResult).value<std::shared_ptr<unity::scopes::Result>>();
357
auto sessionId = (*result)["session-id"].get_string();
358
auto queryId = (*result)["query-id"].get_int();
360
// mock scope should send session-id and query-id it received back via custom result's values
361
QCOMPARE(sessionId, m_scope->sessionId().toStdString());
362
QCOMPARE(queryId, m_scope->queryId());
363
QCOMPARE(queryId, 2);
365
// session id unchanged
366
QVERIFY(sessionId == lastSessionId);
368
lastSessionId = sessionId;
371
// new non-empty search again
372
performSearch(m_scope, QString("iron"));
374
auto categories = m_scope->categories();
375
QVERIFY(categories->rowCount() > 0);
376
QVariant results_var = categories->data(categories->index(0), Categories::Roles::RoleResults);
377
auto results = results_var.value<ResultsModel*>();
378
QVERIFY(results->rowCount() > 0);
380
auto idx = results->index(0);
381
auto result = results->data(idx, ResultsModel::Roles::RoleResult).value<std::shared_ptr<unity::scopes::Result>>();
383
auto sessionId = (*result)["session-id"].get_string();
384
auto queryId = (*result)["query-id"].get_int();
386
// mock scope should send session-id and query-id it received back via custom result's values
387
QCOMPARE(sessionId, m_scope->sessionId().toStdString());
388
QCOMPARE(queryId, m_scope->queryId());
389
QCOMPARE(queryId, 0);
392
QVERIFY(sessionId != lastSessionId);
394
lastSessionId = sessionId;
397
// new empty search again
398
performSearch(m_scope, QString(""));
400
auto categories = m_scope->categories();
401
QVERIFY(categories->rowCount() > 0);
402
QVariant results_var = categories->data(categories->index(0), Categories::Roles::RoleResults);
403
auto results = results_var.value<ResultsModel*>();
404
QVERIFY(results->rowCount() > 0);
406
auto idx = results->index(0);
407
auto result = results->data(idx, ResultsModel::Roles::RoleResult).value<std::shared_ptr<unity::scopes::Result>>();
409
auto sessionId = (*result)["session-id"].get_string();
410
auto queryId = (*result)["query-id"].get_int();
412
// mock scope should send session-id and query-id it received back via custom result's values
413
QCOMPARE(sessionId, m_scope->sessionId().toStdString());
414
QCOMPARE(queryId, m_scope->queryId());
415
QCOMPARE(queryId, 0);
418
QVERIFY(sessionId != lastSessionId);
420
lastSessionId = sessionId;
263
424
void testResultMetadata()
265
426
performSearch(m_scope, QString("metadata"));