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