Merge pull request #1870 from saper/langinfo_h
[mono.git] / mcs / class / System.Xaml / Test / System.Xaml / XamlXmlReaderTest.cs
1 //
2 // Copyright (C) 2010 Novell Inc. http://novell.com
3 //
4 // Permission is hereby granted, free of charge, to any person obtaining
5 // a copy of this software and associated documentation files (the
6 // "Software"), to deal in the Software without restriction, including
7 // without limitation the rights to use, copy, modify, merge, publish,
8 // distribute, sublicense, and/or sell copies of the Software, and to
9 // permit persons to whom the Software is furnished to do so, subject to
10 // the following conditions:
11 // 
12 // The above copyright notice and this permission notice shall be
13 // included in all copies or substantial portions of the Software.
14 // 
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 //
23 using System;
24 using System.Collections;
25 using System.Collections.Generic;
26 using System.ComponentModel;
27 using System.Globalization;
28 using System.IO;
29 using System.Linq;
30 using System.Reflection;
31 using System.Windows.Markup;
32 using System.Xaml;
33 using System.Xaml.Schema;
34 using System.Xml;
35 using NUnit.Framework;
36
37 using CategoryAttribute = NUnit.Framework.CategoryAttribute;
38
39 namespace MonoTests.System.Xaml
40 {
41         [TestFixture]
42         public class XamlXmlReaderTest : XamlReaderTestBase
43         {
44                 // read test
45
46                 XamlReader GetReader (string filename)
47                 {
48                         const string ver = "net_4_x";
49                         string xml = File.ReadAllText (Path.Combine ("Test/XmlFiles", filename)).Replace ("net_4_0", ver);
50                         return new XamlXmlReader (XmlReader.Create (new StringReader (xml)));
51                 }
52
53                 void ReadTest (string filename)
54                 {
55                         var r = GetReader (filename);
56                         while (!r.IsEof)
57                                 r.Read ();
58                 }
59
60                 [Test]
61                 public void SchemaContext ()
62                 {
63                         Assert.AreNotEqual (XamlLanguage.Type.SchemaContext, new XamlXmlReader (XmlReader.Create (new StringReader ("<root/>"))).SchemaContext, "#1");
64                 }
65
66                 [Test]
67                 public void Read_Int32 ()
68                 {
69                         ReadTest ("Int32.xml");
70                 }
71
72                 [Test]
73                 public void Read_DateTime ()
74                 {
75                         ReadTest ("DateTime.xml");
76                 }
77
78                 [Test]
79                 public void Read_TimeSpan ()
80                 {
81                         ReadTest ("TimeSpan.xml");
82                 }
83
84                 [Test]
85                 public void Read_ArrayInt32 ()
86                 {
87                         ReadTest ("Array_Int32.xml");
88                 }
89
90                 [Test]
91                 public void Read_DictionaryInt32String ()
92                 {
93                         ReadTest ("Dictionary_Int32_String.xml");
94                 }
95
96                 [Test]
97                 public void Read_DictionaryStringType ()
98                 {
99                         ReadTest ("Dictionary_String_Type.xml");
100                 }
101
102                 [Test]
103                 public void Read_SilverlightApp1 ()
104                 {
105                         ReadTest ("SilverlightApp1.xaml");
106                 }
107
108                 [Test]
109                 public void Read_Guid ()
110                 {
111                         ReadTest ("Guid.xml");
112                 }
113
114                 [Test]
115                 public void Read_GuidFactoryMethod ()
116                 {
117                         ReadTest ("GuidFactoryMethod.xml");
118                 }
119
120                 [Test]
121                 public void ReadInt32Details ()
122                 {
123                         var r = GetReader ("Int32.xml");
124
125                         Assert.IsTrue (r.Read (), "ns#1");
126                         Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "ns#2");
127                         Assert.AreEqual (XamlLanguage.Xaml2006Namespace, r.Namespace.Namespace, "ns#3");
128
129                         Assert.IsTrue (r.Read (), "so#1");
130                         Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "so#2");
131                         Assert.AreEqual (XamlLanguage.Int32, r.Type, "so#3");
132
133                         ReadBase (r);
134
135                         Assert.IsTrue (r.Read (), "sinit#1");
136                         Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "sinit#2");
137                         Assert.AreEqual (XamlLanguage.Initialization, r.Member, "sinit#3");
138
139                         Assert.IsTrue (r.Read (), "vinit#1");
140                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "vinit#2");
141                         Assert.AreEqual ("5", r.Value, "vinit#3"); // string
142
143                         Assert.IsTrue (r.Read (), "einit#1");
144                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "einit#2");
145
146                         Assert.IsTrue (r.Read (), "eo#1");
147                         Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "eo#2");
148
149                         Assert.IsFalse (r.Read (), "end");
150                 }
151
152                 [Test]
153                 public void ReadDateTimeDetails ()
154                 {
155                         var r = GetReader ("DateTime.xml");
156
157                         Assert.IsTrue (r.Read (), "ns#1");
158                         Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "ns#2");
159                         Assert.AreEqual ("clr-namespace:System;assembly=mscorlib", r.Namespace.Namespace, "ns#3");
160
161                         Assert.IsTrue (r.Read (), "so#1");
162                         Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "so#2");
163                         Assert.AreEqual (r.SchemaContext.GetXamlType (typeof (DateTime)), r.Type, "so#3");
164
165                         ReadBase (r);
166
167                         Assert.IsTrue (r.Read (), "sinit#1");
168                         Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "sinit#2");
169                         Assert.AreEqual (XamlLanguage.Initialization, r.Member, "sinit#3");
170
171                         Assert.IsTrue (r.Read (), "vinit#1");
172                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "vinit#2");
173                         Assert.AreEqual ("2010-04-14", r.Value, "vinit#3"); // string
174
175                         Assert.IsTrue (r.Read (), "einit#1");
176                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "einit#2");
177
178                         Assert.IsTrue (r.Read (), "eo#1");
179                         Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "eo#2");
180                         Assert.IsFalse (r.Read (), "end");
181                 }
182
183                 [Test]
184                 public void ReadGuidFactoryMethodDetails ()
185                 {
186                         var r = GetReader ("GuidFactoryMethod.xml");
187
188                         Assert.IsTrue (r.Read (), "ns#1");
189                         Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "ns#2");
190                         Assert.AreEqual ("clr-namespace:System;assembly=mscorlib", r.Namespace.Namespace, "ns#3");
191                         Assert.AreEqual (String.Empty, r.Namespace.Prefix, "ns#4");
192
193                         Assert.IsTrue (r.Read (), "ns2#1");
194                         Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "ns2#2");
195                         Assert.AreEqual (XamlLanguage.Xaml2006Namespace, r.Namespace.Namespace, "ns2#3");
196                         Assert.AreEqual ("x", r.Namespace.Prefix, "ns2#4");
197
198                         Assert.IsTrue (r.Read (), "so#1");
199                         Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "so#2");
200                         var xt = r.SchemaContext.GetXamlType (typeof (Guid));
201                         Assert.AreEqual (xt, r.Type, "so#3");
202
203                         ReadBase (r);
204
205                         Assert.IsTrue (r.Read (), "sfactory#1");
206                         Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "sfactory#2");
207                         Assert.AreEqual (XamlLanguage.FactoryMethod, r.Member, "sfactory#3");
208
209                         Assert.IsTrue (r.Read (), "vfactory#1");
210                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "vfactory#2");
211                         Assert.AreEqual ("Parse", r.Value, "vfactory#3"); // string
212
213                         Assert.IsTrue (r.Read (), "efactory#1");
214                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "efactory#2");
215
216                         Assert.IsTrue (r.Read (), "sarg#1");
217                         Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "sarg#2");
218                         Assert.AreEqual (XamlLanguage.Arguments, r.Member, "sarg#3");
219
220                         Assert.IsTrue (r.Read (), "sarg1#1");
221                         Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "sarg1#2");
222                         Assert.AreEqual (XamlLanguage.String, r.Type, "sarg1#3");
223
224                         Assert.IsTrue (r.Read (), "sInit#1");
225                         Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "sInit#2");
226                         Assert.AreEqual (XamlLanguage.Initialization, r.Member, "sInit#3");
227
228                         Assert.IsTrue (r.Read (), "varg1#1");
229                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "varg1#2");
230                         Assert.AreEqual ("9c3345ec-8922-4662-8e8d-a4e41f47cf09", r.Value, "varg1#3");
231
232                         Assert.IsTrue (r.Read (), "eInit#1");
233                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "eInit#2");
234
235                         Assert.IsTrue (r.Read (), "earg1#1");
236                         Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "earg1#2");
237
238                         Assert.IsTrue (r.Read (), "earg#1");
239                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "earg#2");
240
241
242                         Assert.IsTrue (r.Read (), "eo#1");
243                         Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "eo#2");
244
245                         Assert.IsFalse (r.Read (), "end");
246                 }
247
248                 [Test]
249                 public void ReadEventStore ()
250                 {
251                         var r = GetReader ("EventStore2.xml");
252
253                         var xt = r.SchemaContext.GetXamlType (typeof (EventStore));
254                         var xm = xt.GetMember ("Event1");
255                         Assert.IsNotNull (xt, "premise#1");
256                         Assert.IsNotNull (xm, "premise#2");
257                         Assert.IsTrue (xm.IsEvent, "premise#3");
258                         while (true) {
259                                 r.Read ();
260                                 if (r.Member != null && r.Member.IsEvent)
261                                         break;
262                                 if (r.IsEof)
263                                         Assert.Fail ("Items did not appear");
264                         }
265
266                         Assert.AreEqual (xm, r.Member, "#x1");
267                         Assert.AreEqual ("Event1", r.Member.Name, "#x2");
268
269                         Assert.IsTrue (r.Read (), "#x11");
270                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "#x12");
271                         Assert.AreEqual ("Method1", r.Value, "#x13");
272
273                         Assert.IsTrue (r.Read (), "#x21");
274                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "#x22");
275
276                         xm = xt.GetMember ("Event2");
277                         Assert.IsTrue (r.Read (), "#x31");
278                         Assert.AreEqual (xm, r.Member, "#x32");
279                         Assert.AreEqual ("Event2", r.Member.Name, "#x33");
280
281                         Assert.IsTrue (r.Read (), "#x41");
282                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "#x42");
283                         Assert.AreEqual ("Method2", r.Value, "#x43");
284
285                         Assert.IsTrue (r.Read (), "#x51");
286                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "#x52");
287
288                         Assert.IsTrue (r.Read (), "#x61");
289                         Assert.AreEqual ("Event1", r.Member.Name, "#x62");
290
291                         Assert.IsTrue (r.Read (), "#x71");
292                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "#x72");
293                         Assert.AreEqual ("Method3", r.Value, "#x73"); // nonexistent, but no need to raise an error.
294
295                         Assert.IsTrue (r.Read (), "#x81");
296                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "#x82");
297
298                         while (!r.IsEof)
299                                 r.Read ();
300
301                         r.Close ();
302                 }
303
304                 // common XamlReader tests.
305
306                 [Test]
307                 public void Read_String ()
308                 {
309                         var r = GetReader ("String.xml");
310                         Read_String (r);
311                 }
312
313                 [Test]
314                 public void WriteNullMemberAsObject ()
315                 {
316                         var r = GetReader ("TestClass4.xml");
317                         WriteNullMemberAsObject (r, null);
318                 }
319                 
320                 [Test]
321                 public void StaticMember ()
322                 {
323                         var r = GetReader ("TestClass5.xml");
324                         StaticMember (r);
325                 }
326
327                 [Test]
328                 public void Skip ()
329                 {
330                         var r = GetReader ("String.xml");
331                         Skip (r);
332                 }
333                 
334                 [Test]
335                 public void Skip2 ()
336                 {
337                         var r = GetReader ("String.xml");
338                         Skip2 (r);
339                 }
340
341                 [Test]
342                 public void Read_XmlDocument ()
343                 {
344                         var doc = new XmlDocument ();
345                         doc.LoadXml ("<root xmlns='urn:foo'><elem attr='val' /></root>");
346                         // note that corresponding XamlXmlWriter is untested yet.
347                         var r = GetReader ("XmlDocument.xml");
348                         Read_XmlDocument (r);
349                 }
350
351                 [Test]
352                 public void Read_NonPrimitive ()
353                 {
354                         var r = GetReader ("NonPrimitive.xml");
355                         Read_NonPrimitive (r);
356                 }
357                 
358                 [Test]
359                 public void Read_TypeExtension ()
360                 {
361                         var r = GetReader ("Type.xml");
362                         Read_TypeOrTypeExtension (r, null, XamlLanguage.Type.GetMember ("Type"));
363                 }
364                 
365                 [Test]
366                 public void Read_Type2 ()
367                 {
368                         var r = GetReader ("Type2.xml");
369                         Read_TypeOrTypeExtension2 (r, null, XamlLanguage.Type.GetMember ("Type"));
370                 }
371                 
372                 [Test]
373                 public void Read_Reference ()
374                 {
375                         var r = GetReader ("Reference.xml");
376                         Read_Reference (r);
377                 }
378                 
379                 [Test]
380                 public void Read_Null ()
381                 {
382                         var r = GetReader ("NullExtension.xml");
383                         Read_NullOrNullExtension (r, null);
384                 }
385                 
386                 [Test]
387                 public void Read_StaticExtension ()
388                 {
389                         var r = GetReader ("StaticExtension.xml");
390                         Read_StaticExtension (r, XamlLanguage.Static.GetMember ("Member"));
391                 }
392                 
393                 [Test]
394                 public void Read_ListInt32 ()
395                 {
396                         var r = GetReader ("List_Int32.xml");
397                         Read_ListInt32 (r, null, new int [] {5, -3, int.MaxValue, 0}.ToList ());
398                 }
399                 
400                 [Test]
401                 public void Read_ListInt32_2 ()
402                 {
403                         var r = GetReader ("List_Int32_2.xml");
404                         Read_ListInt32 (r, null, new int [0].ToList ());
405                 }
406                 
407                 [Test]
408                 public void Read_ListType ()
409                 {
410                         var r = GetReader ("List_Type.xml");
411                         Read_ListType (r, false);
412                 }
413
414                 [Test]
415                 public void Read_ListArray ()
416                 {
417                         var r = GetReader ("List_Array.xml");
418                         Read_ListArray (r);
419                 }
420
421                 [Test]
422                 public void Read_ArrayList ()
423                 {
424                         var r = GetReader ("ArrayList.xml");
425                         Read_ArrayList (r);
426                 }
427                 
428                 [Test]
429                 public void Read_Array ()
430                 {
431                         var r = GetReader ("ArrayExtension.xml");
432                         Read_ArrayOrArrayExtensionOrMyArrayExtension (r, null, typeof (ArrayExtension));
433                 }
434                 
435                 [Test]
436                 public void Read_MyArrayExtension ()
437                 {
438                         var r = GetReader ("MyArrayExtension.xml");
439                         Read_ArrayOrArrayExtensionOrMyArrayExtension (r, null, typeof (MyArrayExtension));
440                 }
441
442                 [Test]
443                 public void Read_ArrayExtension2 ()
444                 {
445                         var r = GetReader ("ArrayExtension2.xml");
446                         Read_ArrayExtension2 (r);
447                 }
448
449                 [Test]
450                 public void Read_CustomMarkupExtension ()
451                 {
452                         var r = GetReader ("MyExtension.xml");
453                         Read_CustomMarkupExtension (r);
454                 }
455                 
456                 [Test]
457                 public void Read_CustomMarkupExtension2 ()
458                 {
459                         var r = GetReader ("MyExtension2.xml");
460                         Read_CustomMarkupExtension2 (r);
461                 }
462                 
463                 [Test]
464                 public void Read_CustomMarkupExtension3 ()
465                 {
466                         var r = GetReader ("MyExtension3.xml");
467                         Read_CustomMarkupExtension3 (r);
468                 }
469                 
470                 [Test]
471                 public void Read_CustomMarkupExtension4 ()
472                 {
473                         var r = GetReader ("MyExtension4.xml");
474                         Read_CustomMarkupExtension4 (r);
475                 }
476                 
477                 [Test]
478                 public void Read_CustomMarkupExtension6 ()
479                 {
480                         var r = GetReader ("MyExtension6.xml");
481                         Read_CustomMarkupExtension6 (r);
482                 }
483
484                 [Test]
485                 public void Read_ArgumentAttributed ()
486                 {
487                         var obj = new ArgumentAttributed ("foo", "bar");
488                         var r = GetReader ("ArgumentAttributed.xml");
489                         Read_ArgumentAttributed (r, obj);
490                 }
491
492                 [Test]
493                 public void Read_Dictionary ()
494                 {
495                         var obj = new Dictionary<string,object> ();
496                         obj ["Foo"] = 5.0;
497                         obj ["Bar"] = -6.5;
498                         var r = GetReader ("Dictionary_String_Double.xml");
499                         Read_Dictionary (r);
500                 }
501                 
502                 [Test]
503                 public void Read_Dictionary2 ()
504                 {
505                         var obj = new Dictionary<string,Type> ();
506                         obj ["Foo"] = typeof (int);
507                         obj ["Bar"] = typeof (Dictionary<Type,XamlType>);
508                         var r = GetReader ("Dictionary_String_Type_2.xml");
509                         Read_Dictionary2 (r, XamlLanguage.Type.GetMember ("Type"));
510                 }
511                 
512                 [Test]
513                 public void PositionalParameters2 ()
514                 {
515                         var r = GetReader ("PositionalParametersWrapper.xml");
516                         PositionalParameters2 (r);
517                 }
518
519                 [Test]
520                 public void ComplexPositionalParameters ()
521                 {
522                         var r = GetReader ("ComplexPositionalParameterWrapper.xml");
523                         ComplexPositionalParameters (r);
524                 }
525                 
526                 [Test]
527                 public void Read_ListWrapper ()
528                 {
529                         var r = GetReader ("ListWrapper.xml");
530                         Read_ListWrapper (r);
531                 }
532                 
533                 [Test]
534                 public void Read_ListWrapper2 () // read-write list member.
535                 {
536                         var r = GetReader ("ListWrapper2.xml");
537                         Read_ListWrapper2 (r);
538                 }
539
540                 [Test]
541                 public void Read_ContentIncluded ()
542                 {
543                         var r = GetReader ("ContentIncluded.xml");
544                         Read_ContentIncluded (r);
545                 }
546
547                 [Test]
548                 public void Read_PropertyDefinition ()
549                 {
550                         var r = GetReader ("PropertyDefinition.xml");
551                         Read_PropertyDefinition (r);
552                 }
553
554                 [Test]
555                 public void Read_StaticExtensionWrapper ()
556                 {
557                         var r = GetReader ("StaticExtensionWrapper.xml");
558                         Read_StaticExtensionWrapper (r);
559                 }
560
561                 [Test]
562                 public void Read_TypeExtensionWrapper ()
563                 {
564                         var r = GetReader ("TypeExtensionWrapper.xml");
565                         Read_TypeExtensionWrapper (r);
566                 }
567
568                 [Test]
569                 public void Read_NamedItems ()
570                 {
571                         var r = GetReader ("NamedItems.xml");
572                         Read_NamedItems (r, false);
573                 }
574
575                 [Test]
576                 public void Read_NamedItems2 ()
577                 {
578                         var r = GetReader ("NamedItems2.xml");
579                         Read_NamedItems2 (r, false);
580                 }
581
582                 [Test]
583                 public void Read_XmlSerializableWrapper ()
584                 {
585                         var r = GetReader ("XmlSerializableWrapper.xml");
586                         Read_XmlSerializableWrapper (r, false);
587                 }
588
589                 [Test]
590                 public void Read_XmlSerializable ()
591                 {
592                         var r = GetReader ("XmlSerializable.xml");
593                         Read_XmlSerializable (r);
594                 }
595
596                 [Test]
597                 public void Read_ListXmlSerializable ()
598                 {
599                         var r = GetReader ("List_XmlSerializable.xml");
600                         Read_ListXmlSerializable (r);
601                 }
602
603                 [Test]
604                 public void Read_AttachedProperty ()
605                 {
606                         var r = GetReader ("AttachedProperty.xml");
607                         Read_AttachedProperty (r);
608                 }
609
610                 [Test]
611                 public void Read_AbstractWrapper ()
612                 {
613                         var r = GetReader ("AbstractContainer.xml");
614                         while (!r.IsEof)
615                                 r.Read ();
616                 }
617
618                 [Test]
619                 public void Read_ReadOnlyPropertyContainer ()
620                 {
621                         var r = GetReader ("ReadOnlyPropertyContainer.xml");
622                         while (!r.IsEof)
623                                 r.Read ();
624                 }
625
626                 [Test]
627                 public void Read_TypeConverterOnListMember ()
628                 {
629                         var r = GetReader ("TypeConverterOnListMember.xml");
630                         Read_TypeConverterOnListMember (r);
631                 }
632
633                 [Test]
634                 public void Read_EnumContainer ()
635                 {
636                         var r = GetReader ("EnumContainer.xml");
637                         Read_EnumContainer (r);
638                 }
639
640                 [Test]
641                 public void Read_CollectionContentProperty ()
642                 {
643                         var r = GetReader ("CollectionContentProperty.xml");
644                         Read_CollectionContentProperty (r, false);
645                 }
646
647                 [Test]
648                 public void Read_CollectionContentProperty2 ()
649                 {
650                         // bug #681835
651                         var r = GetReader ("CollectionContentProperty2.xml");
652                         Read_CollectionContentProperty (r, true);
653                 }
654
655                 [Test]
656                 public void Read_CollectionContentPropertyX ()
657                 {
658                         var r = GetReader ("CollectionContentPropertyX.xml");
659                         Read_CollectionContentPropertyX (r, false);
660                 }
661
662                 [Test]
663                 public void Read_CollectionContentPropertyX2 ()
664                 {
665                         var r = GetReader ("CollectionContentPropertyX2.xml");
666                         Read_CollectionContentPropertyX (r, true);
667                 }
668
669                 [Test]
670                 public void Read_AmbientPropertyContainer ()
671                 {
672                         var r = GetReader ("AmbientPropertyContainer.xml");
673                         Read_AmbientPropertyContainer (r, false);
674                 }
675
676                 [Test]
677                 public void Read_AmbientPropertyContainer2 ()
678                 {
679                         var r = GetReader ("AmbientPropertyContainer2.xml");
680                         Read_AmbientPropertyContainer (r, true);
681                 }
682
683                 [Test]
684                 public void Read_NullableContainer ()
685                 {
686                         var r = GetReader ("NullableContainer.xml");
687                         Read_NullableContainer (r);
688                 }
689
690                 // It is not really a common test; it just makes use of base helper methods.
691                 [Test]
692                 public void Read_DirectListContainer ()
693                 {
694                         var r = GetReader ("DirectListContainer.xml");
695                         Read_DirectListContainer (r);
696                 }
697
698                 // It is not really a common test; it just makes use of base helper methods.
699                 [Test]
700                 public void Read_DirectDictionaryContainer ()
701                 {
702                         var r = GetReader ("DirectDictionaryContainer.xml");
703                         Read_DirectDictionaryContainer (r);
704                 }
705
706                 // It is not really a common test; it just makes use of base helper methods.
707                 [Test]
708                 public void Read_DirectDictionaryContainer2 ()
709                 {
710                         var r = GetReader ("DirectDictionaryContainer2.xml");
711                         Read_DirectDictionaryContainer2 (r);
712                 }
713                 
714                 [Test]
715                 public void Read_ContentPropertyContainer ()
716                 {
717                         var r = GetReader ("ContentPropertyContainer.xml");
718                         Read_ContentPropertyContainer (r);
719                 }
720
721                 #region non-common tests
722                 [Test]
723                 public void Bug680385 ()
724                 {
725                         XamlServices.Load ("Test/XmlFiles/CurrentVersion.xaml");
726                 }
727                 #endregion
728         }
729 }