summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOwen Williams <owilliams@mixxx.org>2013-12-07 19:18:19 -0500
committerOwen Williams <owilliams@mixxx.org>2013-12-08 09:46:03 -0500
commit611e626589f7747785f9784b6e833e76a70df1b6 (patch)
tree4088062f2e9899b18f6796fd9e409e49befa1aa0 /src
parentf16e79ba83a1e9b2de3828555b07c434b055c519 (diff)
Add testing -- fails
Diffstat (limited to 'src')
-rw-r--r--src/test/control_push_button_test.cpp59
-rw-r--r--src/widget/wpushbutton.cpp12
-rw-r--r--src/widget/wpushbutton.h2
3 files changed, 72 insertions, 1 deletions
diff --git a/src/test/control_push_button_test.cpp b/src/test/control_push_button_test.cpp
new file mode 100644
index 0000000000..bb0ccc7cd2
--- /dev/null
+++ b/src/test/control_push_button_test.cpp
@@ -0,0 +1,59 @@
+#include <gtest/gtest.h>
+
+#include <QApplication>
+#include <QTestEventList>
+#include <QScopedPointer>
+
+#include "mixxxtest.h"
+#include "controlobject.h"
+#include "controlpushbutton.h"
+#include "widget/wpushbutton.h"
+
+class ControlPushButtonTest : public MixxxTest {
+ public:
+ ControlPushButtonTest()
+ : m_pGroup("[Channel1]"),
+ m_argc(1),
+ m_argv("testApp") {
+ m_pApplication.reset(new QApplication(m_argc, m_argv));
+ }
+
+ protected:
+ virtual void SetUp() {
+ m_pButton.reset(new WPushButton());
+ m_pButton->setStates(2);
+ }
+
+ int m_argc;
+ const char* m_argv;
+ QScopedPointer<QApplication> m_pApplication;
+ QScopedPointer<WPushButton> m_pButton;
+ QTestEventList m_Events;
+ const char* m_pGroup;
+};
+
+TEST_F(ControlPushButtonTest, QuickPressNoLatchTest) {
+ m_pButton.reset(new WPushButton(NULL, ControlPushButton::LATCHING,
+ ControlPushButton::PUSH));
+
+ m_Events.addMousePress(Qt::LeftButton, 0, QPoint(), 100);
+ m_Events.addMouseRelease(Qt::LeftButton);
+
+ m_Events.simulate(m_pButton.data());
+
+ ASSERT_EQ(0.0, m_pButton->getValue());
+}
+
+TEST_F(ControlPushButtonTest, LongPressLatchTest) {
+ m_pButton.reset(new WPushButton(NULL, ControlPushButton::LATCHING,
+ ControlPushButton::PUSH));
+
+ m_Events.addMousePress(Qt::LeftButton, 0, QPoint(), 1000);
+ m_Events.addMouseRelease(Qt::LeftButton);
+
+ m_Events.simulate(m_pButton.data());
+
+ ASSERT_EQ(1.0, m_pButton->getValue());
+}
+
+
diff --git a/src/widget/wpushbutton.cpp b/src/widget/wpushbutton.cpp
index 55e5b41e04..846171266f 100644
--- a/src/widget/wpushbutton.cpp
+++ b/src/widget/wpushbutton.cpp
@@ -31,7 +31,7 @@
const int PB_SHORTKLICKTIME = 200;
-WPushButton::WPushButton(QWidget * parent) :
+WPushButton::WPushButton(QWidget *parent) :
WWidget(parent),
m_pPixmaps(NULL),
m_pPixmapBack(NULL),
@@ -41,6 +41,16 @@ WPushButton::WPushButton(QWidget * parent) :
//setBackgroundMode(Qt::NoBackground); //obsolete? removal doesn't seem to change anything on the GUI --kousu 2009/03
}
+WPushButton::WPushButton(QWidget *parent, ControlPushButton::ButtonMode leftButtonMode,
+ ControlPushButton::ButtonMode rightButtonMode) :
+ WWidget(parent),
+ m_pPixmaps(NULL),
+ m_pPixmapBack(NULL),
+ m_leftButtonMode(leftButtonMode),
+ m_rightButtonMode(rightButtonMode) {
+ setStates(0);
+}
+
WPushButton::~WPushButton() {
for (int i = 0; i < 2*m_iNoStates; i++) {
WPixmapStore::deletePixmap(m_pPixmaps[i]);
diff --git a/src/widget/wpushbutton.h b/src/widget/wpushbutton.h
index f700f1120d..c2c38084ba 100644
--- a/src/widget/wpushbutton.h
+++ b/src/widget/wpushbutton.h
@@ -38,6 +38,8 @@ class WPushButton : public WWidget
Q_OBJECT
public:
WPushButton(QWidget *parent=0);
+ WPushButton(QWidget *parent, ControlPushButton::ButtonMode leftButtonMode,
+ ControlPushButton::ButtonMode rightButtonMode);
~WPushButton();
void setup(QDomNode node);