Merge pull request #900 from Blewzman/FixAggregateExceptionGetBaseException
[mono.git] / mcs / class / corlib / Test / System / StringTest.cs
index ffa822b6aee77c2aeed275d59cd5888868fa3233..68119d1c5afa8f28d8b940e92ce4cf602cee8cbc 100644 (file)
@@ -2274,7 +2274,25 @@ public class StringTest
                Assert.IsTrue ("ABC".Contains ("ABC"));
                Assert.IsTrue ("ABC".Contains ("AB"));
                Assert.IsTrue (!"ABC".Contains ("AD"));
-               Assert.IsTrue (!"encyclop�dia".Contains("encyclopaedia"));
+               Assert.IsTrue (!"encyclopædia".Contains("encyclopaedia"));
+       }
+
+       [Test]
+       public void IndexOfIsCultureAwareWhileContainsIsNot ()
+       {
+               string a = "encyclopædia";
+               string b = "encyclopaedia";
+               Assert.IsFalse (a.Contains (b), "#1");
+               Assert.IsTrue (a.Contains ("æ"), "#1.1");
+               Assert.IsFalse (b.Contains ("æ"), "#1.2");
+               Assert.AreEqual (0, a.IndexOf (b), "#2");
+               Assert.AreEqual (8, a.IndexOf ('æ'), "#3");
+               Assert.AreEqual (-1, b.IndexOf ('æ'), "#4");
+               Assert.AreEqual (8, a.IndexOf ("æ"), "#5");
+               Assert.AreEqual (8, b.IndexOf ("æ"), "#6");
+
+               Assert.AreEqual (0, CultureInfo.CurrentCulture.CompareInfo.IndexOf (a, b, 0, a.Length, CompareOptions.None), "#7");
+               Assert.AreEqual (-1, CultureInfo.CurrentCulture.CompareInfo.IndexOf (a, b, 0, a.Length, CompareOptions.Ordinal), "#8");
        }
 
        [Test]
@@ -2958,6 +2976,15 @@ public class StringTest
                }
        }
 
+       [Test]
+       public void PadLeft_Overflow ()
+       {
+               try {
+                       "x".PadLeft (int.MaxValue, '-');
+               } catch (OutOfMemoryException) {
+               }
+       }
+
        [Test] // PadRight (Int32)
        public void PadRight1 ()
        {
@@ -2999,6 +3026,15 @@ public class StringTest
                Assert.AreEqual ("000000000000", "".PadRight (12, '0'), "#2");
        }
 
+       [Test]
+       public void PadRight_Overflow ()
+       {
+               try {
+                       "x".PadRight (int.MaxValue, '-');
+               } catch (OutOfMemoryException) {
+               }
+       }
+
        [Test] // Remove (Int32, Int32)
        public void Remove2 ()
        {