[Pkg-owncloud-commits] [owncloud-client] 103/159: Added unit test for XML Parser class.

Sandro Knauß hefee-guest at moszumanska.debian.org
Fri May 1 13:05:31 UTC 2015


This is an automated email from the git hooks/post-receive script.

hefee-guest pushed a commit to branch master
in repository owncloud-client.

commit d2bae21b14f1c8f1ed5c83904038d4d4cb6507e6
Author: Klaas Freitag <freitag at owncloud.com>
Date:   Tue Apr 14 08:37:06 2015 +0200

    Added unit test for XML Parser class.
---
 test/CMakeLists.txt |   2 +-
 test/testxmlparse.h | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 126 insertions(+), 1 deletion(-)

diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 62acf37..f1d4406 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -32,5 +32,5 @@ owncloud_add_test(SyncJournalDB "")
 owncloud_add_test(SyncFileItem "")
 owncloud_add_test(ConcatUrl "")
 
-
+owncloud_add_test(XmlParse "")
 
diff --git a/test/testxmlparse.h b/test/testxmlparse.h
new file mode 100644
index 0000000..78f2db0
--- /dev/null
+++ b/test/testxmlparse.h
@@ -0,0 +1,125 @@
+/*
+ *    This software is in the public domain, furnished "as is", without technical
+ *       support, and with no warranty, express or implied, as to its usefulness for
+ *          any purpose.
+ *          */
+
+#ifndef MIRALL_TESTXMLPARSE_H
+#define MIRALL_TESTXMLPARSE_H
+
+#include <QtTest>
+
+#include "networkjobs.h"
+
+using namespace OCC;
+
+class TestXmlParse : public QObject
+{
+    Q_OBJECT
+
+private:
+  bool _success;
+  QStringList _subdirs;
+  QStringList _items;
+
+private slots:
+    void initTestCase() {
+      _success = false;
+    }
+
+    void cleanupTestCase() {
+    }
+
+    void slotDirectoryListingSubFolders(const QStringList& list)
+    {
+       qDebug() << "subfolders: " << list;
+       _subdirs.append(list);
+    }
+
+    void slotDirectoryListingIterated(const QString& item, const QMap<QString,QString>& )
+    {
+      qDebug() << "     item: " << item;
+      _items.append(item);
+    }
+
+    void slotFinishedSuccessfully()
+    {
+        _success = true;
+    }
+
+    void testParser1() {
+        const QByteArray testXml = "<?xml version='1.0' encoding='utf-8'?>"
+              "<d:multistatus xmlns:d=\"DAV:\" xmlns:s=\"http://sabredav.org/ns\" xmlns:oc=\"http://owncloud.org/ns\">"
+              "<d:response>"
+              "<d:href>/oc/remote.php/webdav/sharefolder/</d:href>"
+              "<d:propstat>"
+              "<d:prop>"
+              "<oc:id>00004213ocobzus5kn6s</oc:id>"
+              "<oc:permissions>RDNVCK</oc:permissions>"
+              "<oc:size>121780</oc:size>"
+              "<d:getetag>\"5527beb0400b0\"</d:getetag>"
+              "<d:resourcetype>"
+              "<d:collection/>"
+              "</d:resourcetype>"
+              "<d:getlastmodified>Fri, 06 Feb 2015 13:49:55 GMT</d:getlastmodified>"
+              "</d:prop>"
+              "<d:status>HTTP/1.1 200 OK</d:status>"
+              "</d:propstat>"
+              "<d:propstat>"
+              "<d:prop>"
+              "<d:getcontentlength/>"
+              "<oc:downloadURL/>"
+              "<oc:dDC/>"
+              "</d:prop>"
+              "<d:status>HTTP/1.1 404 Not Found</d:status>"
+              "</d:propstat>"
+              "</d:response>"
+              "<d:response>"
+              "<d:href>/oc/remote.php/webdav/sharefolder/quitte.pdf</d:href>"
+              "<d:propstat>"
+              "<d:prop>"
+              "<oc:id>00004215ocobzus5kn6s</oc:id>"
+              "<oc:permissions>RDNVW</oc:permissions>"
+              "<d:getetag>\"2fa2f0d9ed49ea0c3e409d49e652dea0\"</d:getetag>"
+              "<d:resourcetype/>"
+              "<d:getlastmodified>Fri, 06 Feb 2015 13:49:55 GMT</d:getlastmodified>"
+              "<d:getcontentlength>121780</d:getcontentlength>"
+              "</d:prop>"
+              "<d:status>HTTP/1.1 200 OK</d:status>"
+              "</d:propstat>"
+              "<d:propstat>"
+              "<d:prop>"
+              "<oc:downloadURL/>"
+              "<oc:dDC/>"
+              "</d:prop>"
+              "<d:status>HTTP/1.1 404 Not Found</d:status>"
+              "</d:propstat>"
+              "</d:response>"
+              "</d:multistatus>";
+
+
+        LsColXMLParser parser;
+
+        connect( &parser, SIGNAL(directoryListingSubfolders(const QStringList&)),
+                 this, SLOT(slotDirectoryListingSubFolders(const QStringList&)) );
+        connect( &parser, SIGNAL(directoryListingIterated(const QString&, const QMap<QString,QString>&)),
+                 this, SLOT(slotDirectoryListingIterated(const QString&, const QMap<QString,QString>&)) );
+        connect( &parser, SIGNAL(finishedWithoutError()),
+                 this, SLOT(slotFinishedSuccessfully()) );
+
+        QHash <QString, qint64> sizes;
+        parser.parse( testXml, &sizes );
+
+        QVERIFY(_success);
+        QVERIFY(sizes.size() == 0 ); // No quota info in the XML
+
+        QVERIFY(_items.contains("/oc/remote.php/webdav/sharefolder/quitte.pdf"));
+        QVERIFY(_items.contains("/oc/remote.php/webdav/sharefolder"));
+        QVERIFY(_items.size() == 2 );
+
+        QVERIFY(_subdirs.contains("/oc/remote.php/webdav/sharefolder/"));
+        QVERIFY(_subdirs.size() == 1);
+    }
+};
+
+#endif

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git



More information about the Pkg-owncloud-commits mailing list