tests
| 39 | |
| 40 | private slots: // tests |
| 41 | void LinkTests() |
| 42 | { |
| 43 | BoolModel m1(false), m2(false); |
| 44 | |
| 45 | QObject::connect(&m1, SIGNAL(dataChanged(Model*)), |
| 46 | this, SLOT(onM1Changed(Model*))); |
| 47 | QObject::connect(&m2, SIGNAL(dataChanged(Model*)), |
| 48 | this, SLOT(onM2Changed(Model*))); |
| 49 | |
| 50 | resetChanged(); |
| 51 | AutomatableModel::linkModels(&m1, &m1); |
| 52 | QVERIFY(!m1Changed); // cannot link to itself |
| 53 | QVERIFY(!m2Changed); |
| 54 | |
| 55 | resetChanged(); |
| 56 | AutomatableModel::linkModels(&m1, &m2); |
| 57 | QVERIFY(m1Changed); // since m1 takes the value of m2 |
| 58 | QVERIFY(!m2Changed); // the second model is the source |
| 59 | |
| 60 | resetChanged(); |
| 61 | AutomatableModel::linkModels(&m1, &m2); |
| 62 | QVERIFY(!m1Changed); // it's already linked |
| 63 | QVERIFY(!m2Changed); |
| 64 | |
| 65 | resetChanged(); |
| 66 | BoolModel m3(false); |
| 67 | m1.setValue(1.f); |
| 68 | m2.setValue(1.f); |
| 69 | AutomatableModel::linkModels(&m1, &m2); |
| 70 | QVERIFY(m1.value()); |
| 71 | QVERIFY(m2.value()); |
| 72 | QVERIFY(!m3.value()); |
| 73 | AutomatableModel::linkModels(&m2, &m3); // drag m3, drop on m2 |
| 74 | // m2 should take m3's (0) value |
| 75 | // due to a bug(?), this does not happen |
| 76 | QVERIFY(m2.value()); |
| 77 | QVERIFY(!m3.value()); |
| 78 | } |
| 79 | } AutomatableModelTests; |
| 80 | |
| 81 | #include "AutomatableModelTest.moc" |