[mapguide-commits] r8053 - in trunk/MgDev/Desktop: MgDesktop/Services UnitTest

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Apr 16 08:59:21 PDT 2014


Author: jng
Date: 2014-04-16 08:59:20 -0700 (Wed, 16 Apr 2014)
New Revision: 8053

Modified:
   trunk/MgDev/Desktop/MgDesktop/Services/RenderingService.cpp
   trunk/MgDev/Desktop/UnitTest/TestRenderingService.cpp
   trunk/MgDev/Desktop/UnitTest/TestRenderingService.h
   trunk/MgDev/Desktop/UnitTest/main.cpp
Log:
#2420: Port fix and unit tests to mg-desktop. Also don't use dotted-style unit test progress output so we get output similar to FDO's unit tests.

Modified: trunk/MgDev/Desktop/MgDesktop/Services/RenderingService.cpp
===================================================================
--- trunk/MgDev/Desktop/MgDesktop/Services/RenderingService.cpp	2014-04-16 15:11:18 UTC (rev 8052)
+++ trunk/MgDev/Desktop/MgDesktop/Services/RenderingService.cpp	2014-04-16 15:59:20 UTC (rev 8053)
@@ -1710,6 +1710,9 @@
     for (int i=0; i<layerCount; ++i)
     {
         Ptr<MgLayerBase> mapLayer(layers->GetItem(i));
+        // Don't draw watermarks for invisible layers 
+        if (!mapLayer->IsVisible())
+            continue;
 
         Ptr<MgResourceIdentifier> layerid = mapLayer->GetLayerDefinition();
         ldf.reset(MgLayerBase::GetLayerDefinition(m_svcResource, layerid));

Modified: trunk/MgDev/Desktop/UnitTest/TestRenderingService.cpp
===================================================================
--- trunk/MgDev/Desktop/UnitTest/TestRenderingService.cpp	2014-04-16 15:11:18 UTC (rev 8052)
+++ trunk/MgDev/Desktop/UnitTest/TestRenderingService.cpp	2014-04-16 15:59:20 UTC (rev 8053)
@@ -365,6 +365,16 @@
         Ptr<MgByteReader> mdfrdr15 = mdfsrc15->GetReader();
         m_svcResource->SetResource(mapres15, mdfrdr15, NULL);
 
+        // For layer watermark test
+        Ptr<MgResourceIdentifier> wdfres2 = new MgResourceIdentifier(L"Library://UnitTests/Watermarks/Rail.WatermarkDefinition");
+        Ptr<MgByteSource> wdfsrc2 = new MgByteSource(L"../UnitTestFiles/UT_Rail.wdf", false);
+        Ptr<MgByteReader> wdfrdr2 = wdfsrc2->GetReader();
+        m_svcResource->SetResource(wdfres2, wdfrdr2, NULL);
+
+        Ptr<MgResourceIdentifier> ldfres21 = new MgResourceIdentifier(L"Library://UnitTests/Layers/RailWatermark.LayerDefinition");
+        Ptr<MgByteSource> ldfsrc21 = new MgByteSource(L"../UnitTestFiles/UT_Rail_Watermark.ldf", false);
+        Ptr<MgByteReader> ldfrdr21 = ldfsrc21->GetReader();
+        m_svcResource->SetResource(ldfres21, ldfrdr21, NULL);
     }
     catch (MgException* e)
     {
@@ -504,6 +514,12 @@
 
         Ptr<MgResourceIdentifier> mapres15 = new MgResourceIdentifier(L"Library://UnitTests/Maps/StylizationFuncs.MapDefinition");
         m_svcResource->DeleteResource(mapres15);
+
+        // Layer watermark test
+        Ptr<MgResourceIdentifier> wdfres2 = new MgResourceIdentifier(L"Library://UnitTests/Watermarks/Rail.WatermarkDefinition");
+        m_svcResource->DeleteResource(wdfres2);
+        Ptr<MgResourceIdentifier> ldfres21 = new MgResourceIdentifier(L"Library://UnitTests/Layers/RailWatermark.LayerDefinition");
+        m_svcResource->DeleteResource(ldfres21);
     }
     catch(MgFileIoException* e)
     {
@@ -1050,6 +1066,52 @@
     }
 }
 
