[QGIS Commit] r13196 - trunk/qgis/tests/src/core
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Mon Mar 29 13:33:22 EDT 2010
Author: wonder
Date: 2010-03-29 13:33:20 -0400 (Mon, 29 Mar 2010)
New Revision: 13196
Added:
trunk/qgis/tests/src/core/testqgssearchstring.cpp
Modified:
trunk/qgis/tests/src/core/CMakeLists.txt
Log:
added some unit tests for search strings
Modified: trunk/qgis/tests/src/core/CMakeLists.txt
===================================================================
--- trunk/qgis/tests/src/core/CMakeLists.txt 2010-03-29 15:57:48 UTC (rev 13195)
+++ trunk/qgis/tests/src/core/CMakeLists.txt 2010-03-29 17:33:20 UTC (rev 13196)
@@ -112,3 +112,4 @@
ADD_QGIS_TEST(geometrytest testqgsgeometry.cpp)
ADD_QGIS_TEST(coordinatereferencesystemtest testqgscoordinatereferencesystem.cpp)
ADD_QGIS_TEST(pointtest testqgspoint.cpp)
+ADD_QGIS_TEST(searchstringtest testqgssearchstring.cpp)
Added: trunk/qgis/tests/src/core/testqgssearchstring.cpp
===================================================================
--- trunk/qgis/tests/src/core/testqgssearchstring.cpp (rev 0)
+++ trunk/qgis/tests/src/core/testqgssearchstring.cpp 2010-03-29 17:33:20 UTC (rev 13196)
@@ -0,0 +1,72 @@
+/***************************************************************************
+ testqgssearchstring.cpp
+ --------------------------------------
+ Date : March 28, 2010
+ Copyright : (C) 2010 Martin Dobias
+ Email : wonder.sk at gmail.com
+ ***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <QtTest>
+
+#include <qgssearchstring.h>
+#include <qgssearchtreenode.h>
+
+class TestQgsSearchString : public QObject
+{
+ Q_OBJECT;
+ private slots:
+ //void initTestCase();// will be called before the first testfunction is executed.
+ //void cleanupTestCase();// will be called after the last testfunction was executed.
+ //void init();// will be called before each testfunction is executed.
+ //void cleanup();// will be called after every testfunction.
+
+ void testLike();
+ void testRegexp();
+
+ private:
+ QString mReport;
+};
+
+static bool evalString(QString str)
+{
+ QgsSearchString ss;
+ ss.setString(str);
+ return ss.tree()->checkAgainst(QgsFieldMap(), QgsAttributeMap());
+}
+
+void TestQgsSearchString::testLike()
+{
+ QVERIFY( evalString("'a' LIKE 'a'") );
+ QVERIFY( ! evalString("'aa' LIKE 'a'") );
+ QVERIFY( ! evalString("'a' LIKE 'b'") );
+
+ QVERIFY( evalString("'abba' LIKE 'a%'") );
+ QVERIFY( ! evalString("'abba' LIKE 'b%'") );
+ QVERIFY( evalString("'abba' LIKE '%a'") );
+ QVERIFY( ! evalString("'abba' LIKE '%b'") );
+
+ QVERIFY( evalString("'abba' LIKE '%bb%'") );
+ QVERIFY( evalString("'abba' LIKE 'a%a'") );
+ QVERIFY( ! evalString("'abba' LIKE 'b%b'") );
+}
+
+void TestQgsSearchString::testRegexp()
+{
+ QVERIFY( evalString("'a' ~ 'a'") );
+ QVERIFY( ! evalString("'b' ~ 'a'") );
+
+ QVERIFY( evalString("'abba' ~ 'a'") );
+ QVERIFY( ! evalString("'abba' ~ 'aba'") );
+ QVERIFY( evalString("'abba' ~ 'a.*a'") );
+ QVERIFY( evalString("'abba' ~ 'a[b]+a'") );
+}
+
+QTEST_MAIN(TestQgsSearchString)
+#include "moc_testqgssearchstring.cxx"
More information about the QGIS-commit
mailing list