~uriboni/webbrowser-app/tab-context-menu

« back to all changes in this revision

Viewing changes to tests/unittests/tabs-model/tst_TabsModelTests.cpp

  • Committer: Ugo Riboni
  • Date: 2015-08-17 09:43:32 UTC
  • Revision ID: ugo.riboni@canonical.com-20150817094332-xgfr46nngqbsrqt2
Add unit tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 */
18
18
 
19
19
// Qt
 
20
#include <QtCore/QStringList>
20
21
#include <QtQml/QQmlComponent>
21
22
#include <QtQml/QQmlEngine>
22
23
#include <QtQml/QQmlProperty>
47
48
        return item;
48
49
    }
49
50
 
 
51
    QQuickItem* createTabWithTitle(const QString& title) {
 
52
        QQuickItem* tab = createTab();
 
53
        tab->setProperty("title", title);
 
54
        return tab;
 
55
    }
 
56
 
 
57
    void verifyTabsOrder(QStringList orderedTitles) {
 
58
      QCOMPARE(model->rowCount(), orderedTitles.count());
 
59
 
 
60
      int i = 0;
 
61
      Q_FOREACH(QString title, orderedTitles) {
 
62
        QCOMPARE(model->get(i)->property("title").toString(), title);
 
63
        i++;
 
64
      }
 
65
    }
 
66
 
50
67
private Q_SLOTS:
51
68
    void init()
52
69
    {
113
130
        QCOMPARE(model->rowCount(), 1);
114
131
    }
115
132
 
 
133
    void shouldNotInsertNullTab()
 
134
    {
 
135
        QCOMPARE(model->insert(0, 0), -1);
 
136
        QCOMPARE(model->rowCount(), 0);
 
137
    }
 
138
 
 
139
    void shouldReturnIndexWhenInsertingTab()
 
140
    {
 
141
        for(int i = 0; i < 3; ++i) {
 
142
          model->add(createTab());
 
143
        }
 
144
        for(int i = 2; i >= 0; --i) {
 
145
            QCOMPARE(model->insert(createTab(), i), i);
 
146
        }
 
147
    }
 
148
 
 
149
    void shouldUpdateCountWhenInsertingTab()
 
150
    {
 
151
        QSignalSpy spy(model, SIGNAL(countChanged()));
 
152
        model->insert(createTab(), 0);
 
153
        QCOMPARE(spy.count(), 1);
 
154
        QCOMPARE(model->rowCount(), 1);
 
155
    }
 
156
 
 
157
    void shouldInsertAtCorrectIndex()
 
158
    {
 
159
      model->insert(createTabWithTitle("B"), 0);
 
160
      model->insert(createTabWithTitle("A"), 0);
 
161
      verifyTabsOrder(QStringList({"A", "B"}));
 
162
      model->insert(createTabWithTitle("X"), 1);
 
163
      verifyTabsOrder(QStringList({"A", "X", "B"}));
 
164
      model->insert(createTabWithTitle("C"), 3);
 
165
      verifyTabsOrder(QStringList({"A", "X", "B", "C"}));
 
166
    }
 
167
 
 
168
    void shouldClampIndexWhenInsertingTabOutOfBounds()
 
169
    {
 
170
        model->add(createTabWithTitle("A"));
 
171
        model->add(createTabWithTitle("B"));
 
172
        model->insert(createTabWithTitle("C"), 3);
 
173
        verifyTabsOrder(QStringList({"A", "B", "C"}));
 
174
        model->insert(createTabWithTitle("X"), -1);
 
175
        verifyTabsOrder(QStringList({"X", "A", "B", "C"}));
 
176
    }
 
177
 
116
178
    void shouldUpdateCountWhenRemovingTab()
117
179
    {
118
180
        model->add(createTab());