diff options
author | Andy Shaw <andy.shaw@qt.io> | 2017-12-01 16:00:06 +0100 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2018-01-02 08:50:54 +0000 |
commit | fa1397882ac322da376ad3bc1f2094334eb67e6e (patch) | |
tree | fe4469f181b310e45f98a0126e551ff94ec30c79 /tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp | |
parent | 9b361f0e90fb1c154a16e65ec087ad36d5cca9b4 (diff) |
Test calling setRelation() with QSqlRelation() clears the relation
Change-Id: I93dbec54bfb9402b9044323862c2ae1d41e1790a
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
Diffstat (limited to 'tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp')
-rw-r--r-- | tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp index 799b93c33b..84cca482fb 100644 --- a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp +++ b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp @@ -77,6 +77,7 @@ private slots: void psqlSchemaTest(); void selectAfterUpdate(); void relationOnFirstColumn(); + void setRelation(); private: void dropTestTables( QSqlDatabase db ); @@ -1550,5 +1551,27 @@ void tst_QSqlRelationalTableModel::relationOnFirstColumn() tst_Databases::safeDropTables(db, QStringList() << testTable1 << testTable2); } +void tst_QSqlRelationalTableModel::setRelation() +{ + QFETCH_GLOBAL(QString, dbName); + QSqlDatabase db = QSqlDatabase::database(dbName); + CHECK_DATABASE(db); + recreateTestTables(db); + + QSqlRelationalTableModel model(0, db); + model.setTable(reltest1); + QVERIFY_SQL(model, select()); + QCOMPARE(model.data(model.index(0, 2)), QVariant(1)); + + model.setRelation(2, QSqlRelation(reltest2, "id", "title")); + QVERIFY_SQL(model, select()); + QCOMPARE(model.data(model.index(0, 2)), QVariant("herr")); + + // Check that setting an invalid QSqlRelation() clears the relation + model.setRelation(2, QSqlRelation()); + QVERIFY_SQL(model, select()); + QCOMPARE(model.data(model.index(0, 2)), QVariant(1)); +} + QTEST_MAIN(tst_QSqlRelationalTableModel) #include "tst_qsqlrelationaltablemodel.moc" |