on xenial help sign in
Implement private class members for testing sessions model
f8b2886Josh Arenson
tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cpp+16
@@ -79,4 +79,20 @@ int SessionsModel::rowCount(const QModelIndex& parent) const
79 }
79 }
80}
80}
81
81
82+QString SessionsModel::testScenario() const
83+{
84+ Q_D(const SessionsModel);
85+ return d->testScenario;
86+}
87+
88+void SessionsModel::setTestScenario(QString testScenario)
89+{
90+ Q_D(SessionsModel);
91+
92+ if (d->testScenario != testScenario) {
93+ d->testScenario = testScenario;
94+ d->resetEntries();
95+ }
96+}
97+
82} // namespace QLightDM
98} // namespace QLightDM
tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.h+6
@@ -31,6 +31,9 @@ class Q_DECL_EXPORT SessionsModel : public QAbstractListModel
31
31
32 Q_ENUMS(SessionModelRoles SessionType)
32 Q_ENUMS(SessionModelRoles SessionType)
33
33
34+ // Mock-only API for testing purposes
35+ Q_PROPERTY(QString testScenario READ testScenario WRITE setTestScenario)
36+
34 public:
37 public:
35
38
36 enum SessionModelRoles {
39 enum SessionModelRoles {
@@ -54,6 +57,9 @@ class Q_DECL_EXPORT SessionsModel : public QAbstractListModel
54 int rowCount(const QModelIndex& parent) const override;
57 int rowCount(const QModelIndex& parent) const override;
55 QVariant data(const QModelIndex& index, int role) const override;
58 QVariant data(const QModelIndex& index, int role) const override;
56
59
60+ QString testScenario() const;
61+ void setTestScenario(QString testScenario);
62+
57 protected:
63 protected:
58 SessionsModelPrivate* const d_ptr;
64 SessionsModelPrivate* const d_ptr;
59
65
tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cpp+2−1
@@ -21,7 +21,8 @@ namespace QLightDM
21{
21{
22
22
23SessionsModelPrivate::SessionsModelPrivate(SessionsModel* parent)
23SessionsModelPrivate::SessionsModelPrivate(SessionsModel* parent)
24+ : testScenario("singleSession")
24− : q_ptr(parent)
25+ , q_ptr(parent)
25{
26{
26 resetEntries();
27 resetEntries();
27}
28}
tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.h+1
@@ -41,6 +41,7 @@ public:
41 virtual ~SessionsModelPrivate() = default;
41 virtual ~SessionsModelPrivate() = default;
42
42
43 QList<SessionItem> sessionItems;
43 QList<SessionItem> sessionItems;
44+ QString testScenario;
44
45
45 void resetEntries();
46 void resetEntries();
46protected:
47protected: