Typica is a free program for professional coffee roasters. https://typica.us
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

tst_qextwineventnotifier.cpp 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #include "qextwineventnotifier_p.h"
  2. #include <QtTest/QtTest>
  3. #include <QtCore/QTimer>
  4. class tst_QextWinEventNotifier : public QObject
  5. {
  6. Q_OBJECT
  7. public:
  8. tst_QextWinEventNotifier(){}
  9. ~tst_QextWinEventNotifier(){}
  10. void initTestCase(){}
  11. void cleanupTestCase(){}
  12. void init(){}
  13. void cleanup(){}
  14. protected slots:
  15. void simple_activated();
  16. void simple_timerSet();
  17. private slots:
  18. void empty();
  19. void simple();
  20. private:
  21. HANDLE simpleHEvent;
  22. int simpleActivated;
  23. };
  24. void tst_QextWinEventNotifier::simple_activated()
  25. {
  26. ++simpleActivated;
  27. ResetEvent((HANDLE)simpleHEvent);
  28. QTestEventLoop::instance().exitLoop();
  29. }
  30. void tst_QextWinEventNotifier::simple_timerSet()
  31. {
  32. SetEvent((HANDLE)simpleHEvent);
  33. }
  34. void tst_QextWinEventNotifier::empty()
  35. {
  36. QextWinEventNotifier n1, n2, n3;
  37. n1.setEnabled(true);
  38. n2.setEnabled(true);
  39. n3.setEnabled(true);
  40. n1.setEnabled(false);
  41. }
  42. void tst_QextWinEventNotifier::simple()
  43. {
  44. simpleHEvent = CreateEvent(0, TRUE, FALSE, 0);
  45. QVERIFY(simpleHEvent);
  46. QextWinEventNotifier n(simpleHEvent);
  47. QObject::connect(&n, SIGNAL(activated(HANDLE)), this, SLOT(simple_activated()));
  48. simpleActivated = 0;
  49. SetEvent((HANDLE)simpleHEvent);
  50. QTestEventLoop::instance().enterLoop(30);
  51. if (QTestEventLoop::instance().timeout())
  52. QFAIL("Timed out");
  53. QVERIFY(simpleActivated == 1);
  54. simpleActivated = 0;
  55. QTimer::singleShot(3000, this, SLOT(simple_timerSet()));
  56. QTestEventLoop::instance().enterLoop(30);
  57. if (QTestEventLoop::instance().timeout())
  58. QFAIL("Timed out");
  59. QVERIFY(simpleActivated == 1);
  60. }
  61. QTEST_MAIN(tst_QextWinEventNotifier)
  62. #include "tst_qextwineventnotifier.moc"