Added examples tests instrumented with userale.
diff --git a/userale/tests/__init__.py b/userale/tests/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/userale/tests/__init__.py
diff --git a/userale/tests/testapp.py b/userale/tests/testapp.py
new file mode 100644
index 0000000..cd720d7
--- /dev/null
+++ b/userale/tests/testapp.py
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright 2016 The Charles Stark Draper Laboratory, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import sys
+from PyQt5.QtWidgets import QWidget, QLabel, QPushButton, QApplication, QMessageBox
+from PyQt5.QtCore import QCoreApplication, QObject, QEvent
+
+from userale.ale import Ale
+
+# Widget #1
+class TestApplication (QWidget):
+
+ def __init__(self):
+ super().__init__()
+
+ self.initUI()
+
+ def initUI(self):
+
+ qbtn = QPushButton('Quit', self)
+ qbtn.setObjectName ("testApplicationButton")
+ qbtn.clicked.connect(QCoreApplication.instance().quit)
+ qbtn.resize(qbtn.sizeHint())
+ qbtn.move(50, 50)
+
+ self.setGeometry(300, 300, 250, 150)
+ self.setWindowTitle('Quit button')
+ self.show()
+
+def test_app ():
+ app = QApplication(sys.argv)
+ ex = TestApplication()
+ ale = Ale ()
+ # install globally
+ app.installEventFilter (ale)
+
+ sys.exit (app.exec_())
\ No newline at end of file
diff --git a/userale/tests/testdragndrop.py b/userale/tests/testdragndrop.py
new file mode 100644
index 0000000..7b67335
--- /dev/null
+++ b/userale/tests/testdragndrop.py
@@ -0,0 +1,70 @@
+# -*- coding: utf-8 -*-
+
+"""
+ZetCode PyQt5 tutorial
+
+This is a simple drag and
+drop example.
+
+author: Jan Bodnar
+website: zetcode.com
+last edited: January 2015
+"""
+
+import sys
+from PyQt5.QtWidgets import (QPushButton, QWidget,
+ QLineEdit, QApplication)
+
+from userale.ale import Ale
+
+class Button(QPushButton):
+
+ def __init__(self, title, parent):
+ super().__init__(title, parent)
+
+ self.setAcceptDrops(True)
+
+
+ def dragEnterEvent(self, e):
+
+ if e.mimeData().hasFormat('text/plain'):
+ e.accept()
+ else:
+ e.ignore()
+
+ def dropEvent(self, e):
+
+ self.setText(e.mimeData().text())
+
+
+class Example(QWidget):
+
+ def __init__(self):
+ super().__init__()
+
+ self.initUI()
+
+
+ def initUI(self):
+
+ edit = QLineEdit('', self)
+ edit.setObjectName ("testLineEdit")
+ edit.setDragEnabled(True)
+ edit.move(30, 65)
+
+ button = Button("Button", self)
+ button.setObjectName ("testButton")
+ button.move(190, 65)
+
+ self.setWindowTitle('Simple drag & drop')
+ self.setGeometry(300, 300, 300, 150)
+
+
+def test_drag ():
+ app = QApplication(sys.argv)
+ ale = Ale ()
+ # install globally
+ app.installEventFilter (ale)
+ ex = Example()
+ ex.show()
+ app.exec_()
\ No newline at end of file
diff --git a/userale/tests/testdragndrop2.py b/userale/tests/testdragndrop2.py
new file mode 100644
index 0000000..c5f74a9
--- /dev/null
+++ b/userale/tests/testdragndrop2.py
@@ -0,0 +1,90 @@
+# -*- coding: utf-8 -*-
+
+"""
+ZetCode PyQt5 tutorial
+
+In this program, we can press on a button with
+a left mouse click or drag and drop the button
+with the right mouse click.
+
+author: Jan Bodnar
+website: zetcode.com
+last edited: January 2015
+"""
+
+import sys
+from PyQt5.QtWidgets import QPushButton, QWidget, QApplication
+from PyQt5.QtCore import Qt, QMimeData
+from PyQt5.QtGui import QDrag
+
+from userale.ale import Ale
+
+class Button(QPushButton):
+
+ def __init__(self, title, parent):
+ super().__init__(title, parent)
+
+
+ def mouseMoveEvent(self, e):
+
+ if e.buttons() != Qt.RightButton:
+ return
+
+ mimeData = QMimeData()
+
+ drag = QDrag(self)
+ drag.setMimeData(mimeData)
+ drag.setHotSpot(e.pos() - self.rect().topLeft())
+
+ dropAction = drag.exec_(Qt.MoveAction)
+
+
+ def mousePressEvent(self, e):
+
+ QPushButton.mousePressEvent(self, e)
+
+ if e.button() == Qt.LeftButton:
+ print('press')
+
+
+class Example(QWidget):
+
+ def __init__(self):
+ super().__init__()
+
+ self.initUI()
+
+
+ def initUI(self):
+
+ self.setAcceptDrops(True)
+
+ self.button = Button('Button', self)
+ self.button.move(100, 65)
+
+ self.setWindowTitle('Click or Move')
+ self.setGeometry(300, 300, 280, 150)
+
+
+ def dragEnterEvent(self, e):
+
+ e.accept()
+
+
+ def dropEvent(self, e):
+
+ position = e.pos()
+ self.button.move(position)
+
+ e.setDropAction(Qt.MoveAction)
+ e.accept()
+
+def test_drag2 ():
+ app = QApplication(sys.argv)
+ ex = Example()
+ ale = Ale ()
+ # install globally
+ app.installEventFilter (ale)
+ ex.show()
+ app.exec_()
+