+void TestRenderingService::TestCase_LayerWatermark(CREFSTRING imageFormat, CREFSTRING extension)
+{
+    try
+    {
+        // make a runtime map
+        Ptr<MgdMap> map = CreateTestMap();
+
+        // call the API using a scale of 60000
+        map->SetViewScale(60000.0);
+
+        // Remove existing rail layer
+        Ptr<MgLayerCollection> layers = map->GetLayers();
+        INT32 index = layers->IndexOf(L"Rail");
+        if (index >= 0)
+            layers->RemoveAt(index);
+
+        // Insert our watermarked rail layer
+        Ptr<MgResourceIdentifier> layerDef = new MgResourceIdentifier(L"Library://UnitTests/Layers/RailWatermark.LayerDefinition");
+        Ptr<MgdLayer> layer = new MgdLayer(layerDef, m_svcResource);
+        layer->SetName(L"Rail");
+        layer->SetLegendLabel(layerDef->GetName());
+        layers->Insert(0, layer);
+        map->Save();
+
+        Ptr<MgColor> selColor = new MgColor(0, 0, 255);
+        Ptr<MgdRenderingOptions> renderOpts = new MgdRenderingOptions(imageFormat, MgdRenderingOptions::RenderLayers | MgdRenderingOptions::RenderBaseLayers, selColor);
+        Ptr<MgByteReader> img = m_svcRendering->RenderDynamicOverlay(map, NULL, renderOpts);
+        img->ToFile(GetPath(L"../UnitTestFiles/LayerWatermarkOn", imageFormat, extension));
+
+        layer->SetVisible(false);
+        map->Save();
+        img = m_svcRendering->RenderDynamicOverlay(map, NULL, renderOpts);
+        img->ToFile(GetPath(L"../UnitTestFiles/LayerWatermarkOff", imageFormat, extension));
+    }
+    catch (MgException* e)
+    {
+        STRING message = e->GetDetails(TEST_LOCALE);
+        SAFE_RELEASE(e);
+        CPPUNIT_FAIL(MG_WCHAR_TO_CHAR(message.c_str()));
+    }
+    catch (...)
+    {
+        throw;
+    }
+}
+
 void TestRenderingService::TestCase_QueryFeatures()
 {
     try

Modified: trunk/MgDev/Desktop/UnitTest/TestRenderingService.h
===================================================================
--- trunk/MgDev/Desktop/UnitTest/TestRenderingService.h	2014-04-16 15:11:18 UTC (rev 8052)
+++ trunk/MgDev/Desktop/UnitTest/TestRenderingService.h	2014-04-16 15:59:20 UTC (rev 8053)
@@ -49,6 +49,7 @@
     CPPUNIT_TEST(TestCase_RenderLegendMultiCTSWithThemePNG);
     CPPUNIT_TEST(TestCase_RenderLegendMultiFTSSingleCTSPNG);
     CPPUNIT_TEST(TestCase_RenderLegendSingleFTSMultiCTSPNG);
+    CPPUNIT_TEST(TestCase_LayerWatermarkPNG);
 
     CPPUNIT_TEST(TestCase_StylizationFunctionsPNG8);
 
@@ -74,6 +75,7 @@
     CPPUNIT_TEST(TestCase_RenderLegendMultiCTSWithThemePNG8);
     CPPUNIT_TEST(TestCase_RenderLegendMultiFTSSingleCTSPNG8);
     CPPUNIT_TEST(TestCase_RenderLegendSingleFTSMultiCTSPNG8);
+    CPPUNIT_TEST(TestCase_LayerWatermarkPNG8);
 
     CPPUNIT_TEST(TestCase_StylizationFunctionsGIF);
 
@@ -99,6 +101,7 @@
     CPPUNIT_TEST(TestCase_RenderLegendMultiCTSWithThemeGIF);
     CPPUNIT_TEST(TestCase_RenderLegendMultiFTSSingleCTSGIF);
     CPPUNIT_TEST(TestCase_RenderLegendSingleFTSMultiCTSGIF);
+    CPPUNIT_TEST(TestCase_LayerWatermarkGIF);
 
     CPPUNIT_TEST(TestCase_StylizationFunctionsJPG);
 
@@ -124,6 +127,7 @@
     CPPUNIT_TEST(TestCase_RenderLegendMultiCTSWithThemeJPG);
     CPPUNIT_TEST(TestCase_RenderLegendMultiFTSSingleCTSJPG);
     CPPUNIT_TEST(TestCase_RenderLegendSingleFTSMultiCTSJPG);
+    CPPUNIT_TEST(TestCase_LayerWatermarkJPG);
 
     CPPUNIT_TEST(TestCase_QueryFeatures);
 
@@ -157,6 +161,8 @@
     void TestCase_RenderLegendMultiFTSSingleCTS(CREFSTRING imageFormat, CREFSTRING extension);
     void TestCase_RenderLegendSingleFTSMultiCTS(CREFSTRING imageFormat, CREFSTRING extension);
     
+    void TestCase_LayerWatermark(CREFSTRING imageFormat, CREFSTRING extension);
+
     void TestCase_SymbologyPoints(CREFSTRING imageFormat, CREFSTRING extension);
     void TestCase_SymbologyPointsParam(CREFSTRING imageFormat, CREFSTRING extension);
     void TestCase_SymbologyLines(CREFSTRING imageFormat, CREFSTRING extension);
@@ -191,6 +197,7 @@
     void TestCase_RenderLegendMultiFTSSingleCTSPNG() { TestCase_RenderLegendMultiFTSSingleCTS(L"PNG", L"png"); }
     void TestCase_RenderLegendSingleFTSMultiCTSPNG() { TestCase_RenderLegendSingleFTSMultiCTS(L"PNG", L"png"); }
     void TestCase_StylizationFunctionsPNG() { TestCase_StylizationFunctions(L"PNG", L"png"); }
+    void TestCase_LayerWatermarkPNG() { TestCase_LayerWatermark(L"PNG", L"png"); }
 
     //PNG8 output tests
     void TestCase_RenderDynamicOverlayPNG8() { TestCase_RenderDynamicOverlay(L"PNG8", L"png"); }
@@ -214,6 +221,7 @@
     void TestCase_RenderLegendMultiFTSSingleCTSPNG8() { TestCase_RenderLegendMultiFTSSingleCTS(L"PNG8", L"png"); }
     void TestCase_RenderLegendSingleFTSMultiCTSPNG8() { TestCase_RenderLegendSingleFTSMultiCTS(L"PNG8", L"png"); }
     void TestCase_StylizationFunctionsPNG8() { TestCase_StylizationFunctions(L"PNG8", L"png"); }
+    void TestCase_LayerWatermarkPNG8() { TestCase_LayerWatermark(L"PNG8", L"png"); }
 
     //GIF output tests
     void TestCase_RenderDynamicOverlayGIF() { TestCase_RenderDynamicOverlay(L"GIF", L"gif"); }
@@ -237,6 +245,7 @@
     void TestCase_RenderLegendMultiFTSSingleCTSGIF() { TestCase_RenderLegendMultiFTSSingleCTS(L"GIF", L"gif"); }
     void TestCase_RenderLegendSingleFTSMultiCTSGIF() { TestCase_RenderLegendSingleFTSMultiCTS(L"GIF", L"gif"); }
     void TestCase_StylizationFunctionsGIF() { TestCase_StylizationFunctions(L"GIF", L"gif"); }
+    void TestCase_LayerWatermarkGIF() { TestCase_LayerWatermark(L"GIF", L"gif"); }
 
     //JPG output tests
     void TestCase_RenderDynamicOverlayJPG() { TestCase_RenderDynamicOverlay(L"JPG", L"jpg"); }
@@ -260,6 +269,7 @@
     void TestCase_RenderLegendMultiFTSSingleCTSJPG() { TestCase_RenderLegendMultiFTSSingleCTS(L"JPG", L"jpg"); }
     void TestCase_RenderLegendSingleFTSMultiCTSJPG() { TestCase_RenderLegendSingleFTSMultiCTS(L"JPG", L"jpg"); }
     void TestCase_StylizationFunctionsJPG() { TestCase_StylizationFunctions(L"JPG", L"jpg"); }
+    void TestCase_LayerWatermarkJPG() { TestCase_LayerWatermark(L"JPG", L"jpg"); }
 
     //void TestCase_RendererPerformance();
 

Modified: trunk/MgDev/Desktop/UnitTest/main.cpp
===================================================================
--- trunk/MgDev/Desktop/UnitTest/main.cpp	2014-04-16 15:11:18 UTC (rev 8052)
+++ trunk/MgDev/Desktop/UnitTest/main.cpp	2014-04-16 15:59:20 UTC (rev 8053)
@@ -1,10 +1,12 @@
 #include "MgDesktop.h"
 #include <fstream>
+#include <cppunit/TestResult.h>
 #include <cppunit/TestResultCollector.h>
 #include <cppunit/TextOutputter.h>
 #include <cppunit/XmlOutputter.h>
+#include <cppunit/BriefTestProgressListener.h>
 #include <cppunit/extensions/TestFactoryRegistry.h>
-#include <cppunit/ui/text/TestRunner.h>
+#include <cppunit/TextTestRunner.h>
 
 // for memory leak detection
 #if defined(_WIN32) && defined(_DEBUG)
@@ -65,7 +67,7 @@
 
     ACE_DEBUG((LM_INFO, ACE_TEXT("MENTOR_DICTIONARY_PATH is: %s\n"), dictDir.c_str()));
 
-    CppUnit::TextUi::TestRunner runner;
+    CppUnit::TextTestRunner runner;
 
     // Add all of the tests
     //NOTE: Leave trace log off, otherwise one of the tests here will fail
@@ -102,14 +104,22 @@
         if (outfile.is_open())
         {
             runner.setOutputter(new CppUnit::XmlOutputter(&runner.result(), outfile, "ISO-8859-1"));
-            runner.run();
+            //This is what we have to do to get detailed non-dotted test output 
+            //during execution like we get with FDO's unit tests
+            CppUnit::BriefTestProgressListener listener;
+            runner.eventManager().addListener(&listener);
+            runner.run("", false, true, false);
             outfile.close();
         }
     }
     else
     {
         runner.setOutputter(new CppUnit::TextOutputter(&runner.result(), std::cout));
-        runner.run();
+        //This is what we have to do to get detailed non-dotted test output 
+        //during execution like we get with FDO's unit tests
+        CppUnit::BriefTestProgressListener listener;
+        runner.eventManager().addListener(&listener);
+        runner.run("", false, true, false);
     }
 
     int nResult = runner.result().testFailuresTotal();



More information about the mapguide-commits mailing list