1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#include <gtest/gtest.h>
#include <QTestEventList>
#include <QScopedPointer>
#include "mixxxtest.h"
#include "control/controlobject.h"
#include "control/controlproxy.h"
#include "control/controlpushbutton.h"
#include "widget/wpushbutton.h"
#include "widget/controlwidgetconnection.h"
class WPushButtonTest : public MixxxTest {
public:
WPushButtonTest()
: m_pGroup("[Channel1]") {
}
protected:
void SetUp() override {
m_pButton.reset(new WPushButton());
m_pButton->setStates(2);
}
QScopedPointer<WPushButton> m_pButton;
QTestEventList m_Events;
const char* m_pGroup;
};
TEST_F(WPushButtonTest, QuickPressNoLatchTest) {
QScopedPointer<ControlPushButton> pPushControl(
new ControlPushButton(ConfigKey("[Test]", "push")));
pPushControl->setButtonMode(ControlPushButton::LONGPRESSLATCHING);
m_pButton.reset(new WPushButton(NULL, ControlPushButton::LONGPRESSLATCHING,
ControlPushButton::PUSH));
m_pButton->setStates(2);
m_pButton->addLeftConnection(
new ControlParameterWidgetConnection(
m_pButton.data(),
pPushControl->getKey(), NULL,
ControlParameterWidgetConnection::DIR_FROM_AND_TO_WIDGET,
ControlParameterWidgetConnection::EMIT_ON_PRESS_AND_RELEASE));
// This test can be flaky if the event simulator takes too long to deliver
// the event.
m_Events.addMousePress(Qt::LeftButton);
m_Events.addMouseRelease(Qt::LeftButton, 0, QPoint(), 1);
m_Events.simulate(m_pButton.data());
ASSERT_EQ(0.0, m_pButton->getControlParameterLeft());
}
TEST_F(WPushButtonTest, LongPressLatchTest) {
QScopedPointer<ControlPushButton> pPushControl(
new ControlPushButton(ConfigKey("[Test]", "push")));
pPushControl->setButtonMode(ControlPushButton::LONGPRESSLATCHING);
m_pButton.reset(new WPushButton(NULL, ControlPushButton::LONGPRESSLATCHING,
ControlPushButton::PUSH));
m_pButton->setStates(2);
m_pButton->addLeftConnection(
new ControlParameterWidgetConnection(
m_pButton.data(),
pPushControl->getKey(), NULL,
ControlParameterWidgetConnection::DIR_FROM_AND_TO_WIDGET,
ControlParameterWidgetConnection::EMIT_ON_PRESS_AND_RELEASE));
m_Events.addMousePress(Qt::LeftButton);
m_Events.addMouseRelease(Qt::LeftButton, 0, QPoint(), 1000);
m_Events.simulate(m_pButton.data());
ASSERT_EQ(1.0, m_pButton->getControlParameterLeft());
}
|