[QGIS Commit] r14396 - in trunk/qgis/tests: src/core testdata

svn_qgis at osgeo.org svn_qgis at osgeo.org
Mon Oct 18 11:12:03 EDT 2010


Author: timlinux
Date: 2010-10-18 08:12:03 -0700 (Mon, 18 Oct 2010)
New Revision: 14396

Added:
   trunk/qgis/tests/src/core/testqgsvectorlayer.cpp
   trunk/qgis/tests/testdata/nonspatial.dbf
Modified:
   trunk/qgis/tests/src/core/CMakeLists.txt
Log:
Beginnings of unit test for vector layer

Modified: trunk/qgis/tests/src/core/CMakeLists.txt
===================================================================
--- trunk/qgis/tests/src/core/CMakeLists.txt	2010-10-18 00:40:19 UTC (rev 14395)
+++ trunk/qgis/tests/src/core/CMakeLists.txt	2010-10-18 15:12:03 UTC (rev 14396)
@@ -116,4 +116,5 @@
 ADD_QGIS_TEST(coordinatereferencesystemtest testqgscoordinatereferencesystem.cpp)
 ADD_QGIS_TEST(pointtest testqgspoint.cpp)
 ADD_QGIS_TEST(searchstringtest testqgssearchstring.cpp)
+ADD_QGIS_TEST(vectorlayertest testqgsvectorlayer.cpp)
 

