New tests, update
[mono.git] / mcs / class / System / System.Net.Mail / AlternateView.cs
index 1dff08e1d0a2ff29e3e2fd819bf2cdd456752e02..1502b8a40d98cbc26d4c2d3bbdb5477c6d5f7597 100644 (file)
@@ -45,46 +45,34 @@ namespace System.Net.Mail {
 
                #region Constructors
 
-               [MonoTODO]
                public AlternateView (string fileName) : base (fileName)
                {
                        if (fileName == null)
                                throw new ArgumentNullException ();
                }
 
-               [MonoTODO]
                public AlternateView (string fileName, ContentType contentType) : base (fileName, contentType)
                {
                        if (fileName == null)
                                throw new ArgumentNullException ();
                }
 
-               [MonoTODO]
                public AlternateView (string fileName, string mediaType) : base (fileName, mediaType)
                {
                        if (fileName == null)
                                throw new ArgumentNullException ();
                }
 
-               [MonoTODO]
                public AlternateView (Stream contentStream) : base (contentStream)
                {
-                       if (contentStream == null)
-                               throw new ArgumentNullException ();
                }
                
-               [MonoTODO]
                public AlternateView (Stream contentStream, string mediaType) : base (contentStream, mediaType)
                {
-                       if (contentStream == null)
-                               throw new ArgumentNullException ();
                }
                
-               [MonoTODO]
                public AlternateView (Stream contentStream, ContentType contentType) : base (contentStream, contentType)
                {
-                       if (contentStream == null)
-                               throw new ArgumentNullException ();
                }
 
                #endregion // Constructors
@@ -104,36 +92,44 @@ namespace System.Net.Mail {
                
                #region Methods
 
-               [MonoTODO]
                public static AlternateView CreateAlternateViewFromString (string content)
                {
                        if (content == null)
                                throw new ArgumentNullException ();
                        MemoryStream ms = new MemoryStream (Encoding.UTF8.GetBytes (content));
-                       return new AlternateView (ms);
+                       AlternateView av = new AlternateView (ms);
+                       av.TransferEncoding = TransferEncoding.QuotedPrintable;
+                       return av;
                }
 
-               [MonoTODO]
                public static AlternateView CreateAlternateViewFromString (string content, ContentType contentType)
                {
                        if (content == null)
-                               throw new ArgumentNullException ();
-                       MemoryStream ms = new MemoryStream (Encoding.UTF8.GetBytes (content));
-                       return new AlternateView (ms, contentType);
+                               throw new ArgumentNullException ("content");
+                       Encoding enc = contentType.CharSet != null ? Encoding.GetEncoding (contentType.CharSet) : Encoding.UTF8;
+                       MemoryStream ms = new MemoryStream (enc.GetBytes (content));
+                       AlternateView av = new AlternateView (ms, contentType);
+                       av.TransferEncoding = TransferEncoding.QuotedPrintable;
+                       return av;
                }
 
-               [MonoTODO]
                public static AlternateView CreateAlternateViewFromString (string content, Encoding encoding, string mediaType)
                {
                        if (content == null)
-                               throw new ArgumentNullException ();
+                               throw new ArgumentNullException ("content");
+                       if (encoding == null)
+                               encoding = Encoding.UTF8;
                        MemoryStream ms = new MemoryStream (encoding.GetBytes (content));
-                       return new AlternateView (ms, mediaType);
+                       AlternateView av = new AlternateView (ms, mediaType);
+                       av.TransferEncoding = TransferEncoding.QuotedPrintable;
+                       return av;
                }
 
-               [MonoTODO]
                protected override void Dispose (bool disposing)
                {
+                       if (disposing)
+                               foreach (LinkedResource lr in linkedResources)
+                                       lr.Dispose ();
                        base.Dispose (disposing);
                }