[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