We now have a current svn snapshot of libqxt in our contrib dir, and
[quassel.git] / src / contrib / libqxt-2007-10-24 / tests / pipe / main.cpp
diff --git a/src/contrib/libqxt-2007-10-24/tests/pipe/main.cpp b/src/contrib/libqxt-2007-10-24/tests/pipe/main.cpp
new file mode 100644 (file)
index 0000000..89e986b
--- /dev/null
@@ -0,0 +1,74 @@
+#include <QxtPipe>
+#include <QTest>
+#include <QDebug>
+#include <QByteArray>
+#include <QDataStream>
+
+class QxtPipeTest: public QObject
+{
+Q_OBJECT 
+private slots:
+    void simple()
+    {
+        QxtPipe p1;
+        QxtPipe p2;
+        p1|p2;
+        p1.write("hi");
+        QVERIFY(p2.readAll()=="hi");
+    }
+    void chain()
+    {
+        QxtPipe p1;
+        QxtPipe p2;
+        QxtPipe p3;
+        p1|p2;
+        p2|p3;
+        p1.write("hi");
+        QVERIFY(p3.readAll()=="hi");
+    }
+    void bidirectional()
+    {
+        QxtPipe p1;
+        QxtPipe p2;
+        p1|p2;
+
+        p1.write("hi");
+        QVERIFY(p2.readAll()=="hi");
+        QVERIFY(p1.bytesAvailable()==0);
+
+        p2.write("rehi");
+        QVERIFY(p1.readAll()=="rehi");
+        QVERIFY(p2.bytesAvailable()==0);
+    }
+    void readOnly()
+    {
+        QxtPipe p1;
+        QxtPipe p2;
+        p1.connect(&p2,QIODevice::ReadOnly);
+
+        p1.write("hi");
+        QVERIFY(p1.bytesAvailable()==0);
+        QVERIFY(p2.bytesAvailable()==0);
+
+        p2.write("rehi");
+        QVERIFY(p1.readAll()=="rehi");
+        QVERIFY(p2.bytesAvailable()==0);
+    }
+    void writeOnly()
+    {
+        QxtPipe p1;
+        QxtPipe p2;
+        p1.connect(&p2,QIODevice::WriteOnly);
+
+        p1.write("hi");
+        QVERIFY(p1.bytesAvailable()==0);
+        QVERIFY(p2.readAll()=="hi");
+
+        p2.write("rehi");
+        QVERIFY(p1.bytesAvailable()==0);
+        QVERIFY(p2.bytesAvailable()==0);
+    }
+};
+
+QTEST_MAIN(QxtPipeTest)
+#include "main.moc"