Added: trunk/qgis/tests/src/core/testqgsvectorlayer.cpp
===================================================================
--- trunk/qgis/tests/src/core/testqgsvectorlayer.cpp	                        (rev 0)
+++ trunk/qgis/tests/src/core/testqgsvectorlayer.cpp	2010-10-18 15:12:03 UTC (rev 14396)
@@ -0,0 +1,650 @@
+/***************************************************************************
+     test_template.cpp
+     --------------------------------------
+    Date                 : Sun Sep 16 12:22:23 AKDT 2007
+    Copyright            : (C) 2007 by Gary E. Sherman
+    Email                : sherman at mrcc dot 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 <QObject>
+#include <QString>
+#include <QStringList>
+#include <QObject>
+#include <QApplication>
+#include <QFileInfo>
+#include <QDir>
+#include <QDesktopServices>
+
+#include <iostream>
+//qgis includes...
+#include <qgsmaprenderer.h>
+#include <qgsmaplayer.h>
+#include <qgsvectordataprovider.h>
+#include <qgsvectorlayer.h>
+#include <qgsapplication.h>
+#include <qgsproviderregistry.h>
+#include <qgsmaplayerregistry.h>
+//qgis test includes
+#include "qgsrenderchecker.h"
+
+/** \ingroup UnitTests
+ * This is a unit test for the vector layer class.
+ */
+class TestQgsVectorLayer: public QObject
+{
+  Q_OBJECT;
+  private:
+    bool mTestHasError;
+    QgsMapRenderer * mpMapRenderer;
+    QgsMapLayer * mpPointsLayer;
+    QgsMapLayer * mpLinesLayer;
+    QgsMapLayer * mpPolysLayer;
+    QgsVectorLayer * mpNonSpatialLayer;
+    QString mTestDataDir;
+    QString mReport;
+
+  private slots:
+
+
+    // will be called before the first testfunction is executed.
+    void initTestCase()
+    {
+      mTestHasError = false;
+      // init QGIS's paths - true means that all path will be inited from prefix
+      QString qgisPath = QCoreApplication::applicationDirPath();
+      QgsApplication::setPrefixPath( INSTALL_PREFIX, true );
+      QgsApplication::showSettings();
+      // Instantiate the plugin directory so that providers are loaded
+      QgsProviderRegistry::instance( QgsApplication::pluginPath() );
+
+      //create some objects that will be used in all tests...
+
+      std::cout << "Prefix  PATH: " << QgsApplication::prefixPath().toLocal8Bit().data() << std::endl;
+      std::cout << "Plugin  PATH: " << QgsApplication::pluginPath().toLocal8Bit().data() << std::endl;
+      std::cout << "PkgData PATH: " << QgsApplication::pkgDataPath().toLocal8Bit().data() << std::endl;
+      std::cout << "User DB PATH: " << QgsApplication::qgisUserDbFilePath().toLocal8Bit().data() << std::endl;
+
+      //
+      //create a non spatial layer that will be used in all tests...
+      //
+      QString myDataDir( TEST_DATA_DIR ); //defined in CmakeLists.txt
+      mTestDataDir = myDataDir + QDir::separator();
+      QString myDbfFileName = mTestDataDir + "nonspatial.dbf";
+      QFileInfo myDbfFileInfo( myDbfFileName );
+      mpNonSpatialLayer = new QgsVectorLayer( myDbfFileInfo.filePath(),
+          myDbfFileInfo.completeBaseName(), "ogr" );
+      // Register the layer with the registry
+      QgsMapLayerRegistry::instance()->addMapLayer( mpNonSpatialLayer );
+      //
+      //create a point layer that will be used in all tests...
+      //
+      QString myPointsFileName = mTestDataDir + "points.shp";
+      QFileInfo myPointFileInfo( myPointsFileName );
+      mpPointsLayer = new QgsVectorLayer( myPointFileInfo.filePath(),
+          myPointFileInfo.completeBaseName(), "ogr" );
+      // Register the layer with the registry
+      QgsMapLayerRegistry::instance()->addMapLayer( mpPointsLayer );
+
+      //
+      //create a poly layer that will be used in all tests...
+      //
+      QString myPolysFileName = mTestDataDir + "polys.shp";
+      QFileInfo myPolyFileInfo( myPolysFileName );
+      mpPolysLayer = new QgsVectorLayer( myPolyFileInfo.filePath(),
+          myPolyFileInfo.completeBaseName(), "ogr" );
+      // Register the layer with the registry
+      QgsMapLayerRegistry::instance()->addMapLayer( mpPolysLayer );
+
+
+      //
+      // Create a line layer that will be used in all tests...
+      //
+      QString myLinesFileName = mTestDataDir + "lines.shp";
+      QFileInfo myLineFileInfo( myLinesFileName );
+      mpLinesLayer = new QgsVectorLayer( myLineFileInfo.filePath(),
+          myLineFileInfo.completeBaseName(), "ogr" );
+      // Register the layer with the registry
+      QgsMapLayerRegistry::instance()->addMapLayer( mpLinesLayer );
+      //
+      // We only need maprender instead of mapcanvas
+      // since maprender does not require a qui
+      // and is more light weight
+      //
+      mpMapRenderer = new QgsMapRenderer();
+      QStringList myLayers;
+      myLayers << mpPointsLayer->getLayerID();
+      myLayers << mpPolysLayer->getLayerID();
+      myLayers << mpLinesLayer->getLayerID();
+      mpMapRenderer->setLayerSet( myLayers );
+      mReport += "<h1>Vector Renderer Tests</h1>\n";
+    }
+  // will be called after the last testfunction was executed.
+  void cleanupTestCase()
+  {
+    QString myReportFile = QDir::tempPath() + QDir::separator() + "renderertest.html";
+    QFile myFile( myReportFile );
+    if ( myFile.open( QIODevice::WriteOnly ) )
+    {
+      QTextStream myQTextStream( &myFile );
+      myQTextStream << mReport;
+      myFile.close();
+      QDesktopServices::openUrl( "file://" + myReportFile );
+    }
+
+  }
+  void init() {};// will be called before each testfunction is executed.
+  void cleanup() {};// will be called after every testfunction.
+
+  void QgsVectorLayerNonSpatialIterator()
+  {
+    QgsVectorDataProvider * myProvider = mpNonSpatialLayer->dataProvider();
+    QgsFeature f;
+    int myCount = 0;
+    myProvider->select();
+    while ( myProvider->nextFeature( f ) )
+    {
+      qDebug("Getting feature from provider");
+      myCount++;
+    }
+    QVERIFY( myCount > 10);
+  };
+  void QgsVectorLayerstorageType()
+  {
+
+  };
+  void QgsVectorLayercapabilitiesString()
+  {
+
+  };
+  void QgsVectorLayerdataComment()
+  {
+
+  };
+  void QgsVectorLayerproviderType()
+  {
+
+  };
+  void QgsVectorLayersetDisplayField()
+  {
+
+  };
+  void QgsVectorLayerdrawLabels()
+  {
+
+  };
+  void QgsVectorLayerdrawLineString()
+  {
+
+  };
+  void QgsVectorLayerdrawPolygon()
+  {
+
+  };
+  void QgsVectorLayerdrawRendererV2()
+  {
+
+  };
+  void QgsVectorLayerdrawRendererV2Levels()
+  {
+
+  };
+  void QgsVectorLayerreload()
+  {
+
+  };
+  void QgsVectorLayerdraw()
+  {
+
+  };
+  void QgsVectorLayerdeleteCachedGeometries()
+  {
+
+  };
+  void QgsVectorLayerdrawVertexMarker()
+  {
+
+  };
+  void QgsVectorLayerselect()
+  {
+
+  };
+  void QgsVectorLayerinvertSelection()
+  {
+
+  };
+  void QgsVectorLayerinvertSelectionInRectangle()
+  {
+
+  };
+  void QgsVectorLayerremoveSelection()
+  {
+
+  };
+  void QgsVectorLayertriggerRepaint()
+  {
+
+  };
+  void QgsVectorLayerdataProvider()
+  {
+
+  };
+  void QgsVectorLayersetProviderEncoding()
+  {
+
+  };
+  void QgsVectorLayerrenderer()
+  {
+
+  };
+  void QgsVectorLayersetRenderer()
+  {
+
+  };
+  void QgsVectorLayergeometryType()
+  {
+
+  };
+  void QgsVectorLayerwkbType()
+  {
+
+  };
+  void QgsVectorLayerboundingBoxOfSelected()
+  {
+
+  };
+  void QgsVectorLayerfeatureCount()
+  {
+
+  };
+  void QgsVectorLayerupdateFeatureCount()
+  {
+
+  };
+  void QgsVectorLayerupdateExtents()
+  {
+
+  };
+  void QgsVectorLayersubsetString()
+  {
+
+  };
+  void QgsVectorLayersetSubsetString()
+  {
+
+  };
+  void QgsVectorLayerupdateFeatureAttributes()
+  {
+
+  };
+  void QgsVectorLayerupdateFeatureGeometry()
+  {
+
+  };
+  void QgsVectorLayernextFeature()
+  {
+
+  };
+  void QgsVectorLayerfeatureAtId()
+  {
+
+  };
+  void QgsVectorLayeraddFeature()
+  {
+
+  };
+  void QgsVectorLayerinsertVertex()
+  {
+
+  };
+  void QgsVectorLayermoveVertex()
+  {
+
+  };
+  void QgsVectorLayerdeleteVertex()
+  {
+
+  };
+  void QgsVectorLayerdeleteSelectedFeatures()
+  {
+
+  };
+  void QgsVectorLayeraddRing()
+  {
+
+  };
+  void QgsVectorLayeraddIsland()
+  {
+
+  };
+  void QgsVectorLayertranslateFeature()
+  {
+
+  };
+  void QgsVectorLayersplitFeatures()
+  {
+
+  };
+  void QgsVectorLayerremovePolygonIntersections()
+  {
+
+  };
+  void QgsVectorLayeraddTopologicalPoints()
+  {
+
+  };
+  void QgsVectorLayerlabel()
+  {
+
+  };
+  void QgsVectorLayerenableLabels()
+  {
+
+  };
+  void QgsVectorLayerhasLabelsEnabled()
+  {
+
+  };
+  void QgsVectorLayerstartEditing()
+  {
+
+  };
+  void QgsVectorLayerreadXml()
+  {
+
+  };
+  void QgsVectorLayersetDataProvider()
+  {
+
+  };
+  void QgsVectorLayerwriteXml()
+  {
+
+  };
+  void QgsVectorLayerreadSymbology()
+  {
+
+  };
+  void QgsVectorLayerwriteSymbology()
+  {
+
+  };
+  void QgsVectorLayerchangeGeometry()
+  {
+
+  };
+  void QgsVectorLayerchangeAttributeValue()
+  {
+
+  };
+  void QgsVectorLayeraddAttribute()
+  {
+
+  };
+  void QgsVectorLayeraddAttributeAlias()
+  {
+
+  };
+  void QgsVectorLayerattributeAlias()
+  {
+
+  };
+  void QgsVectorLayerattributeDisplayName()
+  {
+
+  };
+  void QgsVectorLayerdeleteAttribute()
+  {
+
+  };
+  void QgsVectorLayerdeleteFeature()
+  {
+
+  };
+  void QgsVectorLayerpendingFields()
+  {
+
+  };
+  void QgsVectorLayerpendingAllAttributesList()
+  {
+
+  };
+  void QgsVectorLayerpendingFeatureCount()
+  {
+
+  };
+  void QgsVectorLayercommitChanges()
+  {
+
+  };
+  void QgsVectorLayercommitErrors()
+  {
+
+  };
+  void QgsVectorLayerrollBack()
+  {
+
+  };
+  void QgsVectorLayersetSelectedFeatures()
+  {
+
+  };
+  void QgsVectorLayerselectedFeatureCount()
+  {
+
+  };
+  void QgsVectorLayerselectedFeaturesIds()
+  {
+
+  };
+  void QgsVectorLayerselectedFeatures()
+  {
+
+  };
+  void QgsVectorLayeraddFeatures()
+  {
+
+  };
+  void QgsVectorLayercopySymbologySettings()
+  {
+
+  };
+  void QgsVectorLayerhasCompatibleSymbology()
+  {
+
+  };
+  void QgsVectorLayersnapPoint()
+  {
+
+  };
+  void QgsVectorLayersnapWithContext()
+  {
+
+  };
+  void QgsVectorLayersnapToGeometry()
+  {
+
+  };
+  void QgsVectorLayerinsertSegmentVerticesForSnap()
+  {
+
+  };
+  void QgsVectorLayerboundingBoxFromPointList()
+  {
+
+  };
+  void QgsVectorLayercurrentVertexMarkerType()
+  {
+
+  };
+  void QgsVectorLayercurrentVertexMarkerSize()
+  {
+
+  };
+  void QgsVectorLayerdrawFeature()
+  {
+
+  };
+  void QgsVectorLayersetCoordinateSystem()
+  {
+
+  };
+  void QgsVectorLayertransformPoint()
+  {
+
+  };
+  void QgsVectorLayertransformPoints()
+  {
+
+  };
+  void QgsVectorLayerdisplayField()
+  {
+
+  };
+  void QgsVectorLayerisEditable()
+  {
+
+  };
+  void QgsVectorLayerisModified()
+  {
+
+  };
+  void QgsVectorLayersetModified()
+  {
+
+  };
+  void QgsVectorLayereditType()
+  {
+
+  };
+  void QgsVectorLayersetEditType()
+  {
+
+  };
+  void QgsVectorLayereditForm()
+  {
+
+  };
+  void QgsVectorLayersetEditForm()
+  {
+
+  };
+  void QgsVectorLayersetAnnotationForm()
+  {
+
+  };
+  void QgsVectorLayereditFormInit()
+  {
+
+  };
+  void QgsVectorLayersetEditFormInit()
+  {
+
+  };
+  void QgsVectorLayervalueMap()
+  {
+
+  };
+  void QgsVectorLayerrange()
+  {
+
+  };
+  void QgsVectorLayeraddOverlay()
+  {
+
+  };
+  void QgsVectorLayerremoveOverlay()
+  {
+
+  };
+  void QgsVectorLayervectorOverlays()
+  {
+
+  };
+  void QgsVectorLayerfindOverlayByType()
+  {
+
+  };
+  void QgsVectorLayerrendererV2()
+  {
+
+  };
+  void QgsVectorLayersetRendererV2()
+  {
+
+  };
+  void QgsVectorLayerisUsingRendererV2()
+  {
+
+  };
+  void QgsVectorLayersetUsingRendererV2()
+  {
+
+  };
+  void QgsVectorLayereditGeometryChange()
+  {
+
+  };
+  void QgsVectorLayereditFeatureAdd()
+  {
+
+  };
+  void QgsVectorLayereditFeatureDelete()
+  {
+
+  };
+  void QgsVectorLayereditAttributeChange()
+  {
+
+  };
+  void QgsVectorLayerbeginEditCommand()
+  {
+
+  };
+  void QgsVectorLayerendEditCommand()
+  {
+
+  };
+  void QgsVectorLayerdestroyEditCommand()
+  {
+
+  };
+  void QgsVectorLayerredoEditCommand()
+  {
+
+  };
+  void QgsVectorLayerundoEditCommand()
+  {
+
+  };
+  void QgsVectorLayersetCheckedState()
+  {
+
+  };
+  void QgsVectorLayercheckedState()
+  {
+
+  };
+  void QgsVectorLayerfieldNameIndex()
+  {
+
+  };
+  void QgsVectorLayerstopRendererV2()
+  {
+
+  };
+
+};
+
+QTEST_MAIN(TestQgsVectorLayer)
+#include "moc_testqgsvectorlayer.cxx"
+
+
+
+

Added: trunk/qgis/tests/testdata/nonspatial.dbf
===================================================================
(Binary files differ)


Property changes on: trunk/qgis/tests/testdata/nonspatial.dbf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream



More information about the QGIS-commit mailing list