[mapguide-commits] r7060 - trunk/Tools/Maestro/MaestroAPITests

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Oct 1 09:28:35 PDT 2012


Author: jng
Date: 2012-10-01 09:28:35 -0700 (Mon, 01 Oct 2012)
New Revision: 7060

Modified:
   trunk/Tools/Maestro/MaestroAPITests/SchemaTests.cs
Log:
#2136: Add the failing test case. This is a verbatim copy of the class names used for the XmlTest::testNameAdjust() test case in FDO.

Modified: trunk/Tools/Maestro/MaestroAPITests/SchemaTests.cs
===================================================================
--- trunk/Tools/Maestro/MaestroAPITests/SchemaTests.cs	2012-10-01 13:58:32 UTC (rev 7059)
+++ trunk/Tools/Maestro/MaestroAPITests/SchemaTests.cs	2012-10-01 16:28:35 UTC (rev 7060)
@@ -24,6 +24,7 @@
 using OSGeo.MapGuide.MaestroAPI.Schema;
 using System.IO;
 using System.Xml;
+using OSGeo.MapGuide.MaestroAPI;
 
 namespace MaestroAPITests
 {
@@ -31,7 +32,7 @@
     public class SchemaTests
     {
         //These tests are to verify that we can read FDO XML configuration and schema documents without problems
-
+        
         [Test]
         public void TestMySqlSchema()
         {
@@ -307,5 +308,114 @@
             schema.AddClass(cls);
             Assert.AreEqual(schema, cls.Parent);
         }
+        
+        [Test]
+        public void TestClassNameEncoding()
+        {
+            // Round-trip various invalid XML names. Copied from FDO test suite
+            string name1 = "Abc def";
+            string name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "Abc-x20-def" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+ 
+            name1 = " Abc#defg$$";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x20-Abc-x23-defg-x24--x24-" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+        
+            name1 = " Abc#defg hij";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x20-Abc-x23-defg-x20-hij" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+        
+            name1 = "--abc-def---ghi--";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x2d--abc-def---ghi--" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+        
+            name1 = "--abc-x20-def-x23--x24-ghi--";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x2d--abc-x2d-x20-def-x2d-x23--x2d-x24-ghi--" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "-xab";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x2d-xab" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "&Entity";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x26-Entity" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "11ab";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x31-1ab" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "2_Class";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x32-_Class" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "2%Class";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x32--x25-Class" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "2-Class";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x32--Class" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "2-x2f-Class";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x32--x2d-x2f-Class" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "_x2d-";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x00-_x2d-" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "-x3d-";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x2d-x3d-" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "_x2d-_x3f-";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x00-_x2d-_x3f-" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "__x2d-_x3f-";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "__x2d-_x3f-" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "_Class";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_Class" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "_5Class";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_5Class" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "_-5Class";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_-5Class" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            name1 = "-_x2f-Class";
+            name2 = Utility.EncodeFDOName(name1);
+            Assert.AreEqual( name2, "_x2d-_x2f-Class" );
+            Assert.AreEqual( name1, Utility.DecodeFDOName(name2) );
+
+            // Backward compatibility check. Make sure old-style 1st character encodings get decoded.
+            name2 = "-x40-A";
+            Assert.AreEqual( Utility.DecodeFDOName(name2), "@A" );
+        }
     }
 }



More information about the mapguide-commits mailing list